设备输入¶
- 设备控制器--硬件
- 有芯片
- 有自己的寄存器,与CPU通信(数据、命令、状态)
- 设备类型:块设备和字符设备
- 如何通信?
- 端口I/O
- 内存映射I/O
- IO控制方式
- 中断
- DMA
设备驱动程序¶
提供统一的接口给操作系统 - 注册中断处理程序
通用块层¶
为了减少不同块设备的差异带来的影响,Linux 通过一个统一的通用块层,通用块层是处于文件系统和磁盘驱动中间的一个块设备抽象层,主要两个功能 - 第一个功能--设备管理,向上为文件系统和应用程序,提供访问块设备的标准接口,向下把各种不同的磁盘设备抽象为统一的块设备,并在内核层面,提供一个框架来管理这些设备的驱动程序; - 第二功能--IO调度,通用层还会给文件系统和应用程序发来的 I/O 请求排队,接着会对队列重新排序、请求合并等方式,也就是 I/O 调度,主要目的是为了提高磁盘读写的效率。
IO调度(☆)¶
Linux五种调度算法: - 没有 - FIFO - 完全公平 - 优先级调度 - 最终期限调度