【电子科技大学】计算机操作系统期末复习——第五章-输入输出系统

五 输入输出系统

5.1 I/O 系统简介

设备管理的对象:主要是 I/O 设备。

设备管理的基本任务:完成用户提出的 I/O 请求,提高 I/O 速率以及改善 I/O 设备的利用率。

设备管理的主要功能:缓冲区管理、设备分配、设备处理、虚拟设备及实现设备独立性等。

I/O 系统的基本功能:

  • 设备分配
  • 设备映射
  • 设备驱动
  • I/O 缓冲区的管理

通用设备管理分层模型:

  • 分层原因:使 I/O 软件具有清晰的结构、更好的可移植性和易适应性。

  • 目前普遍采用层次式的结构,通常划分为四层,如下:
    用户层软件 ⇕ 设备独立性软件 ⇕ 设备驱动程序 ⇕ 中断处理程序 ⇕ 设备硬件 \fbox{用户层软件} \\ \Updownarrow \\ \fbox{设备独立性软件} \\ \Updownarrow \\ \fbox{设备驱动程序} \\ \Updownarrow \\ \fbox{中断处理程序} \\ \Updownarrow \\ \fbox{\textbf{设备硬件}} \\ 用户层软件设备独立性软件设备驱动程序中断处理程序设备硬件

I/O 设备和设备控制器等硬件:

  • 在 I/O 系统中,需要有与 I/O 设备相应的设备控制器和高速总线。

  • 在有的大、中型计算机系统中,还配置了 I/O 通道或 I/O 处理机。

  • 通常,设备并不是直接与 CPU 进行通信,而是与设备控制器通信,因此,在设备与设备控制器之间应有一接口,该接口与设备之间有数据状态线、状态信号线与控制信号线。

    • 数据信号线:在设备与控制器之间传送数据信号。
    • 状态信号线:传送指示设备当前状态的信号,有:正在读/写,或准备好新的数据传送。
    • 控制信号线:由设备控制器向 I/O 发送控制信号时的通路,如:读、写控制等。
  • 有关设备控制器:

    • 设备控制器是 CPU 与 I/O 设备之间的接口,它接收从 CPU 发来的命令,并控制 I/O 设备工作。
    • 设备控制器主要职责是控制一个或多个 I/O 设备,以实现 I/O 设备和计算机之间的数据交换。
  • 有关 I/O 通道:

    • I/O 通道是一种特殊的执行 I/O 指令的处理机。
    • 其引入目的是使一些原来由 CPU 处理的 I/O 任务转由通道来承担,从而把 CPU 从繁杂的 I/O 任务中解脱出来。
    • 采用通道有以下特点:
      • DMA(直接存储器存取)方式显著地减少了 CPU 的干预。
      • 只需向 I/O 通道发送一条 I/O 指令,即可完成一组相关的读(或写)操作及有关控制。
      • 可实现 CPU、通道和 I/O 设备三者的并行操作,从而更有效地提高整个系统的资源利用率。

5.2 中断处理程序和设备驱动程序

5.2.1 中断简介(一些简单概念)

中断和陷入——CPU 外部事件和内部事件导致

中断向量表和中断优先级

对多中断源的处理方式:

  • 屏蔽(禁止)中断
  • 嵌套中断

5.2.2 中断处理程序

中断处理层的主要工作:

  • 进行进程上下文的切换
  • 对处理中断信号源进行测试
  • 读取设备状态和修改进程状态等

中断处理程序的处理过程:

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

    1. 测定是否有未响应的中断信号。

      • 程序完成当前指令后测试是否有未响应的中断信号。
      • 如果没有,继续执行下一条指令。
      • 如果有,则停止原有进程的执行,准备转去执行中断处理程序,为把处理机的控制权转交给中断处理程序做准备。
    2. 通常由硬件自动将处理机状态字 PSW 和程序计数器(PC)中的内容,保存在中断保留区(栈)中。

    3. 把被中断进程的 CPU 现场信息(即包括所有的 CPU 寄存器,如通用寄存器、段寄存器等内容)都压入中断栈中。

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

    1. 由处理机对各个中断源进行测试,以确定引起本次中断的 I/O 设备,并发送一应答信号给发出中断请求的进程,使之消除该中断请求信号。

    2. 将相应的设备中断处理程序的入口地址装入到程序计数器中,使处理机转向中断处理程序。

  • 然后进行中断处理
    6. 该程序首先从设备控制器中读出设备状态,以判别本次中断是正常完成中断,还是异常结束中断。
    - 若是前者,中断程序便进行结束处理;若还有命令,可再向控制器发送新的命令,进行新一轮的数据传送。
    - 若是异常结束中断,则根据发生异常的原因做相应的处理。

  • 最后恢复被中断进程的现场
    7. 中断处理完成以后,便可将保存在中断栈中的被中断进程的现场信息取出,并装入到相应的寄存器中,其中包括该程序下一次要执行的指令的地址 N+1、处理机状态字 PSW,以及各通用寄存器和段寄存器的内容。这样,当处理机再执行本程序时,便从 N+1 处开始,最终返回到被中断的程序。

5.2.3 设备驱动程序

设备驱动程序概述

设备驱动程序的处理过程

