Loading

40-IO软件的层次结构

I/O软件的层级结构请添加图片描述

用户层软件

用户层软件实现了与用户交互的接口,用户可以直接使用该层提供的,与I/O操作相关的库函数进行对设备进行操作。
用户层软件将用户请求翻译成格式化的I/O请求,并且通过系统调用请求操作系统内核的服务。

操作系统核心子程序

设备独立性软件(系统调用)

设备性软件又称设备无关性软件。与设备硬件特性无关的功能都在这层实现
实现功能

  1. 向上层提供统一的调用接口(如write/read系统调用)
  2. 设备的保护
  3. 差错处理
  4. 设备的分配与回收
  5. 数据缓冲区管理
  6. 建立逻辑设备名到物理设备名之间的关系,根据设备类型选择相应的驱动程序。
    1. 逻辑设备名:打印机1、打印机2
    2. 映射关系通过逻辑设备表实现
      请添加图片描述
      操作系统用两种方式管理逻辑设备表
  7. 整个系统只设备一张LUT
  8. 每个用户设置一张LUT

设备驱动程序

主要负责对硬件设备的具体控制,将上层发出的一系列命令(如write/read)等转化为特定这边能听得懂的一系列操作。包括设备寄存器,检查设备状态等。
不同设备的内部硬件特性也不同,这些特性只有厂家才知道,因此厂家需提供与设备相对应的驱动程序,CPU执行驱动程序的指令序列,来完成设置设备寄存器,检查设备等工作。

中断处理程序

当I/O任务完成时,I/O控制器会发送一个中断信号,系统会根据中断信号的类型来找到相应的中断处理程序并执行 。中断处理程序的流程如下。中断处理程序、设备驱动程序直接和硬件打交道请添加图片描述
请添加图片描述

IO核心子程序

IO核心子程序要实现的功能就是设备独立性软件、设备驱动程序、中断处理程序这三节需要实现的功能
考研中我们需要重点掌握的功能有:I/O调度,设备保护,假脱机技术,设备分配与回收,缓冲区管理

假脱机技术(SPOOLing技术)

假脱机技术在用户层实现,但是408大纲又将假脱机技术归为"I/O核心子系统"

设备独立性软件

I/O调度,设备保护,假脱机技术,设备分配与回收,缓冲区管理在设备独立性软件层实现

I/O调度

用某种算法来确定一个好的顺序来处理各个I/O请求
同理,打印机等设备也可以用先来先服务、优先级算法、短作业优先等算法来确定I/O调度

设备保护

操作系统需要实现文件保护功能,不同的用户对各个文件有不同的访问权限(如:只读、读和写等)
在Unix系统中,设备被看做是一种特殊的文件,每个设备也会有对应的FCB.当用户请求访问某个设备时,系统根据FCB中记录的信息来判断该用户是否有相应的访问权限,以此实现"设备保护”的功

posted @ 2023-02-06 09:32  nliuc  阅读(295)  评论(0)    收藏  举报