5.2_1 I-O核心子系统
1、用户层软件
假脱机系统
2、设备独立性软件(设备无关性软件)
IO调度、设备保护、设备分配与回收、缓冲区管理
3、设备驱动程序(比如打印机驱动)
4、中断处理程序
5、硬件
5.2_2 假脱机技术(SPPOLing技术)
1、什么是脱机技术,脱机技术可以解决什么问题
脱离主机的控制进行输入/输出控制
SPPOLing系统:必须要有多道程序并发进行
2、假脱机技术的实现原理
- 输入井和输出井
- 输入进程和输出进程
- 输入缓冲区和输出缓冲区
3、共享打印机的原理分析
5.2_3 设备的分配与回收
1、设备分配时应考虑的因素
- 设备的固有属性:独占设备(打印机)、共享设备(磁盘)、虚拟设备
- 设备分配算法:
- 设备分配中的安全:为进程分配一个设备后就将进程阻塞,本次IO完成后才将进程唤醒
2、静态分配与动态分配
静态分配:进程运行前为其分配全部所需资源、运行结束后归还资源
动态分配:运行中动态分配
3、设备分配管理中的数据结构
- 系统设备表SDT,表目:(设备类型、设备标识符、DCT、驱动程序入口)
- 设备控制表DCT(设备类型、设备标识符、设备状态、指向控制器表的指针、重复执行次数或事件、设备队列的队首指针)
- 控制器控制表COCT(控制器标识符、控制器状态、指向通道表的指针设备队列的队首指针、控制器队列的队尾指针)
- 通道控制表CHCT(通道标识符、通道状态、与通道连接的控制器表首址、通道队列的队首指针、通道队列的队尾指针)
4、设备分配的步骤
根据进程请求的物理设备名------>设备控制表------>控制器控制表------>通道
5、设备分配步骤的改进方法
建立逻辑设备名和设备的映射
5.2_4 缓冲区管理
1、什么时缓冲区?有什么作用?
缓冲区是一个存储区域
缓和CPU与IO设备之间速度不匹配的矛盾
减少对CPU的中断频率
解决数据粒度不匹配的问题
提高CPU与IO设备之间的并行性
2、单缓冲
在内存中分配一块缓冲区
处理一块时间=max(C,T)+M
3、双缓冲
在内存中分配两块缓冲区
max(T,C+M)
4、循环缓冲
5、缓冲池
由系统中共用的缓冲区组成。这些缓冲区可以分为:空缓冲队列、装满输入数据的缓冲队列、装满输出数据的缓冲队列