跳转至

设备输入

  • 设备控制器--硬件
    • 有芯片
    • 有自己的寄存器,与CPU通信(数据、命令、状态)
  • 设备类型:块设备和字符设备
  • 如何通信?
    • 端口I/O
    • 内存映射I/O
  • IO控制方式
    • 中断
    • DMA

设备驱动程序

提供统一的接口给操作系统 - 注册中断处理程序

通用块层

为了减少不同块设备的差异带来的影响,Linux 通过一个统一的通用块层,通用块层是处于文件系统和磁盘驱动中间的一个块设备抽象层,主要两个功能 - 第一个功能--设备管理,向上为文件系统和应用程序,提供访问块设备的标准接口,向下把各种不同的磁盘设备抽象为统一的块设备,并在内核层面,提供一个框架来管理这些设备的驱动程序; - 第二功能--IO调度,通用层还会给文件系统和应用程序发来的 I/O 请求排队,接着会对队列重新排序、请求合并等方式,也就是 I/O 调度,主要目的是为了提高磁盘读写的效率。

IO调度(☆)

Linux五种调度算法: - 没有 - FIFO - 完全公平 - 优先级调度 - 最终期限调度