两层:设备相关层(驱动层) 设备无关层(独立层)
四层:用户进程——进行I/O调用;格式化I/O;spooling
设备无关I/O软件(设备独立性软件)——设备命名;保护;阻塞;缓冲;分配与释放
设备驱动程序——设置设备寄存器;检查状态
中断处理程序——当I/O结束时唤醒驱动
(硬件——执行I/O操作)
中断层具体功能
中断层是I/O子系统的最低层。主要工作是执行与中断有关的操作,并在 I/O结束时唤醒驱动程序。
驱动层的具体工作:
(1) 确定是否向设备发命令
(2) 确定向设备发什么命令
(3)向设备发命令(设置寄存器)
(4) 监督设备命令的正确执行和等待物理操作的完成
(5) 执行后处理:中断时被调用的驱动层物理操作的后续处理
独立层(逻辑I/O层)功能
(1)向用户层软件提供一个统一的接口
(2)设备命名
(3)设备保护:防止无权存取设备的用户存取设备。
(4)缓冲管理
(5)提供与设备无关的块尺寸:向更高一层隐藏不同设备的物理块大小的差别。
(6)块设备的存储分配
(7)分配和释放独占设备
(8)错误报告(与设备无关的错误报告)
用户空间层I/O软件——运行于用户空间的I/O软件
(1)与用户程序连接在一起的库过程。(输入输出的格式是由库过程完成的)
(2)在核心外运行的I/O程序。(如假脱机进程)
例如:请说明下列的各个工作是在设备管理的哪个层次完成的?
1.向设备寄存器写命令。 2.检查用户是否有权使用设备。
3.将二进制整数转换成ASCII码打印。 4.为一个读操作计算磁道和扇区。
解:1.驱动层; 2.设备无关I/O软件层; 3.用户空间层I/O软件; 4.驱动层.