1) 缓和 CPU 与 I/O 设备速度不匹配的矛盾。
2) 减少中断次数。
3) 提高 CPU 与外设的并行性。
2. 缓冲区设置
硬缓冲:在设备中设置缓冲区,由硬件实现。
软缓冲:在内存中开辟一个空间,用作缓冲区。
单缓冲、双缓冲、循环缓冲、缓冲池( P159 )
3. 缓冲池( P159 )
1). 三个队列: emq 、 inq 、 outq 。
2). 四个工作区: hin 、 sin 、 hout 、 sout 。
3). 两个过程: Getbuf ( type )、 Putbuf ( type )。
(1) 对三个队列操作的信号量
MS ( type ) ---- 互斥信号量, type 可以是 emq 、 inq 、 outq
RS ( type ) ---- 资源信号量, type 可以是 emq 、 inq 、 outq
RS ( inq )、 RS ( outq )初值为 0 。
RS ( emq )初值为缓冲池的容量。
同步、互斥实现、以及工作方式( P160 )
六. 设备分配
功能:在内存与设备之间建立数据传输通路:
内存 |
CH |
控制器 |
设备 |
借助四种表格完成。
1. 设备分配的数据结构(四种表格)
1) SDT :系统设备表,整个系统一张,记录系统拥有的全部设备。( P162 )
2) DCT :设备控制表,每台设备一张,记录设备使用情况。( P161 )
3) COCT :控制器控制表,每个控制器一张,记录控制器使用情况。( P162 )
4) CHCT :通道控制表,每个 CH 一张,记录 CH 使用情况。( P162 )
分配时依次查表,同时考虑到分配的安全性决定分配与否。
2. 设备分配考虑的四个因素
1) 设备属性
(1) 独占设备:考虑分配安全性,并采用独占分配策略。
(2) 共享设备:可同时分给多个进程,对进程的访问次序进行合理调度。
(3) 虚拟设备:可同时分给多个进程,对进程访问的物理设备次序进行合理调度。
2) 分配算法
(1) 先请求先服务:请求进程依次排入设备请求队列。
(2) 优先级高者优先:请求进程按优先级排入设备请求队列。
3) 安全性:独占设备分配要进行安全性检查,以防死锁。
4) 设备独立性
进程用逻辑设备名请求使用物理设备:
(1) 设备分配灵活。
(2) 便于实现 I/O 重定向。
3. 设备独立性软件功能( P163 )
请求进程发出 I/O 请求 |
执行设备独立性软 件 |
设备驱动程序完成该请求 |
位于请求者与设驱之间 |
1) 独占设备的分配 / 回收:请求的是逻辑设备,分配的是物理设备。
2) 将逻辑设备映射到物理设备:通过逻辑设备表( LUT )。