设备管理
设备控制器
为了屏蔽差异,每个设备都有一个设备控制器,控制器内部有芯片,可以与cpu通信(端口I/O,内存映射I/O)。
控制器分为三类寄存器:1.状态寄存器;2.命令寄存器;3.数据寄存器。
当然输入输出设备可分为两大类:块设备(数据存储在块中,如优盘)和字符设备(以字符为单位,如键盘)。
I/O 控制方式
- 轮询等待
- 中断,但中断对频繁读写数据的磁盘并不友好,会占用cpu大量的时间,解决方法是使用DMA功能(cpu不参与的情况下自行完成把IO数据
放入内存中)。
设备驱动程序
属于操作系统的一部分,不同的设备对应的驱动程序不同,但会提供统一的接口给操作系统。
当设备完成任务后,系统发送中断请求,则调用中断处理程序进行处理。
通用块层
为了减少不同设备的差异带来的影响,设计通用块层来管理不同设备,主要作用是提供统一接口,此外还能对队列重新排队。