第五章计算机操作系统设备管理讲解
5.1 I/O系统 5.1.1 I/O设备 5.1.2 设备控制器 5.1.3 I/O通道 5.1.4 总线系统 5.1 I/O系统 5.1.1 I/O设备 5.1.2 设备控制器 5.1.3 I/O通道 5.1.4 总线系统 5.1 I/O系统 5.1.1 I/O设备 5.1.2 设备控制器 5.1.3 I/O通道 5.1.4 总线系统 5.1 I/O系统 5.1.1 I/O设备 5.1.2 设备控制器 5.1.3 I/O通道 5.1.4 总线系统 5.2 I/O控制方式 5.2.1 程序I/O方式 5.2.2 中断驱动I/O方式 5.2.3 直接存储器访问DMA I/O控制方式 5.2.4 I/O通道控制方式 5.2 I/O控制方式 5.2.1 程序I/O方式 5.2.2 中断驱动I/O方式 5.2.3 直接存储器访问DMA I/O控制方式 5.2.4 I/O通道控制方式 在I/O中断方式下,数据的输入(或输出)步骤如下: 1、要求输入数据的进程把一个启动命令和允许中断位“1”写入相应设备的控制状态寄存器中,从而启动了该设备。 2、该进程因等待输入的完成进入睡眠状态。 3、当输入完成后,输入设备向CPU发出完成中断请求信号。 4、处理机响应中断,处理该中断,并唤醒等待输入完成的进程。 5、在以后的某个时期,该程序被调度到后,继续运行。 5.2 I/O控制方式 5.2.1 程序I/O方式 5.2.2 中断驱动I/O方式 5.2.3 直接存储器访问DMA I/O控制方式 5.2.4 I/O通道控制方式 4.直接存储器存取控制方式的步骤 ①当进程要求设备输入一批数据时,CPU将设备存放输入数据的内存始址以及要传送的字节数分别送入DMA控制器中的地址寄存器和传送字节计数器;另外,还要将中断位和启动位置为1,以启动设备开始进行数据输入并允许中断。 ②发出数据要求的进程进入等待状态,进程调度程序调度其他进程占据CPU。 ③输入设备不断地挪用CPU工作周期,将数据寄存器中的数据源源不断地写入内存,直到所要求的字节全部传送完毕。 ④DMA控制器在传送字节数完成时,通过中断请求线发出中断信号,CPU收到中断信号后转中断处理程序,唤醒等待输入完成的进程,并返回被中断的程序。 ⑤在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从指定的内存始址取出数据做进一步处理。 5.2 I/O控制方式 5.2.1 程序I/O方式 5.2.2 中断驱动I/O方式 5.2.3 直接存储器访问DMA I/O控制方式 5.2.4 I/O通道控制方式 3.通道控制方式的步骤 ①当进程要求输入数据时,CPU发启动指令指明I/O操作、设备号和对应通道。 ②对应通道接收到CPU发来的启动指令后,把存放在内存中的通道指令程序读出,并执行通道程序,控制设备将数据传送到内存中指定的区域。 ③若数据传输结束,则向CPU发出中断请求。CPU收到中断信号后转中断处理程序,唤醒等待输入完成的进程,并返回被中断的程序。 ④在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从指定的内存始址取出数据做进一步处理。 5.3 缓冲管理 5.3.1 缓冲的引入 5.3.2 单缓冲和双缓冲 5.3.3 循环缓冲 5.3.4 缓冲池(Buffer Pool) 5.3 缓冲管理 5.3.1 缓冲的引入 5.3.2 单缓冲和双缓冲 5.3.3 循环缓冲 5.3.4 缓冲池(Buffer Pool) 5.3 缓冲管理 5.3.1 缓冲的引入 5.3.2 单缓冲和双缓冲 5.3.3 循环缓冲 5.3.4 缓冲池(Buffer Pool) 5.3.3 循环缓冲 循环缓冲的引入: 当输入与输出速度基本匹配时,双缓冲能获得较好效果;当速度相差较大时,可引入多个缓冲,组织成循环缓冲的形式。 5.3 缓冲管理 5.3.1 缓冲的引入 5.3.2 单缓冲和双缓冲 5.3.3 循环缓冲 5.3.4 缓冲池(Buffer Pool) 5.4 I/O软件 5.4.1 I/O软件的设计目标和原则 5.4.2 中断处理程序 5.4.3 设备驱动程序 5.4.4 设备独立性软件 5.4.5 用户层的I/O软件 5.4.1 I/O软件的设计目标和原则 I/O系统的层次及功能 5.4 I/O软件 5.4.1 I/O软件的设计目标和原则 5.4.2 中断处理程序 5.4.3 设备驱动程序 5.4.4 设备独立性软件 5.4.5 用户层的I/O软件 5.4.2 中断处理程序 中断处理程序的处理过程: (1)唤醒被阻塞的驱动进程 (2)保护被中断进程的CPU环境 (3)转入相应的设备处理程序 (4)中断处理 (5)恢复被中断进程的现场 5.4 设备分配 5.4.1 设备分配中的数据结构 5.4.2 设备分配