IO软件层次
IO设备
机械部件
分类
设备控制器
寄存器编址
IO控制方式
程序直接控制方式
中断驱动方式
DMA方式
通道控制方式
中断处理程序
设备驱动程序
设备独立性软件
IO调度
设备保护
设备分配与回收
静态分配和动态分配
数据结构
设备分配步骤
改进
缓冲区管理
缓冲区的组成
- 硬件寄存器
成本高,一般用户队速度要求高的场合,例如存储器管理的快表,设备控制器的数据缓冲区 - 内存
大多数场景
缓冲区作用
- 缓和cpu和IO设备之间速度不匹配的矛盾
- 减少对cpu的中断频率
如果达到一点数据,就传送一点数据,那么对cpu的中断将会变得十分频繁 - 解决数据粒度不配的问题
解决生产者和消费者之间数据交换单元大小不匹配的问题 - 提高cpu和IO设备的并行性
单缓冲
双缓冲
循环缓冲区
缓冲池
用户层软件
系统调用
网络设备接口
Spooling
脱机技术
- 脱机输入/输出方式
为了缓解主机cpu和IO设备之间速度不匹配的矛盾,出现了脱机IO技术
- 在外围机的控制下,通过输入设备,将数据输入到磁盘;当cpu需要时,直接从磁盘调入数据到内存
- 反之,处理机输出数据的时候,先把数据输出到磁盘;然后在另一个外围机的控制下,通过输出设备,将数据输出
假脱机技术
- 假脱机技术
在多道系统中,可以用一道程序来模拟外围机,这样便可以通过主机的直接控制下,实现以前的脱机输入和输出功能,外围操作和cpu数据处理同时进行,这种技术成为假脱机技术(Spooling技术)
应用