计算机系统的一个重要组成部分师I/O系统。
I/O系统包括:
- 输入、输出折百
- 存储功能的设备
- 设备控制器
一、设备管理的概念
设备管理程序提供下述功能
- 提供和进程管理系统的接口
- 进行设备分配
- 实现设备和设备之间、设备和CPU之间的并行操作
- 进行缓冲区管理。
二、I/O控制方式
- 程序II/O方式
- 终端控制I/0方式
- 直接存储器访问(DMA)方式
- I/0通道控制方式:
字节多路通道;选择通道;成组多路通道
三、缓存管理
- 单缓冲
- 多缓冲
- 循环缓冲
- 缓冲池(Buffer Pool)
引入 缓冲区的主要原因归结为以下几点:
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放款对CPU中断响应时间的限制
- 提高CPU和I/O设备之间的并行性。
单缓冲:
在单缓冲情况下,每当用户进程发出一I/O请求时,OS便在主存中为之分配一缓冲区。
在字符设备输入时,缓冲区用于暂存用户输入的一行数据,在输入期间,用户进程被挂起以等待数据输入完毕;在输出时,用户进程将一行数据输入到缓冲区后,继续执行处理。当用户进程已经有第二行数据输出时,如果第一行数据尚未被提取完毕,则此时用户进程阻塞。
双缓冲:
为了加快输入和输出速度,提高设备利用率,人们又引入了双缓冲区机智,也称为缓冲对换。在设备输入时,先将数据送入第一缓冲区,装满后便装满后便转向第二缓冲区。此时OS可以从第一缓冲区中移出数据,并送入用户进程。
循环缓冲
循环缓冲有多个大小相同的缓冲区,缓冲区有三种类型:
- 用于装输入数据的空缓冲区R
- 已装满数据的缓冲区G
- 计算进程正在使用的现行工作缓冲区C
缓冲池
对于既可输入又可输出的公用缓冲区,至少应含有三种类型缓冲区:
- 空缓冲区;
- 装满输入数据的缓冲区
- 装满输出数据的缓冲区
四、设备的分配
设备分配原则:
- 静态分配
- 动态分配(会发生死锁)
设备分配策略
- 先请求先分配
- 优先级高者先分配