IO软件层次


IO设备


机械部件



分类



设备控制器





寄存器编址

IO控制方式

程序直接控制方式



中断驱动方式


DMA方式



通道控制方式


中断处理程序

设备驱动程序

设备独立性软件






IO调度

设备保护

设备分配与回收



静态分配和动态分配

数据结构





设备分配步骤

改进

缓冲区管理


缓冲区的组成
- 硬件寄存器
成本高,一般用户队速度要求高的场合,例如存储器管理的快表,设备控制器的数据缓冲区 - 内存
大多数场景
缓冲区作用

- 缓和cpu和IO设备之间速度不匹配的矛盾
- 减少对cpu的中断频率
如果达到一点数据,就传送一点数据,那么对cpu的中断将会变得十分频繁 - 解决数据粒度不配的问题
解决生产者和消费者之间数据交换单元大小不匹配的问题 - 提高cpu和IO设备的并行性
单缓冲


双缓冲




循环缓冲区

缓冲池

用户层软件


系统调用



网络设备接口

Spooling

脱机技术

- 脱机输入/输出方式

为了缓解主机cpu和IO设备之间速度不匹配的矛盾,出现了脱机IO技术
- 在外围机的控制下,通过输入设备,将数据输入到磁盘;当cpu需要时,直接从磁盘调入数据到内存
- 反之,处理机输出数据的时候,先把数据输出到磁盘;然后在另一个外围机的控制下,通过输出设备,将数据输出
假脱机技术
- 假脱机技术
在多道系统中,可以用一道程序来模拟外围机,这样便可以通过主机的直接控制下,实现以前的脱机输入和输出功能,外围操作和cpu数据处理同时进行,这种技术成为假脱机技术(Spooling技术)

应用



磁盘

磁盘结构



读写数据

磁盘调度算法


先来先服务

最短寻找时间有限

扫描算法

Look算法

循环扫描算法

C-look算法

减少磁盘延迟时间

固态硬盘





















