跳到主要内容
xray.top
知识小组同库第 7

第七章 I/O 设备管理

发布 2021/01/05 05:15更新 2025/10/03 10:13565018 阅读

1. 设备管理

Ÿ 设备管理是操作系统的主要功能之一,它负责管理所有输入输出设备以完成期望的数据传设备管

理;

Ÿ 由于计算机系统中存在着大量的输入/输出设备,其性能和应用特点可能完全不同。所以要建立一

个通用的、一致的设备访问接口,使用户和应用程序开发入员能够方便地使用输入/输出设备。

2.设备管理的主要任务

Ÿ  设备管理的主要任务有:缓冲区管理、设备分配、设备处理、虚拟设备以及实现设备独立性。

Ÿ  操作系统主要通过缓冲技术、中断技术和虚拟技术来解决 I/O设备系统的性能;

Ÿ  操作系统需要在设备管理和系统的其他部分之间提供简单而易于使用的接口;

Ÿ  对于设备拥有者而言,多用户多任务环境中的设备使用应该通过协调避免冲突,设备不能被破坏。

3.设备的分类

1)  按设备的使用特性分 类

按设备的使用特性分类,可以分为 I/O 设备和存储设备。

Ÿ  I/O 设备:

① 是计算机与外部世界交换信息的设备。

②  输入设备是计算机用来接受指令和数据等信息的设备( 键盘、鼠标等);

③ 输出设备是计算机用来传送处理结果的设备(显示器、打印机等);

④ 在计算机数据采集和过程控制等应用中,各种传感器、传动器、模拟/数字转换器、数字/模拟转换器等也属于 I/O 设备;

⑤ 调制解调器、网络适配器(网络接口卡) 等数据通信设备也属于 I/O 设备,这类设备用于构建计算机网络通信系统。

Ÿ 存储设备:

① 是计算机用来存放信息的设备,例如磁带、磁盘、光盘、U 盘等各种外存设备。

② 其中,可移动的磁带或磁盘在用于不同机器间传送数据时也可看作是 I/O 设备。

2)  按设备的信息组织方 式来划分

按信息组织方式来划分设备, 可以把 I/O 设备划分为字符设备(character device)和块设备(block device)。

Ÿ 字符设备

① 键盘、终端、打印机等以字符为单位组织和处理信息的设备;

② 字符设备通常以字符为单位发送或者接收字符流,而不存在任何块结构。

③ 字符设备不可寻址,所以没有任何寻址操作。除磁盘以外的大多数设备,例如网络接口卡、打印机、鼠标等可看作字符设备。

Ÿ 块设备

① 磁盘、磁带等以数据块为单位组织和处理信息的设备

② 基本特性: 能够随时读写其中的任何一块而与所有别的块无关。

③ 外存类设备通常是块设备,因其记录长度通常为一个数据块,例如磁盘的扇区或者由若干扇区组成的簇。

3)  按设备的共享属性分 类

按设备的共享属性可以将设备分为共享设备、独占设备和虚拟设备。

Ÿ 共享设备

共享设备是指在一段时间内允许多个进程使用的设备。磁盘是典型的共享设备。

Ÿ 独占设备

独占设备也称为独享设备,是指在一段时间内只允许一个进程使用的设备。独占设备的使用效率低是造成死锁的条件之一。

Ÿ 虚拟设备

虚拟设备是指利用虚拟技术把独占设备改造成可由多个进程共享的设备。SPOOLing 系统是一种非常重要的虚拟设备技术。

4.I/O 设备的控制方式

有程序直接控制方式、中断控制方式、DMA 方式和通道控制方式。

5.程序直接控制方式(PIO(Programmed I/O,程控 I/O)方式)

Ÿ 指由用户进程直接控制内存或 CPU 和外围设备之间进行信息传送的方式,

Ÿ 也称为“忙-等”方式、轮询方式或循环测试方式, 控制者是用户进程。


Ÿ 过程

① 用户进程从外围设备输入数据时,通过 CPU 发出启动设备准备数据的启动命令(通常是把一个启动位为 1 的控制字通过数据总线写入设备的控制寄存器中)。

② 用户进程进入测试等待状态。在等待时间, CPU 不断地用一条测试指令检查设备的状态寄存器是否为完成状态(通常是检测状态寄存器的完成位是否为1),而外围设备只有将输入数据送入数据缓冲寄存器之后,才将该寄存器置为完成状态。

