Skip to content

4.1 概述

Giovanna

About 2915 wordsAbout 10 min

2024-08-31

I/O系统

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

  • 我们先对I/O设备和设备控制器等硬件做一扼要的阐述。

  • 在I/O系统中,除了需要直接用于I/O和存储信息的设备外,还需要有相应的设备控制器和高速总线。

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

一、I/O设备

1. 分类

计算机系统中参与I/O的外设大体上分为如下三类:

  • 人可读:适用于计算机用户间的交互,如打印机和终端。终端又包括显示器和键盘,以及其他一些可能的设备,如鼠标。

  • 机器可读:适用于与电子设备通信,如磁盘驱动器、USB密钥、传感器、控制器和执行器。

  • 通信:适用于与远程设备通信,如数字线路驱动器和调制解调器。

2. 差别

I/O设备之间的主要差别:

  • 数据传送速率:数据传送速率可能会相差几个数量级。

  • 应用:设备用途对操作系统及其支撑设施中的软件和策略都有影响。

  • 控制复杂度:打印机仅需要一个相对简单的控制接口,而磁盘的控制接口则要复杂得多。

  • 传输单位:数据可按字节流或字符流的形式传送(如终端I/O),也可按更大的块传送(如磁盘I/O)。

  • 数据表示:不同的设备使用不同的数据编码方式,这些差别包括字符编码和奇偶校验约定。

  • 错误条件:随着设备的不同,错误的性质、报告错误的方式、错误造成的后果及有效的响应范围,都各有不同。

image.png

3. 设备与控制器之间的接口

  • 设备并不是直接与CPU进行通信,而是与设备控制器通信,因此,在I/O设备中应含有与设备控制器的接口。

  • 三种信号

    • 数据信号:双向,有缓存。
    • 控制信号:控制器发给设备;要求其完成相关操作。
    • 状态信号:设备发给控制器,后者“显示”。

二、设备控制器

基本功能

  • 接收和识别命令

    • 有相应的Register存放命令(命令/控制寄存器)
  • 数据交换

    • 实现CPU与控制器之间、控制器与设备之间的数据交换
  • 标识和报告设备的状态

    • 有设备控制器:“状态寄存器”
  • 地址识别

    • CPU通过“地址”与设备通信,设备控制器应能识别它所控制的设备地址及其各寄存器的地址
  • 数据缓冲

    • 控制器中设置缓冲器
  • 差错控制

设备控制器的组成

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

    • 三类型号线:数据线、地址线、控制线。
  • 设备控制器与设备的接口

    • 一个或多个设备接口,包含数据、命令、状态3种类型的信号。
  • I/O 逻辑

    • 接收I/O命令,并译码。
    • 如下图

image.png

三、I/O控制方式

执行I/O的三种技术:

  • 程序控制I/O

  • 中断驱动I/O

  • 直接存储器访问(DMA)

1. 程序控制I/O

  • 处理器代表一个进程给I/O模块发送一个I/O命令;该进程进入忙等待,直到操作完成才能继续执行。

  • CPU需花代价不断查询I/O状态

    • CPU资源浪费极大

程序控制I/O流程:

image.png

2. 中断驱动I/O

  • 处理器代表进程向I/O模块发出一个I/O命令。

  • 何谓中断、中断源、中断处理程序?

    • 一个进程占有处理器运行时,由于自身或外界的原因(出现了某事件)使运行被打断。让操作系统处理所出现的事件,处理完中断事件之后,再让被打断的进程继续运行,这个过程称为“中断”。
    • 把引起中断的事件称为“中断源”。
    • 对出现的事件进行处理的程序称为“中断处理程序”。

中断控制的优点

  • 在I/O 设备输入每个数据的过程中,由于无需CPU干预

    • CPU与I/O设备可以并行工作
    • 提高了整个系统的资源利用率及吞吐量

中断驱动I/O流程

image.png

中断类型

  • 外部中断事件

    • 计算机故障中断。例如,电源电压超出规定范围,主存储器读写时发生校验错等。
    • 输入输出中断事件。例如,输入输出设备引起的I/O事件所引起的硬件中断。
  • 内部中断

    • 程序性中断事件。例如,地址越界、除数为“0”及定点溢出等 。
    • 系统调用中断。指正在运行的进程请求调用操作系统的某个功能服务而执行一条“系统调用”指令所引起的中断。 在UNIX中经常把“系统调用中断”称为“访管中断”。

中断响应

