提前说明有些操作系统的相关概念自行百度,但是个人认为,很多面试官可能对于操作系统也懂的不多,当然不排除一些真正的大佬,往往面试的面试官也就那样,废话不多说,开始讲解普通IO的底层原理
早期的数据IO,由用户进程向...CPU发起,应用程序与磁盘之间的 I/O 操作都是通过 CPU 的中断完成的,如下图
用户发起读取数据请求到CPU....CPU把请求转发到磁盘控制器中
磁盘控制器读取数据到磁盘缓冲区
磁盘寄存器发送中断信号给cpu
CPU读取磁盘缓冲区的数据到寄存器中
CPU再把寄存器中的数据读取到内存中
最后用户进程再把内存的数据读取...DMA技术
DMA 的全称叫直接内存存取(Direct Memory Access),是一种允许外围设备(硬件子系统)直接访问系统主内存的机制,之后数据的拷贝都有DMA进行处理,如下图
CPU把IO请求发送给...,整体流程如下
用户进程调用read进行第一次用户态到内核态的切换
磁盘收到请求,DMA会把磁盘缓冲区的数据拷贝到内存缓冲区完成第一次拷贝DMA拷贝
然后进行第二次内核态用户态的转换
把内核缓冲区的数据