一、定义与本质

  设备管理是操作系统的重要组成部分,负责对计算机系统中的输入/输出设备进行统一管理和控制。其核心任务是:在为用户程序提供简便、统一的设备使用接口的同时,尽可能提高CPU与I/O设备之间的并行工作程度,从而提升整个系统的效率。

二、设备的分类

1. 按数据传输速率分类

类型 速率范围 典型设备
低速设备 几个~几百字节/秒 键盘、鼠标、语音输入设备
中速设备 数千~数万字节/秒 行式打印机、激光打印机
高速设备 数十万~数兆字节/秒 磁盘机、光盘机、磁带机

2. 按信息交换单位分类

类型 特点 典型设备
块设备 数据块为单位传输,有结构,可寻址 磁盘、磁带
字符设备 字符流为单位传输,无结构,不可寻址 键盘、打印机、终端

块设备与字符设备是软考中最重要的设备分类方式。块设备支持随机访问(给定地址即可读写任意块),字符设备则只能顺序读写。

3. 按资源分配方式分类

类型 特点 示例
独占设备 在一段时间内只能由一个进程使用 打印机、扫描仪
共享设备 允许多个进程并发交叉访问 磁盘
虚拟设备 通过技术手段将独占设备改造为逻辑共享设备 SPOOLing系统下的打印机

三、I/O控制方式

CPU与I/O设备之间的数据传输控制方式经历了从低效到高效、从高度依赖CPU到几乎解放CPU的演进过程。

1. 程序直接控制方式(轮询)

CPU不断循环检测设备状态寄存器,当设备就绪时执行数据传输。

工作流程 CPU负责数据传送,设备只负责I/O操作
优点 实现简单,不需要额外硬件支持
缺点 CPU利用率极低,CPU与设备完全串行工作
适用场景 早期简单系统,现代系统已淘汰

轮询方式可类比“不断看水壶开了没有”,烧水的人(CPU)无法做其他事情,只能守在壶边反复查看。

2. 中断驱动方式

CPU发出I/O指令后继续执行其他任务,当设备完成数据传输时通过中断信号通知CPU处理后续工作。

工作流程 CPU发出指令→执行其他程序→设备完成时发中断→CPU响应中断并处理数据
优点 CPU与设备可并行工作,CPU利用率显著提高
缺点 每次数据传输都需中断,频繁中断带来上下文切换开销
适用场景 低速字符设备

中断方式可类比“烧水壶带哨音”,烧水者可以去忙别的事,听到哨音(中断)再回来处理。

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

增设DMA控制器硬件,由DMA控制器接管数据传送工作,CPU只需在传送开始和结束时介入。

工作流程 CPU初始化DMA→DMA控制总线完成数据块传送→传送完成时DMA发中断通知CPU
优点 进一步解放CPU,数据传送期间CPU完全不参与
缺点 需要专门的DMA控制器硬件,成本较高
适用场景 块设备的高速数据传输

DMA方式可类比“自动烧水装置”,烧水者只需按下开关,装置自动完成烧水并保温,全程无需看管。

4. 通道控制方式

通道是一种专门负责I/O处理的独立处理器,拥有自己的指令系统,可执行通道程序来控制多台设备。

工作流程 CPU发出I/O指令→通道执行通道程序管理设备→操作结束时发中断
优点 高度并行,通道可独立管理一组设备
缺点 硬件结构复杂,成本高
适用场景 大型计算机系统
类型 功能 连接设备数
字节多路通道 按字节交叉传送,分时服务于多台低速设备 多台
数组选择通道 按数组高速传送,一次服务于一台高速设备 一台
数组多路通道 按数组高速传送,可交替服务于多台高速设备 多台

5. 四种方式对比

控制方式 CPU干预程度 并行能力 硬件成本 典型设备
程序直接控制 全程干预 最低 已淘汰
中断驱动 每字节/字中断 部分并行 较低 键盘、鼠标
DMA 仅开始/结束干预 高度并行 中等 磁盘、网卡
通道 极少干预 极高并行 大型机外设

四、SPOOLing系统(假脱机技术)

1. 定义与本质

SPOOLing(Simultaneous Peripheral Operations On-Line,假脱机技术)是一种通过磁盘作为缓冲,将独占设备改造为可共享的虚拟设备的技术。其核心思想是:用快速的外存空间模拟慢速的独占设备,使每个进程都感觉自己独占了一台设备。

2. 系统组成

组成部分 作用
输入井 / 输出井 磁盘上开辟的缓冲区,用于暂存输入/输出数据
输入进程 / 输出进程 负责在井和设备间传送数据的后台进程
井管理程序 控制作业与井之间的数据交换

3. 打印机SPOOLing示例(经典场景)

在没有SPOOLing时,进程A使用打印机期间,进程B的打印请求必须等待,打印机成为系统瓶颈。

引入SPOOLing后:

  1. 进程的打印请求不再直接操作打印机,而是将打印数据写入磁盘输出井
  2. 输出进程在打印机空闲时,从输出井中取出数据并打印
  3. 用户进程感知为“立即完成”打印(实际是快速写入磁盘)