处理器每执行完一条指令后,硬件的中断装置立即检查有无中断事件发生,若有中断事件发生,则暂停现行进程的执行,而让操作系统的中断处理程序占用处理器,这一过程称“中断响应”。

  • 中断装置主要是做如下三件事

    • 首先检查是否有中断事件发生,并确定中断的原因。
    • 若有中断事件发生,则保护好被中断进程的断点以及其他一些信息,以便进程在适当时候能继续执行。
    • 根据中断原因找到中断处理程序并启动中断处理程序工作。

中断寄存器

如果有外部中断事件出现,而外部中断源又各不相同。

例如:8259A中断寄存器。

image.png

中断向量表

  • 在微机中将中断源统一编号,不同的中断源有不同的中断类型编号。

  • 每一个中断类型号对应一个中断处理程序。

  • 中断向量表中存放各个中断处理程序的入口地址。

  • 在计算机系统初始化时,根据设备处理程序在内存中的位置,由引导程序完成中断向量表的建立。

中断屏蔽寄存器

  • 中断屏蔽寄存器的各位与中断寄存器的各位相对应。当中断屏蔽寄存器的相应位置为“1”时,则中断输入被屏蔽(禁止)。当中断屏蔽寄存器的相应位置为“0”时,则相应的中断被允许。

  • 中断分为:可屏蔽中断和不可屏蔽中断(NMI)。

  • 在微机中仅有IRQ0~IRQ7是可以屏蔽的。其余的为不可屏蔽中断。

中断优先级

  • 中断优先级是按中断事件的重要性和紧迫程度来确定的。

  • 中断装置是按预定的顺序响应同时出现的中断事件。

  • 这个顺序可以由编程实现 。

  • 不同的系统对中断优先级的划分不尽相同。

image.png

IBM 360/370系列计算机系统的中断处理

  • 把中断分为5类:硬件故障类、程序性事件类、外部事件类、输入输出类和访管中断类。

  • 程序状态字(PSW)是用来控制指令执行顺序并且保留和指示与程序相关的系统状态。

image.png

中断响应过程由交换PSW完成

image.png

整个中断处理过程

image.png

3. DMA I/O控制

DMA控制方式的引入

  • 为了进一步减少CPU对I/O的干预,而引入了直接存储器访问(Direct Memory Access)方式。

  • 该方式的特点是:

    1. 数据传输的基本单位是数据块,即CPU与I/O设备之间,每次传送至少是一个数据块。
    2. 所传送的数据是从设备直接送入内存的,或者从内存送到设备输出。
    3. 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在通道控制器的控制下完成的。

DMA控制器的组成

  • DMA 控制器由三部分组成

    • 主机与DMA控制器的接口。
    • DMA 控制器与块设备的接口。
    • I/O 控制逻辑。
  • DMA控制器中设置如下四类寄存器

    • 命令/状态寄存器(CR)。
    • 内存地址寄存器(MAR)。
    • 数据寄存器(DR)。
    • 数据计数器(DC)。

image.png

DMA工作流程

image.png

4. I/O通道

I/O通道控制方式的引入

  • I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。

  • 可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。

通道程序

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

  • 通道程序是由一系列通道指令(或称为通道命令)所构成的。

I/O通道(I/O Channel)设备的引入

  • 通道

    • 一种特殊的执行I/O指令的处理机,与CPU共享内存,可以有自己的总线。
  • 引入目的

    • 解脱CPU对I/O的组织、管理。
  • CPU只需发送I/O命令给通道,通道通过调用内存中的相应通道程序完成任务。

通道类型

字节多路通道

  • 这是一种按字节交叉方式工作的通道。每一个子通道连接一台I/O设备,并控制该设备的I/O操作。这些子通道按时间片轮转方式共享主通道。

  • 只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率不是太高时,便不致丢失信息。

  • 适用于低、中速设备。

image.png

数组选择通道

  • 字节多路通道不适合用于连接高速设备,催生了数组选择通道的形成。

  • 数组选择通道可以连接多台高速设备,但是只有一个分配型子通道,一段时间内只能执行一道通道程序。某台设备占用该通道后,即使无数据传送,通道被闲置,也不允许其他设备使用该通道,直至设备传送完毕释放该通道。

  • 利用率低。

数组多路通道

  • 数组多路通道将数组选择通道传输速率高和字节多路通道能使各子通道分时并行操作的优点相结合。

  • 数组多路通道含有多个非分配型子通道,既具有很高的数据传输速率,又有较高的通道利用率。

  • 广泛应用于连接多台高、中速外围设备,数据传送方式按数组方式进行。

“瓶颈”问题

  • 由于通道不足所造成的“瓶颈”现象。

  • 解决“瓶颈”问题的最有效的方法,便是增加设备到主机间的通路而不增加通道。

image.png

解决“瓶颈”问题的最有效的方法,便是增加设备到主机间的通路,而不增加通道。

image.png