尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

操作系统八股复习

操作系统八股复习 1.cpu 相关的进程的上下文切换是什么意思进程切换是保存当前进程运行状态恢复另一个进程的运行状态主要包括栈指针程序计数器寄存器如果是不同进程之间的线程切换还包括地址切换比如页表寄存器和页表内容。用户态和内核态的切换和进程切换的不同之处在于切换发生在同一个进程不需要切换地址空间。Linux 进程内存包括哪些部分首先是程序代码段常量区已初始化的全局变量和静态变量未初始化的全局变量和静态变量的数据区堆段栈段由高地址向低地址扩展。堆和栈的区别是堆申请需要耗费更多资源有程序调用有分配和释放的过程。一个 write 过程发生了什么答首先系统调用CPU 从用户态切换到内核态把数据从用户空间拷贝到内核空间之后就成功返回write 调用成功不代表写入磁盘异步刷盘可以使用同步的 fsync 同步地刷盘。如果 write 或者 send 的是套接字就把数据缓存到 socket 缓冲区由 TCP 封装成段然后由驱动网卡异步地发送到对端收到确认之后就清空缓冲区被确认的部分。一个 read 过程发生了什么然后是系统调用如果数据已经在内核的 page cache 中就直接把数据拷贝到用户空间如果不存在就首先把数据从磁盘读入内核空间然后拷贝到用户空间再返回。2.输入输出设备相关cpu 和 IO 设备交互的方式有四种分别是 cpu 轮询中断处理方式dma 方式通道 IOcpu 轮询是 cpu 不断询问 io 处理的结果并处理中断处理方式数据准备过程可以去做其他处理然后设备异步通知cpu由 cpu 处理dma 方式可以由 dma 设备专门处理数据处理速度更高效cpu 只在传输前后处理通道 io 提供了更多有单独的通道处理器可以处理指令cpu 可以指示通道处理器处理。3.存储相关虚拟地址是做什么的虚拟技术把一个物理上的实体映射成多个逻辑上的实体虚拟地址空间实现了对物理内存的扩充在实际使用过程中每个进程独享内存的地址空间在实际访问中发生虚拟地址到物理地址的映射主要是通过 TLB 和页表去完成地址转换。虚拟技术是基于页面的换入换出的如果页面不在内存中需要通过缺页异常调入内存。
返回列表