操作系统——(6)输入输出系统

一、概念

1、I/O系统的基本功能

(1)、主要任务

完成用户提出的I/O请求,提高I/O速率,以及提高设备的利用率,并能为更高层的进程方便的使用这些设备提供手段。

(2)、基本功能

  • 隐藏物理设备的细节

  • 与设备的无关性

  • 提高处理机和I/O设备的利用率

  • 对I/O设备进行控制

  • 确保对设备的正确共享

  • 错误处理

(3)、I/O系统的层次结构

  • 用户层I/O软件,实现与用户交互的接口,用户可直接调用该层所提供的、与I/O操作有关的库函数对设备进行操作。

  • 设备独立性软件,用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。

  • 设备驱动程序,与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。

  • 中断处理程序,用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完毕再恢复被中断进程的现场后。返回到被中断的进程。

(4)、I/O系统中各个模块之间的层次视图

(5)、I/O系统的分层

      1. 中断处理程序

      2. 设备驱动程序

      3. 设备独立性软件

(6)、I/O系统接口

  • 块设备接口

    • 块设备

    • 隐藏了磁盘的二维结构

    • 将抽象命令映射为低层操作

  • 流设备接口

    • 字符设备

    • Get和Put操作

    • In-cPontrol指令

二、I/O设备和设备控制器

1、I/O设备类型

  • 按使用特性分类

    • 存储设备,也称外存、辅存。存取速度较内存慢,但容量却大的多,价格也便宜。

  • 按传输速率分类

    • 第一类低速设备,其传输速率仅为每秒几个字节至数百字节

    • 第二类中速设备,其传输速率在每秒钟数千字节至数十万个字节

    • 第三类高速设备,其传输速率在数十万字节至千兆字节

2、设备控制器

(1)、主要功能

控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换

(2)、基本功能

  • 接收和识别命令

  • 数据交换

  • 标识和报告设备的状态

  • 地址识别

  • 数据缓冲区

  • 差错控制

(3)、设备控制器的组成

  • 设备控制器与处理机的接口

  • 设备控制器与设备的接口

  • I/O逻辑

(4)、I/O通道

  • 目的:建立独立的I/O操作,不仅使数据的传送能独立于CPU,而且也希望有关对操作的组织、管理及其结束处理尽量独立,以保证CPU更多时间去进行数据处理

    • 通道类型

      • 字节多路通道

      • 数组选择通道

      • 数组多路通道

三、中断结构和中断处理结构

1、中断定义

是指CPU对I/O设备发来的中断信号的一种响应。Cpu暂停正在执行的程序,保留CPU环境后,自动的转去执行该I/O设备的中断处理程序。执行完后,再回到断点,继续执行原来的程序。

2、中断处理程序作用

  • 测定是否有未响应的中断信号

  • 保护被中断进程的CPU环境

  • 转入相应的设备处理程序

  • 中断处理

  • 恢复CPU的现场并退出中断

3、对多中断源的处理方式

  • 屏蔽(禁止)中断

  • 嵌套中断

四、设备驱动程序

1、功能

  • 接收有与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列

  • 检查用户请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置I/O设备的工作方式

  • 发出I/O命令,如果设备空闲,便立刻启动I/O设备,完成指定的操作;如果设备忙碌,则将请求者的请求块挂在设备队列上等待

  • 及时响应由设备控制器发来的中断请求,并根据其中断类型,调出相应的中断处理程序进行处理

2、特点

  • 驱动程序是实现在与设备无关的软件和设备控制器之间通信和转换的程序,具体点说,它将抽象的I/O请求转换成具体的I/O操作后传送给控制器,又把控制器中所记录的设备状态和I/O操作完成情况,及时的反映给请求的过程

  • 驱动程序与设备,控制器以及I/O设备的硬件特性紧密相关,对于不同类型的设备,因配置不同的驱动程序,但可以为相同的多个终端设置一个终端驱动程序

  • 驱动程序与I/O设备所采用的I/O控制方式紧密相关,常用的I/O控制方式是中断驱动和DMA方式

  • 由于驱动程序与硬件紧密相关,医疗其中的一部分必须用汇编语言书写。目前有很多驱动程序的基本部分已经固化在ROM中

  • 驱动程序应允许可重入。一个正在运行的驱动程序常会在一次调用完成前被再次调用

3、设备处理方式

  • 为每一类设备设置一个进程

  • 在整个系统中设置一个I/O进程

  • 不设置专门的设备处理进程

4、设备驱动程序的处理过程

  • 将抽象要求转化为具体要求

  • 对服务请求进行校验

  • 检查设备的状态

  • 传送必要的参数

  • 启动I/O设备

5、对I/O设备的控制方式

  • 使用轮询的可编程I/O方式

  • 使用中断的可编程I/O方式

6、通道

是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制

  • 操作码

  • 内存地址

  • 计数

  • 通道程序结束位P,用于表示通道程序是否结束

  • 记录结束标志R,R=0表示本通道指令与下一条指令所处理的数据是同属于一个记录;R=1表示这是处理某记录的最后一条指令。

