loading...
磁盘I/O
Published in:2021-08-15 | category: 408 考研

磁盘I/O

I/O系统层次及功能

用户层软件

用户层软件实现的是与用户进行交互的接口,用户可以通过调用用户层软件提供的I/O库函数对设备进行操作

用户软件必须通过一组系统调用来获取操作系统服务

设备独立性软件

什么是设备独立性?

​ 设备独立性指的是应用程序独立于具体使用的物理设备,从而引入了“逻辑设备”的概念

设备独立性能够带来什么好处?

  1. 设备分配时的灵活性
  2. 易于实现I/O的重定向

设备独立性软件都有什么功能?

  1. 执行公共设备的共有操作
    1. 对独立设备的分配与回收
    2. 将逻辑设备名映射为物理设备名
    3. 对设备进行保护
    4. 缓冲管理
  2. 向用户层软件提供统一接口

设备驱动程序

通常也称“设备处理程序”,它是I/O进程与设备控制器之间的通信程序, 又由于经常以进程的形式存在,所以称之为设备驱动程序。

任务:

  1. 接收上层软件发来的抽象I/O请求,并将其转为具体要求发送给设备控制器,然后启动设备去执行请求
  2. 将设备控制器发来的信号发送给上层软件

功能:

  1. 接收由设备独立性软件发来的命令和参数
  2. 检查用户I/O请求的合法性
  3. 发出I/O命令(向设备控制器)
  4. 及时相应由控制器或者通道发来的中断请求,并根据中断的类型调用相应的中断处理程序
  5. 若OS设有通道,驱动程序还能根据用户的I/O请求自动构建通道程序

设备处理方式

  1. 为每一类设备设置一个进程
  2. 整个系统设置一个进程
  3. 不设置专门的处理程序,但为各类设备设置相应的设备处理程序

中断处理层

中断处理层软件的主要工作是进行进程上下文的切换,对处理中断信号源进行测试,读取设备状态和修改进程状态。

处理过程:

  1. 唤醒被阻塞的驱动进程
  2. 保护被中断进程的CPU环境
  3. 载入相应的设备处理程序
  4. 中断处理
  5. 恢复被中断进程的现场

I/O缓冲

设置缓冲区的目的是什么?

  1. 可以缓和CPU(快)和I/O设备(慢)之间速度不匹配的矛盾
  2. 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
  3. 提高CPU和IO设备之间的并行性

缓冲区

  1. 单缓冲

    数据从I/O设备到缓冲区和从缓冲区到工作区不能同时进行

  2. 双缓冲

    数据从I/O设备到缓冲区和从缓冲区到工作区可以同时进行

SPOOLing

SPOOLing技术又称假脱机技术,其含义是在联机的情况下实现外围操作,这样就不会导致CPU近乎闲置

SPOOLing技术的组成

  1. 输入井和输出井(位置:磁盘)
  2. 输入缓冲区和输出缓冲区(位置:内存)
  3. 输入进程和输出进程(由OS提供)
  4. 井管理程序

SPOOLing技术的特点

  1. 提高了I/O速度
  2. 将独占设备改造为共享设备(后来的进程可以将需要输出的数据存放在缓冲区)
  3. 实现了虚拟设备的功能

错题

  1. 用户程序发出磁盘I/O请求后,系统的正确处理流程是

    用户程序–>系统调用处理程序–>设备驱动程序–>中断处理程序

Prev:
快速幂
Next:
线性代数杂项