块设备
能够随机访问固定大小(如512字节)数据片(chunk)的设备被称作块设备
块设备和字符设备区别:
---- | 块设备 | 字符设备
访问单位 | 固定大小 | 无 //块设备访问最小单位是扇区sector(常见的是512字节)
随机访问 | 支持 | 不支持 //块设备为提升效率,对I/O请求有对应的缓冲区,故能随机访问;
//而字符设备无缓冲区,只能按字节流先后顺序访问
直接访问 | 不可 | 可 //
驱动程序 | 复杂 | 相对简单 //虽然块设备较复杂,但是linux系统中块设备支持已相当成熟,驱动开发中较少涉及, 掌握它的原理即可
如图:
块设备的 硬件原理:
磁盘 –>磁头 -> 磁道 -> 扇区 -> 柱面(多磁盘叠加后,磁道形成柱面)
块驱动层次结构:
如图:
其中, I/O调度器 将资源的访问顺序以队列形式规定. 具体使用电梯算法. 使用最优算法, 提高效率.