1 在设计IO机制时,两个重要的目标:效率和通用性。
效率很重要,因为IO操作通常是计算机系统瓶颈。
通用性:出于简单和避免错误的考虑,人们希望能用一种统一的处理方式处理所有设备。两个方面表现出统一:1)处理器看待IO设备的方式
2)操作系统管理IO设备和操作IO的方式
目前使用一种层次化、模块化的方法设计IO功能,隐藏了大部分IO设备底层细节,使得用户进程和操作系统高层可以通过读、写、打开、关闭、加锁和解锁等通用函数来操作IO设备。
2 文件系统架构。
底层是设备驱动,程序直接与外围设备通信。设备驱动程序负责启动设备上的IO操作,处理IO请求的完成。
上面一层是基本文件系统。这一层处理磁盘间交换的数据块,因此他关注的是这些块在辅存和内存缓冲区中的位置,而非数据的内容或涉及的文件结构。
基本IO管理程序。负责所有文件IO的初始化和终止。需要一定的控制结构来维护设备的输入输出、调度和文件状态。
逻辑IO。使用户和应用程序能够访问记录,基本文件系统处理的是数据块,而逻辑IO处理的是文件记录。逻辑IO提供一种通用的记录IO能力,并维护关于文件的基本数据。