7、与设备无关的I/0软件

  • 以物理设备名使用设备

  • 引入了逻辑设备名

  • 逻辑设备

  • 与设备无关的软件

  • 用户层的I/O软件

    1. 系统调用与库函数

      1. 系统调用

      2. 库函数Application program interface

    2. 假脱机系统

      1. 假脱机技术

      2. SPOOLing的组成

        • 输入井和输出井

        • 输入缓冲区和输出缓冲区

        • 输入进程和输出进程

        • 井管理程序

      3. SPOOLing系统的特点

        1. 提高了I/O的速度

        2. 将独占设备改造为共享设备

        3. 实现了虚拟设备功能

      4. 假脱机打印机系统

        1. 磁盘缓冲区

        2. 打印缓冲区

        3. 假脱机管理进程和假脱机打印进程

六、缓冲区管理

1、缓冲区引入

  1. 缓和Cpu与I/O设备间速度不匹配的矛盾

  2. 减少对CPU的中断频率,放宽对CPU中断响应时间的限制

  3. 解决数据粒度不匹配的问题

  4. 提高CPU和I/O设备之间的并行性

2、缓冲区分类

(1)、单缓冲区

(2)、双缓冲区

(3)、环形缓冲区

    1. 组成

      • 多个缓冲区

      • 多个指针

    2. 环形缓冲区的使用

      • Getbuf过程

      • Releasebuf过程

3、缓冲池

(1)、缓冲池的组成

  • 空白缓冲队列emq

  • 输入队列inq

  • 输出队列outq

(2)、缓冲区的工作方式

  • 收容输入

  • 提取输入

  • 收容输出

  • 提取输出

七、磁盘存储器的性能和调度

1、磁盘性能

  • 数据组织和格式

  • 为了提高磁盘的存储容量,充分利用磁盘外面磁道的存储能力,利用外层磁道容量较内层磁道大的特点将盘面划分成若干条还贷同意还贷内的所有磁道具有相同的扇区数。

  • 在磁盘格式化完成后,一般要对磁盘进行分区,再逻辑上每个分区就是一个独立的逻辑磁盘。

2、磁盘的类型

  • 固定头磁盘

  • 移动头磁盘

3、磁盘访问时间

  • 寻道时间Ts=m*n+s,该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和

  • 旋转延迟时间Tt,这是指把数据从磁盘读出或向磁盘写入数据所经历的时间

  • 传输时间Tt=b/rN,这是只把数据从磁盘读出或向磁盘写入数据所经历的时间

  • 在访问时间中,寻到时间和旋转延迟,时间基本上都与所读/写数据的多少无关

4、磁盘调度算法

 (1)、先来先服务FCFS

根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求,长期得不到满足的情况。此算法由于未对寻道进行优化,致使平均寻道时间可能较长

优点:公平

缺点:如果有大量进程竞争使用磁盘,请求访问磁道很分散,则FCFS在性能上很差,寻道时间长。

例:假设磁头的初始位置是100号磁道,有多个进程先后陆续的请求访问55,58,39,18,90,160,150,38,184号磁道按照FCFS的规则,按照请求到达的顺序,磁头需要一次移动到55,58,39,90,160,150,38,184号磁道

(2)、短寻道时间优先SSTF

要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种算法不能保证平均寻道时间最短

优点:性能较好,平均寻道时间短

缺点:可能产生“饥饿”现象

例:假设磁头的初始位置是100号磁道,有多个进程先后陆续的请求访问55,58,39,18,90,160,150,38,184号磁道按照SSTF的规则,磁头总共移动了(100-18)+(184-18)=248个磁道

(3)、扫描算法

当磁头正在由里向外移动时,SCAN算法所选择的下一个访问对象应是其欲访问的磁道,既在当前磁道之外,又是距离最近的。这样由里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向,由外向里移动。也叫电梯算法。

优点:性能较好,平均寻道时间短,不会产生饥饿现象

缺点:

  1. 只有到最边上的磁道才能改变磁头的移动方向。

  2. SCAN对于各个位置磁道响应频率不平均。

例:假设磁头的初始位置是100号磁道,有多个进程先后陆续的请求访问55,58,39,18,90,160,150,38,184号磁道

按照SCAN的规则,磁头总共移动了(184-100)+(184-18)=250个磁道

(4)、循环扫描算法(CSCAN)

为了减少SCAN算法造成的某些进程的请求被严重推迟,CSCAN算法规定磁头单向移动。

优点:比起SCAN算法,对于各位置磁道的响应频率很平均。

缺点:只有到边上才能改变磁头移动方向,比起SCAN算法来,平均寻道时间更长。

例:假设磁头的初始位置是100号磁道,有多个进程先后陆续的请求访问55,58,39,18,90,160,150,38,184号磁道

按照SCAN的规则,磁头总共移动了(184-100)+(184-18)+(90-18)=322个磁道

(5)、NStepSCAN算法

(6)、FSCAN算法   

猜你喜欢

转载自blog.csdn.net/qq_41819893/article/details/121328990
今日推荐