SPOOLing可类比“饭店外卖系统”,顾客不再在后厨排队等餐,而是下单后离开(写入输出井),后厨按订单顺序做好后由外卖员配送(输出进程打印)。顾客感觉服务很快,但实际烹饪时间并未缩短。

4. 关键要点

  • SPOOLing将独占设备改造成了共享设备
  • 核心技术是利用磁盘作为缓冲,实现了设备的虚拟化
  • 典型的SPOOLing应用包括:打印机共享、远程批处理输入
  • 提高了设备利用率,但不能缩短实际I/O时间

五、设备分配与回收

1. 设备分配因素

因素 说明
设备固有属性 独占设备需互斥分配,共享设备可多进程使用
分配算法 先来先服务、优先级高者优先
安全性 避免因设备分配不当导致死锁

2. 设备分配的数据结构

数据结构 作用
设备控制表(DCT) 记录每台设备的状态、类型、等待队列
控制器控制表(COCT) 记录控制器的状态和连接情况
通道控制表(CHCT) 记录通道的使用状态
系统设备表(SDT) 系统中所有设备的全局表

3. 逻辑设备与物理设备

用户程序通过逻辑设备名来请求设备,由操作系统建立逻辑设备到物理设备的映射。这种设计带来两大好处:

好处 说明
设备独立性 程序不依赖具体物理设备,更换设备无需修改程序
灵活性 可根据系统状态将逻辑设备映射到不同的物理设备

六、练习

题目1:下列设备中,属于块设备的是( )。

A. 键盘
B. 鼠标
C. 磁盘
D. 打印机

答案:C

解析:块设备以数据块为单位进行传输,支持随机寻址,典型代表是磁盘。键盘、鼠标、打印机都是字符设备,以字符流为单位顺序传输。

题目2:在I/O控制方式中,完全不需要CPU干预的方式是( )。

A. 程序直接控制方式
B. 中断驱动方式
C. DMA方式
D. 不存在完全不需要CPU干预的方式

答案:D

解析:任何I/O控制方式都需要CPU的初始化和结束处理。即使是DMA方式和通道方式,也需要CPU发出启动指令并处理完成中断。“完全不需要CPU干预”的数据传输方式是不存在的。

题目3:SPOOLing技术的主要目的是( )。

A. 提高CPU的处理速度
B. 将独占设备改造成共享设备
C. 增加磁盘的存储容量
D. 减少中断处理次数

答案:B

解析:SPOOLing(假脱机技术)通过在磁盘上建立输入/输出井,将打印机等独占设备逻辑上改造成多进程可共享的设备。它不是提高CPU速度,也不是增加磁盘容量。

题目4:以下关于DMA方式的描述中,错误的是( )。

A. DMA方式需要在内存和设备之间建立直接数据通路
B. DMA方式的数据传送过程不需要CPU干预
C. DMA方式的数据传送完成后通过中断通知CPU
D. DMA方式适用于字符设备的低速数据传输

答案:D

解析:DMA方式适用于块设备的高速数据传输(如磁盘),而不是低速的字符设备。字符设备通常使用中断驱动方式。A、B、C描述均正确。

题目5:在采用SPOOLing技术的系统中,用户的打印请求被系统接收后,系统会( )。

A. 立即分配打印机给用户
B. 将打印数据写入内存缓冲区
C. 将打印数据写入磁盘输出井
D. 让用户进程等待直到打印机空闲

答案:C

解析:SPOOLing系统中,用户进程的打印数据被快速写入磁盘输出井,进程即可继续执行,无需等待物理打印机。之后由输出进程在后台将输出井数据送往打印机打印。

题目6:通道是一种特殊的( )。

A. I/O指令
B. 设备控制器
C. 处理器
D. 中断向量

答案:C

解析:通道是一种专门负责I/O处理的独立处理器,拥有自己的指令系统(通道指令),可以执行通道程序控制多台设备的数据传输。它与CPU共享内存,但可以独立运行。

题目7:操作系统中引入逻辑设备名的主要作用是( )。

A. 提高设备利用率
B. 实现设备的独立性
C. 加快数据传输速度
D. 减少设备中断次数

答案:B

解析:逻辑设备名将用户程序与具体物理设备分离,实现了设备独立性(设备无关性)。当物理设备变更时,只需修改逻辑名到物理名的映射,用户程序无需改动。

题目8:某计算机系统采用中断驱动I/O方式,CPU每处理一次中断平均需要0.2ms。若某字符设备的数据传输速率为100字符/秒,每传输一个字符产生一次中断,则CPU用于处理该设备I/O的时间占CPU总时间的比例为( )。

A. 0.02%
B. 0.2%
C. 2%
D. 20%

答案:C

解析:

设备传输速率 = 100字符/秒,即每秒产生100次中断
每次中断处理时间 = 0.2ms = 0.0002秒
每秒中断处理总时间 = 100 × 0.0002 = 0.02秒
占CPU时间比例 = 0.02 / 1 = 2%

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