③ 当 CPU 检测到设备的状态寄存器为完成状态,则从设备的数据缓冲寄存器读取数据到内存或 CPU。

④ 反之,当用户进程需要向输出设备输出数据时,也必须同样发出启动命令和等待设备准备好之后才能输出数据。

l  优点:CPU 和外设的操作能通过状态信息得到同步,而且硬件结构比较简单;

l  缺点:CPU 效率较低,传输完全在 CPU 控制下完成,对外部出现的异常事件无实时响应能力。

所以,程序直接控制方式只适用于那些 CPU 执行速度较慢,而且外围设备较少的系统,如单片机系统。

 

6.程序直接控制的关键部件

I/O 设备数据传送控制方式中,实现程序直接控制方式需要的关键部件包括设备状态寄存器、地址总线和数据总线、设备控制寄存器、设备数据缓冲区和地址译码器。

7.中断控制方式

Ÿ 中断是在发生了一个异常事件时,调用相应处理程序(通常称为中断服务程序)进行服务的过程。

Ÿ 中断服务程序与中断时 CPU 正在执行的进程是相互独立的, 相互不传递数据。

Ÿ 优点:

① CPU与外设在大部分时间内并行工作,有效地提高了计算机的效率。

② 具有实时响应能力,可适用于实时控制场合。

③ 及时处理异常情况,提高计算机的可靠性。

8.中断控制方式的处理过程

Ÿ  CPU 通过数据总线发出命令,启动外设工作,当前进程阻塞,调度程序调度其他进程;

Ÿ  外设数据准备好,置位中断请求触发器;

Ÿ  若此时接口中断屏蔽触发器状态为非屏蔽状态,则接口向 CPU 发出中断请求(IR);

Ÿ  CPU 接受中断请求(设备控制器的功能),且中断为允许中断状态,则中断判优电路工作;

Ÿ  中断判优电路对优先级最高的中断请求给予响应(INTA),CPU 中断正在执行的其他进程,转而执行中断服务程序。所以需要的关键部件是:中断控制器、地址总线和数据总线、设备控制器。

9.DMA(直接内存访问)方式

Ÿ 目的:

① 减少 I/O 数据交换消耗的处理时间;

② 提升高速的外围设备以及成组交换数据的速度。

Ÿ DMA 方式的数据块传送过程可分为 3 个阶段:传送前预处理、数据传送、传送后处理。

① 预处理阶段——由 CPU 执行 I/O 指令对 DMAC 进行初始化与启动。

② 数据传送阶段——由 DMAC 控制总线进行数据传输。当外设数据准备好后发 DMA 请求, CPU 当前机器周期结束后响应 DMA 请求,DMAC 从 CPU 接管总线的控制权,完成对内存寻址,决定数据传送的内存单元地址,对数据传送字进行计数,执行数据传送的操作。

③ 后处理阶段——传送结束,DMAC 向 CPU 发中断请求,报告 DMA 操作结束。CPU 响应中断,转入中断服务程序,完成 DMA 结束处理工作, 包括校验数据, 决定是否结束传送等。

Ÿ  DMA 方式一般用于高速传送成组的数据。

Ÿ 优点:

① 操作均由硬件电路实现,传输速度快;

② CPU 仅在初始化和结束时参与, 对数据传送基本上不干预, 可以减少大批量数据传输时 CPU 的开销;

③  CPU 与外设并行工作, 效率高。

Ÿ 局限性:

①  DMA 方式在初始化和结束时仍由 CPU 控制;

② 在大型计算机系统中,为了进一步减轻 CPU 的负担和提高计算机系统的并行工作程度, 除了设置

DMA 器件之外, 还设置了专门的硬件装置——通道。

10.DMA 控制的关键部件

实现 DMA控制方式需要的关键部件包括:DMA控制器、地址总线和数据总线。


11.通道控制方式

Ÿ 通道( channel)是一个特殊功能的处理器,它有自己的指令和程序,可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。

Ÿ 引入通道的目的: 是为了进一步减少数据输入输出对整个系统运行效率的影响。

Ÿ 按照信息交换方式分类

① 选择通道

是一种高速通道,在物理上它可以连接多个设备,但是这些设备不能同时工作;

选择通道主要用于连接高速外围设备,如磁盘、磁带等,信息以成组方式高速传输; 优点: 以数据块为单位进行传输, 传输率高;

缺点: 通道利用率低。

② 数组多路通道

