前言
设备管理是操作系统中最繁杂而且与硬件紧密相关的部分。设备管理不仅要管理实际 I/O 操作的设备(如键盘、鼠标、打印机等),还要管理诸如设备控制器、DMA 控制器、中断控制器和 I/O 处理机(通道)等支持设备。设备管理包括各种设备分配、缓冲区管理和实际物理 I/O 设备操作,通过管理达到提高设备利用率和方便用户的目的。
正文
1. 块设备(Block Device)和字符设备(Character Device)
- 块设备是指以数据块为单位来组织和传送数据信息的设备,如磁盘。
- 字符设备是指以单个字符为单位来传送数据信息的设备,如交互终端、打印机等。
2. I/O 控制流——读硬盘文件的例子
- I/O 设备管理软件一般分为 4 层:中断处理程序、设备驱动程序、与设备无关的系统软件和用户级软件。
- 例子:当用户程序试图读取一个硬盘文件时,需要通过操作系统实现这一操作。与设备无关软件检查高速缓存中有无要读的数据块,若没有,则调用设备驱动程序,向 I/O 硬件发出一个请求。然后,用户进程阻塞并等待磁盘操作的完成。当磁盘操作完成时,硬件产生一个中断,转入中断处理程序。中断处理程序检查中断的原因,认识到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束此次 I/O 请求。用户进程在得到了所需的硬盘文件内容之后,继续运行。
3. 磁盘调度
磁盘是可被多个进程共享的设备。当有多个进程请求访问磁盘时,为了保证信息的安全,系统在每一时刻只允许一个进程启动磁盘进行 I/O 操作,其余的进程只能等待。