对 I/O 设备的控制方式

  • 使用轮询的可编程 I/O 方式
  • 使用中断的可编程 I/O 方式
  • 直接存储器访问方式
  • I/O 通道控制方式

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

  • 程序 I/O(Programmed I/O)方式,或称为忙-等待方式。
  • 处理机向控制器发出一条 I/O 指令启动输入设备输入数据时,同时把 busy 置为 1,再不断循环测试 busy。
  • Busy=0,完成输入,处理机读取数据,送入指定单元,完成一次 I/O。
  • 对状态寄存器中的忙/闲标志 busy 的检查实现控制。
  • 效率比较低,现在几乎不用了。

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

  • 由于处理器与 I/O 设备间有着几个数量级的速度差异,所以为了提高整体效率,减少在程序直接控制 I/O 设备与处理器进行数据交互是很必要的。
  • 中断驱动方式则可以成百倍地提高 CPU 的利用率,因为 CPU 与 I/O 设备并行工作。

直接存储器(DMA)访问方式

  • DMA 访问方式的引入:为了进一步减少 CPU 对 I/O 的干预。

  • 特点:

    • 数据传输的基本单位是数据块,即在 CPU 与 I/O 设备之间,每次传送至少一个数据块。
    • 所传送的数据是从设备直接送入内存的,或者相反。
    • 仅在传送一个或多个数据块的开始和结束时,才需 CPU 干预,整块数据的传送是在控制器的控制下完成的。
  • DMA 方式较之中断驱动方式,又是成百倍地减少了 CPU 对 I/O 的干预,进一步提高了 CPU 与 I/O 设备的并行操作程度。

I/O 通道控制方式

  • I/O 通道控制方式的引入:I/O 通道方式是 DMA 方式的发展,它可进一步减少 CPU 的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。可实现 CPU、通道和 I/O 设备三者的并行操作,从而更有
    效地提高整个系统的资源利用率。

5.3 与设备无关的 I/O 软件

5.3.1 设备独立性

设备独立性指应用程序独立于具体使用的物理设备,换种说法,即应用程序不局限于使用某个具体的物理设备。

为了实现设备独立性而引入了逻辑设备物理设备这两个概念。

在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。

因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能。

实现设备独立性的好处:

  • 设备分配时的灵活性:进程能以逻辑设备名称来请求某类设备时,系统可立即将该类设备中的任一台分配给进程,仅当所有此类设备已全部分配完毕时,进程才会阻塞。
  • 易于实现 I/O 重定向:所谓 I/O 重定向,是指用于 I/O 操作的设备可以更换(即重定向),而不必改变应用程序。

5.3.2 设备独立性软件

为了实现设备独立性,必须再在驱动程序之上设置一层软件,称为设备独立性软件。

设备独立性软件的主要功能可概括为以下两个方面:

  • 执行所有设备的公有操作
    • 它们通常包括:
      • 对独立设备的分配与回收
      • 将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备的驱动程序
      • 对设备进行保护,禁止用户直接访问设备
      • 缓冲管理
      • 差错控制
      • 提供独立于设备的逻辑块
  • 向用户层(或文件层)软件提供统一接口
    • 无论何种设备,它们向用户所提供的接口应该是相同的。

5.4 磁盘系统及磁盘调度

对文件的操作,都将涉及到对磁盘的访问,磁盘 I/O 速度的高低和磁盘系统的可靠性,都将直接影响到系统性能。因此,设法改善磁盘系统的性能,已成为现代操作系统的重要任务之一 。

提高磁盘 I/O 速度的主要途径

  • 选择性能好的磁盘
  • 采用好的磁盘调度算法
  • 设置磁盘高速缓存(Disk Cache)
  • 其它方法
  • 采用高度可靠、快速的容量磁盘系统–磁盘冗余阵列

磁盘访问时间分成以下三个部分:

  • 寻道时间 T s T_s Ts:指把磁头移动到指定磁道上所经历的时间。
    T s = m × n + s T_s=m \times n + s Ts=m×n+s
    其中, s s s为启动磁头的时间, n n n为磁头需要移动的磁道条数, m m m为移动每一条磁道所花费的时间。

  • 旋转延迟时间 T τ T_\tau Tτ:指定扇区移动到磁头下面所经历的时间。

  • 传输时间 T t T_t Tt:指把数据从磁盘读出或向磁盘写入数据所经历的时间。

    • T t T_t Tt的大小与每次所读/写的字节数 b b b和旋转速度有关:
      T t = b r N T_t=\frac{b}{rN} Tt=rNb
      其中, r r r为磁盘每秒钟的转数, N N N为一条磁道上的字节数。

磁盘调度

  • 磁盘是可供多个进程共享的设备。
  • 当有多个进程都要求访问磁盘时,应采用一种最佳调度算法,以使各进程对磁盘的平均访问时间最小。
  • 目前常用的磁盘调度算法有:
    • 先来先服务(FCFS)
    • 最短寻道时间优先(SSTF)
    • 扫描(SCAN)算法
    • 循环扫描(CSCAN)算法

先来先服务(FCFS)

  • 根据进程请求访问磁盘的先后次序进行调度。
  • 算法的优点是公平、简单,且每个进程的请求都能依次地得到处理。

最短寻道时间优先(SSTF)

  • 选择这样的进程,其要求访问的磁道,与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。
  • 虽然能获得较好的寻道性能,但却可能导致某个进程发生“饥饿”现象。

扫描(SCAN)算法

  • 该算法优先考虑的是磁头当前的移动方向。
  • 例如,磁头自里向外移动,并同时自里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向自外向里移动。

循环扫描(CSCAN)算法

  • 算法规定磁头单向移动。
  • 例如,只是自里向外移动,当磁头移到最外的磁道并访问后,磁头立即返回到最里的欲访问磁道,亦即将最小磁道号紧接着最大磁道号构成循环,进行循环扫描。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值