当某个设备进行数据传送时,通道只为该设备服务;

当设备在执行寻址等控制性动作时,通道暂时断开与这个设备的连接,挂起该设备通道程序,为其他设备服务;

优点: 数据块为单位进行传输, 传输率高;又具有多路并行操作的能力, 通道利用率高。缺点: 控制复杂。

③ 字节多路通道

是一种简单的共享通道,在分时的基础上为多台低速和中速设备服务。

特点:各设备与通道之间的数据传送是以字节为单位交替进行的, 各设备轮流占用一个短的时间片; 多路并行操作能力与数组多路通道相同。

12. 通道的功能

Ÿ 接受 CPU 的指令, 按指令要求与指定的外围设备进行通信。

Ÿ 从内存读取属于该通道的指令,并执行通道程序,向设备控制器和设备发送各种命令。

Ÿ 组织外围设备和内存之间进行数据传送,并根据需要提供数据缓存的空间,以及提供数据存入内存的地址和传送的数据量。

Ÿ 从外围设备得到设备的状态信息,形成并保存通道本身的状态信息,根据要求将这些状态信息送到内存的指定单元,供 CPU 使用。

Ÿ 将外围设备的中断请求和通道本身的中断请求,按序及时报告 CPU。13.I/O 系统硬件结构

Ÿ  计算机 I/O 系统硬件结构主要包含 3 部分:适配器和接口部件、设备控制器、设备硬件。

14.          I/O 软件分层

一般可以分为四层:中断处理程序,设备驱动程序,与设备无关的操作系统软件,用户级软件( 指用户空间的 I/O 软件)。

15.            与设备无关 I/O 软件功能

① 设备驱动程序的统一接口

② 设备命名: 在操作系统的 I/O 软件中, 对 I/O 设备采用了与文件统一命名的方法,即采用文件系统路径名的方法来命名设备。

③ 设备保护:对设备进行必要的保护,防止无授权的应用或用户的非法使用,是设备保护的主要作用。

④ 提供一个与设备无关的逻辑块

⑤ 缓冲: 对于常见的块设备和字符设备, 一般都使用缓冲区。

⑥ 存储设备的块分配:在创建一个文件并向其中填入数据时, 通常在硬盘中要为该文件分配新的存储块。

⑦ 独占设备的分配和释放

⑧ 错误处理

一般而言,所有设备都需要的 I/O 功能可以在与设备独立的软件中实现。这类软件面向应用层并提供一个统一的接口。

16.            典型的 I/O 技术

Ÿ 在 I/O 设备管理中, 为了提高设备和 CPU 的效率, 引入了各种技术。

Ÿ 经常使用技术有: 缓冲技术、设备分配技术、SPOOLing 技术、DMA 与通道技术。

17.            缓冲技术

Ÿ 为了解决中央处理机和外部设备的速度不匹配和负荷不均衡问题,为了提高各种设备的工作效率, 增加系统中各部分的并行工作速度


Ÿ 缓冲技术是计算机系统中常用的技术。一般,数据到达速度和离去速度不匹配的地方都可以通过设置缓冲区,以缓解处理机与设备之间速度不匹配的矛盾,并减少对 CPU 的 I/O 中断次数从而提高资源利用率和系统效率。

18.            设备分配技术

1)  设备分配算法的数据结构

Ÿ 在设备分配算法的实现中,常采用的数据结构主要含四张表。

① 系统设备表 SDT(System Device Table):登录了该设备的名称、标识及设备控制表 DCT 的入口地址等相关的信息。

② 设备控制表 DCT(Device Control Table): 在 DCT 中充分体现出了设备的各方面特征,以及与该设备相连的设备控制器的情况,并保存了控制器块的入口位置。

③ 控制器控制表 COCT(Controller Control Table):用于登录某控制器的使用分配情况及与该控制器相连的通道的情况。

④ 通道控制表 CHCT(Channel Control Table):反映了通道的情况,系统中的每个通道都有一张 CHCT。

2)   设备分配的原则

Ÿ 设备分配的总原则:一方面要充分发挥设备的使用效率,同时又要避免不合理的分配方式造成死锁、系统工作紊乱等现象,使用户在逻辑层面上能够合理方便地使用设备。

Ÿ 考虑设备的特性和安全性

设备的特性是设备本身固有的属性,一般分为独占、共享和虚拟设备等;

Ÿ 从安全性方面考虑:

