设备分配
在设备分类中有简单提到设备分配的特性,设备分配的目的是视设备为资源进行分配,也就牵扯到了分配的算法。详见处理机调度算法的先来先服务算法与优先级高有限服务算法
设备无关性
目标:应该使编写出的程序可以访问任意的I/O设备而无需事先指定设备
设备驱动
- 通常,设备驱动程序与设备类型是一一对应的。
- 主设备号(设备类型)表示设备类型,而次设备号表示该类型的一个设备
- 设备驱动程序层的目的是对核心I/O子系统隐藏设备控制器的差别 @import "./.src/pic/imageX.png"
构建与设备无关的io软件
- 设备驱动程序统一接口
- 设备缓冲技术
- 设备异常报告与处理方式
- 设备接管(分配与释放)
- 提供与设备无关的块大小
设备调度
- 监视设备状态
- 驱动与响应
- 缓冲、地址转换等功能
- 磁盘管理
- linux系统设备管理
磁盘调度算法
先来先服务法 最短寻道时间优先法 电梯法
Linux系统设备管理
基于文件系统,每个设备都对应文件系统中的一个索引节点,都有一个文件名。设备驱动程序是系统内核的一部分,内核为开发者提供统一接口。通过系统的接口打开设备文件,利用标准的内核服务,接受分配调度。
UNIX/Linux对磁盘块的读操作有两种方式:
- 立即读(bread)
- 预读(breada)。
对磁盘块的写操作有三种方式:
- 立即写(bwrite)
- 异步写(bawrite)
- 延迟写(bdwrite)。