标签:控制 驱动 缓冲区 用户 文件 软件 指定 中断 行数据
1.应用进程对已打开文件的文件描述符执行读系统调用(库函数)
2.独立于设备的I/O软件检查参数是否正确,若正确,检查高速缓存中有无要读取的信息块;若有,从缓冲区直接读至用户区,完成I/O请求。
3.若数据不在缓冲区,执行物理I/O操作,独立于设备的I/O软件将设备的逻辑名转换成物理名,检查对设备操作的许可权,将I/O请求排队,阻塞应用进程且等待I/O操作完成
4.内核启动设备驱动程序,分配存放读出块的缓冲区,准备接受数据并向设备控制寄存器发送启动命令,或建立DMA传输,启动I/O。
5.设备控制器操作设备,执行数据传输
6.当采用DMA控制器控制数据传输时,一旦传输完成,硬件产生I/O结束中断。
7.CPU响应中断,转向磁盘中断处理程序。它检查中断产生原因和设备执行状态,若设备有错,向设备驱动程序发信号,检查是否能重复执行,若允许,重发启动设备命令再次传输;否则向上层软件报告错误。若设备I/O正确完成,将数据传输到指定的用户进程空间,唤醒阻塞进程并将其放入就绪队列;绕后系统检查有无I/O请求在排队,若有,再启动设备,继续传输。至此,中断处理完成且返回,将成功或失败的信息逐层向上报告。
8.当应用进程被再次调度执行时,从I/O系统调用的断点处恢复执行
磁盘与主机交换数据的最小单位是扇区
标签:控制 驱动 缓冲区 用户 文件 软件 指定 中断 行数据
原文地址:https://www.cnblogs.com/lccsblog/p/11070971.html