虚拟内存
操作系统为每一个进程分配一个连续的虚拟地址空间。进程持有的虚拟地址会通过CPU的内存管理单元的映射关系转变为物理地址,然后通过物理地址访问内存。这样就可以使每个进程看起来都有自己的连续地址空间,并且可以让程序能够访问的内存比物理内存更大,每个程序都有足够的内存来运行
线程同步的方式有哪些?
...
死锁
什么是死锁?死锁的定义在多线程编程环境中,都会给共享资源加上互斥锁防止共享资源被某一进程使用时其他进程进行访问或使用导致数据错乱,但是这就可能导致两个进程都会等待对方释放锁,那么这两个进程就会陷入相互等待的状态,没有外力介入,就无法进行下去。死锁指两个或多个进程在相互持有对方所需要的资源且相互等待,导致它们永远无法继续执行下去的状态。 eg: 进程A持有资源1,等待资源2. 进程B持有资源2,等待资源1....
常见锁
...
进程同步和互斥
...
进程 线程 并行 并发
...
用户态和核心态
解释一下用户态和核心态,什么场景下会发生核心态和用户态的切换?用户态是用于执行应用程序的环境,通常用于普通应用进程,比如浏览器,文字编辑器等等。用户态只能访问自己的内存空间,没有权限直接访问硬件设备和涉及到系统资源的指令。用户态如果想要访问系统资源或执行敏感操作,必须通过系统调用的方式切换的核心态才能够操作。核心态是操作系统内核程序运行的环境,拥有最高的特权级别,能够执行所有的指令,访问所有的硬件设备和系统资源。核心态用于执行与系统管理有关的代码,比如内存管理,进程调度等。比如当用户态一个程序需要读取系统资源时,不能够直接从硬盘上访问,需要先进行系统调用,请求操作系统内核的服务。系统接收到系统调用会将CPU从用户态切换到核心态然后执行相应的文件读取操作,然后将数据返回给用户态,再将CPU切换到用户态。当应用程序发生异常也会从用户态自动转成核心态。
TCP IP模型和OSI模型的区别
OSI模型是由ISO国际组织制定的标准计算机网络模型, 是一种更为理论化的抽象模型,他也是先有的模型再有的各种网络协议。而TCP/IP模型是借鉴了OSI模型结构创建的一种更为实践的计算机网络模型,TCP/IP模型是一系列网络协议簇,是先有的协议,再有的模型 二者有着不同的模型结构,OSI模型有7层,TCP/IP模型有4层,但是也是可以对应起来的结构。OSI模型从底层到顶层分别是,1. 物理层,物理层负责了比特流的传输。2. 数据链路层,对比特流进行封装成帧,并且保证了传输的误差纠错和误差修正,保证了数据在链路之间的可靠传输。3. 网络层,主要是寻址和路由,找到从发送者到接收者的一条最优传输数据的路径。4. 传输层,保证的端到端的传输,包括面向连接的可靠传输以及面向无连接的不可靠传输。5. 会话层,用来管理在应用程序在数据传输过程中的会话。6....
从输入URL到页面展示到底发生了什么
![[Recording 20241024093426.webm]] ![[Recording...
TCP UDP
TCP和UDP有什么区别? 连接方式不同 TCP是面向连接的传输协议,会在通信双方建立一个通信信道。所以需要进行tcp三次握手之后才能够发送数据,而发送数据完成之后需要进行tcp4次挥手断开连接 udp是面向无连接的,可以在通信双方直接发送数据 可靠性不同。 TCP是可靠传输,tcp使用一系列机制,比如拥塞处理,滑动窗口,重传等确保发送的数据接收方一定能接收到并且不会发生错码乱码的情况 UDP是不可靠传输,只会发送数据,但是不保证数据的完整性,也不保证接收方是否接收到数据 TCP是面向字节流传输的,UDP是面向传输报文的。TCP会将应用层发送过来的数据报文拆分成字节,也正是这一点才能够实现tcp的可靠传输 tcp的头部远大于UDP,udp的头部只有源端口+目标端口+检验和+长度...
TCP 三次握手 四次挥手
TCP三次握手的过程TCP为了实现面向连接的可靠传输使用了三次握手和四次挥手的机制。三次挥手的过程是: 客户端向服务器发送一个SYN报文进入SYN_SEND状态,其中会随机一个序列号x,并且将SYN的标志位设置为1.该报文不会携带任何应用层数据。该报文的目的就是客户端请求连接的建立 服务器收到客户端的SYN报文,会回复一个SYN-ACK报文...
HTTP 1.0 1.1 2.0 3.0 长连接问题
什么是长连接,为什么需要长连接?HTTP连接是无状态的,也就是说一次请求和一次响应后TCP连接就断开了。 HTTP长连接就是将这次TCP连接保留下来,请求和响应之后TCP连接仍不断开,后续的请求与响应仍然走这个连接。 目的:为了避免下次请求和响应还要建立TCP连接,免去建立TCP连接三次握手四次挥手的过程 所谓建立连接,在底层或者说在linux实现上,就是服务端和客户端在彼此的内存中维持着一个对象,记录着对方的信息。 长连接分为哪些长连接,有什么区别?长连接分为TCP长连接,HTTP长连接。 TCP长连接和HTTP长连接关注的点是不一样的。 TCP长连接是作用在传输层上的,维护的是一个链接。TCP长连接在意的是对方是否还在线,也就是socket对象是否还存在 所谓链接,就是客户端和服务端在三次握手过程中分别在自己内存里建立的一个结构体socket对象,这个socket对象记录了双方的信息。 HTTP长连接是在应用层,关注的是对方是否能提供一个稳定的应用服务,和TCP长连接关注的问题点不一样。 HTTP长连接的作用是什么?HTTP长连接本质上就是TCP keep...