io子系统 - wolai 笔记

1. I/O子系统的层次结构

用户层软件

实现与用户交互的接口,向上提供方便易用的库函数

设备独立性软件

  1. 向上层提供统一的调用接口(如read/write系统调用);
  2. 设备的保护;
  3. 差错处理;
  4. 设备的分配与回收;
  5. 数据缓冲区管理;
  6. 建立逻辑设备名到物理设备名的映射关系,根据设备类型选择调用相应的驱动程序

设备驱动程序

设置设备寄存器、检查设备状态

中断处理程序

进行中断处理

硬件

执行IO操作,有机械部件、电子部件组成。

2. 设备独立性软件

设备独立性软件需要通过逻辑设备表(LUT,Logical Unit Table)来确定逻辑设备对应的物理设备,并找到该设备对应的驱动程序。
操作系统可以采用两种管理方式管理逻辑设备表(LUT):
  • 第一种方式,整个系统只设置一张LUT,意味着所谓用户不能使用相同的逻辑设备名,因此这种方式只适用于单用户操作系统
  • 第二种方式,为每个用户设置一张LUT,各个用户使用的逻辑设备名可以重复,适用于多用户操作系统

3. I/O核心子系统

设备独立性、设备驱动程序、中断处理程序属于操作系统的内核部分,即“I/O系统”,或称“I/O核心子系统”。
假脱机技术(SPOOLing技术)需要请求“磁盘设备”的设备独立性软件的服务,因此一般来说假脱机技术在用户层软件实现的。但大纲将假脱机技术归为“I/O核心子系统”的功能。
I/O调度:用某种算法确定一个好的顺序来处理各个I/O请求。
设备保护:不同用户对各个文件有不同的访问权限。在UNIX系统中,设备被看做是一种特殊的文件,每个设备也会有对应的PCB。

Comment