I/O控制方式:用什么样的方式来控制I/O设备的数据读/写
下图来自程序员cxuan
下图来自王道考研操作系统
完成一次读写操作的流程
下图来自王道考研操作系统
程序直接控制方式中CPU干预的频率、数据传送的单位、主要优缺点
下图来自程序员cxuan
程序直接控制方式中CPU利用率低,我们引入中断来提高CPU利用率
下图来自程序员cxuan
完成一次读写操作的流程
CPU给I/O模块发出读命令后,可以转头做其他事情,不必一直检查I/O设备的状态,等到I/O设备自己完成了工作,将中断信号给中断控制器,CPU在每个指令周期末尾检查中断信号,中断控制器将I/O的中断信号发出,CPU检测到该中断信号,那CPU停下当前任务来响应中断
下图来自王道考研操作系统
中断驱动方式中CPU干预的频率、数据传送的单位、主要优缺点
下图来自程序员cxuan
DMA主要用于块设备的I/O控制,DMA方式的实现进一步减低了干预CPU的频率,CPU只需在读写的开始和结束时刻使用,其余时间可以做其他任务
读数据时的数据流向:I/O设备->CPU->内存
写数据时的数据流向:内存->CPU->I/O设备
每次读写数据都需要CPU内的寄存器中转,能不能不用CPU内的寄存器中转,使得数据直接由I/O设备传输到内存
读数据时的数据流向:I/O设备->内存
写数据时的数据流向:内存->I/O设备
下图来自程序员cxuan
完成一次读写操作的流程
下图来自小林coding
下图来自王道考研操作系统
下图来自王道考研操作系统
DMA方式中CPU干预的频率、数据传送的单位、主要优缺点
由于CPU每发出一条I/O指令,只能读/写一个或多个连续的数据块,如果需要读/写一个或多个离散的数据块,就需要CPU发出多条I/O指令,CPU将一堆指令直接放到内存中,让通道这个硬件直接去依次读取,不必多次麻烦CPU
通道是一种硬件,理解为弱鸡版的CPU,只能识别和执行通道指令
CPU将要做“任务清单”放到内存中,然后给通道发出指令,告诉通道这个清单在内存中的位置,接下来的工作均有通道完成,CPU在发送完I/O指令后就不管了
下图来自王道考研操作系统
完成一次读写操作的流程
下图来自王道考研操作系统
通道控制方式中CPU干预的频率、数据传送的单位、主要优缺点