① 安全分配方式: 安全,效率比较低, CPU 与 I/O 设备串行工作、

② 不安全分配方式两种:提高了运行效率,但存在造成死锁的可能,因此设备分配程序中应该增加预测死锁的安全性计算,在一定程度上增加了程序的复杂性。

Ÿ 设备分配策略

与进程的调度相似, 设备的分配也需要一定的策略, 通常采用先来先服务( FIFO)和高优先级优先等策略。

① 先来先服务策略: 当多个进程同时对一个设备提出 I/O 请求时,系统按照进程提出请求的先后次序,把它们排成一个设备请求队列,并且总是把设备首先分配给排在队首的进程使用。

② 高优先级优先策略:给每个进程提出的 I/O 请求分配一个优先级,在设备请求队列中把优先级高的排在前面,如果优先级相同则按照 FIFO 的顺序排列。

3)  独占设备的分配

独占设备每次只能分配给一个进程使用,这种使用特性隐含着死锁的必要条件,所以在考虑独占设备的分配时,一定要结合有关防止和避免死锁的安全算法。

4)  共享设备的分配

① 共享设备是可由若干个进程同时共享的设备,例如磁盘。

② 通常,共享型设备的 I/O 请求来自文件系统、虚拟存储系统或输入输出管理程序,其具体设备已经确定,因而设备分配比较简单,即当设备空闲时分配,占用时等待。

19.          虚拟设备

Ÿ 系统中独占设备有限,不能满足多个进程,因而引起大量进程由于等待某些独占设备而阻塞,造成系统“瓶颈”。

Ÿ 申请到独占设备的进程运行期间利用率低,设备常处于空闲状态。

Ÿ 从而引入虚拟设备技术。

Ÿ 实现这一技术的软、硬件系统被称为 SPOOLing(Simultaneous Peripheral Operation On Line,外围设备同时联机操作)系统。

20.          SPOOLing 技术

Ÿ  SPOOLing 技术是一种同时的外围设备联机操作技术,通常称为“假脱机技术”。

Ÿ  SPOOLing 系统的 3 大组成部分:输入井和输出井、输入缓冲和输出缓冲、输入进程 SPi 和输出进程 SPo。21.提高 I/O 性能的技术

Ÿ 通过应用缓冲技术,解决传输速度差异的问题。

Ÿ 通过应用异步 I/O 技术,使 CPU 不必等待 I/O 的操作结果。

Ÿ 通过应用 DMA 和通道部件, 使 CPU 与这些部件能并行执行。

Ÿ 通过应用虚拟设备技术,减少进程阻塞时间,提高独占设备的利用率。

22. 设备表作用

Ÿ  为了实现设备的独立性,系统必须设置一张逻辑设备表,用于将应用程序中所用的逻辑设备名映射为物理


设备名。

Ÿ  在该表每个表目中有 3 项:逻辑设备名、物理设备名和设备驱动程序入口地址。

Ÿ  系统设备表 SDT,在 SDT 中每个接入系统中的设备都有一个表目项。登录了设备的名称,标识设备控制表

DCT 的入口地址等相关信息。

Ÿ  全面反映了系统中的外设资源的情况,逻辑设备与物理设备之间对应关系等。

23. 设备独立层

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

24. “准备就绪”信号

Ÿ  在程序控制 I/O 方式中,输出设备的主要作用是通过输出设备输出数据;

Ÿ  若输出设备向处理机返回“准备就绪”信号,则表示输出缓冲区已空或者可以向输出缓冲区写数据,CPU 可以向输出设备再次提供输出的数据。

25. 外部设备命令传递

当用户使用外部设备时,其控制设备的命令传递途径依次为: 用户应用层→设备独立层→设备驱动层→设备硬件。

26. 高速缓存

Ÿ  高速缓存不是缓冲,在计算机存储系统的层次结构中,介于中央处理器和主存储器之间的高速小容量存储器。

Ÿ  它和主存储器一起构成一级的存储器。

Ÿ  高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。

27. 键盘的 I/O 控制

Ÿ  键盘的工作原理是由键盘控制器专门来完成的,当键盘控制器收到数据后通过中断控制器 IRQ1 引脚向CPU

发送中断请求。

Ÿ  当 CPU 响应中断后就会调用键盘中断处理程序来读取控制器中的键盘扫描码。因此键盘的 I/O 控制是通过中断方式来实现的。

更新 2025/10/03 10:13
更新 2025/10/03 10:13