I/O系统练习题
练习 1
简述 I/O 系统的基本功能。
解题思路:
按 I/O 系统使用这些功能的顺序列出五项功能:传送数据、控制设备、转换信息、管理设备资源和处理错误,并说明每项的具体工作。
详细步骤:
I/O 系统的基本功能:
-
数据交换:
- 在 CPU 和 I/O 设备间传输数据
- 支持不同数据格式
- 保证数据传输的可靠性
-
设备控制:
- 控制 I/O 设备的工作状态
- 管理设备的启动和停止
- 处理设备异常
-
信息转换:
- 转换数据格式
- 适配不同设备接口
- 处理信号电平转换
-
设备管理:
- 管理设备资源
- 处理设备冲突
- 提供设备驱动
-
错误处理:
- 检测设备错误
- 处理传输错误
- 提供错误恢复机制
最终答案:
I/O 系统的基本功能有:CPU 与 I/O 设备之间的数据交换;设备控制,用于管理设备的工作状态、启动与停止以及设备异常;信息转换,负责数据格式、设备接口和信号电平的转换;设备管理,负责分配设备资源、解决冲突并提供驱动程序;以及错误处理,负责检测设备故障和传输错误并提供恢复机制。
练习 2
输入设备、输出设备和外部存储器各举例说明。
解题思路:
把答案分成题目要求的三类,每一类举出五种具体设备,并说明它们各自值得列出的能力特点。
详细步骤:
输入设备:
- 键盘:字符输入设备,支持多种输入法
- 鼠标:图形界面输入设备,支持点击、拖拽
- 扫描仪:图像输入设备,支持 OCR 文字识别
- 摄像头:视频输入设备,支持实时视频传输
- 麦克风:音频输入设备,支持语音识别
输出设备:
- 显示器:图像输出设备,支持不同分辨率
- 打印机:文字和图像输出设备,支持彩色打印
- 音箱:音频输出设备,支持立体声
- 投影仪:大屏幕显示设备,支持高分辨率
- 绘图仪:图形输出设备,用于工程绘图
外部存储器:
- 硬盘:大容量存储设备,支持快速读写
- 光盘:便携存储设备,支持只读和可写
- U 盘:便携存储设备,支持热插拔
- 存储卡:小型存储设备,用于数码设备
- 磁带:大容量备份设备,成本低
最终答案:
输入设备包括键盘、鼠标、扫描仪、摄像头和麦克风。输出设备包括显示器、打印机、扬声器、投影仪和绘图仪。外存包括硬盘、光盘、U 盘、存储卡和磁带。
练习 3
I/O 接口的主要功能是什么?
解题思路:
把接口看作主机与设备之间的边界,并给出这一边界必须完成的六项功能:信号转换、数据缓冲、设备控制、协议转换、错误处理和资源管理。
详细步骤:
I/O 接口的主要功能:
-
信号转换:
- 转换信号电平
- 适配不同设备接口
- 处理信号时序
-
数据缓冲:
- 缓存传输数据
- 平衡速度差异
- 提高传输效率
-
设备控制:
- 控制设备工作状态
- 管理设备寄存器
- 处理设备中断
-
协议转换:
- 转换数据传输协议
- 适配不同设备标准
- 保证兼容性
-
错误处理:
- 检测传输错误
- 提供错误恢复机制
- 保证数据传输可靠性
-
资源管理:
- 管理接口资源
- 处理设备冲突
- 优化资源使用
最终答案:
I/O 接口的主要功能有:信号转换,负责转换信号电平、适配设备接口并处理信号时序;数据缓冲,负责缓冲传送数据、平衡速度差异并提高传送效率;设备控制,负责控制工作状态、管理设备寄存器并处理中断;协议转换,负责转换传送协议、适配设备标准以保持兼容;错误处理,负责检测传输错误并提供恢复机制;以及资源管理,负责管理接口资源、处理设备冲突并优化其使用。
练习 4
程序查询、中断和 DMA 方式有何区别?
解题思路:
从工作原理、CPU 利用率、实现复杂度、应用场景和效率五个相同维度对比三种方式,并归纳它们的高低次序。
详细步骤:
三种 I/O 方式的区别:
-
程序查询方式:
- 工作原理:CPU 主动轮询设备状态
- CPU 利用率:低,CPU 大部分时间在等待
- 实现复杂度:简单,易于实现
- 适用场景:简单系统,低速设备
- 效率:最低,CPU 浪费严重
-
程序中断方式:
- 工作原理:设备就绪时中断 CPU
- CPU 利用率:高,CPU 可以执行其他任务
- 实现复杂度:中等,需要中断处理
- 适用场景:大多数 I/O 设备
- 效率:较高,CPU 利用率好
-
DMA 方式:
- 工作原理:数据在内存和外设间直接传输
- CPU 利用率:最高,CPU 只发起和结束控制
- 实现复杂度:复杂,需要 DMA 控制器
- 适用场景:高速设备,大块数据传输
- 效率:最高,CPU 负担最轻
性能比较:
- DMA > 中断 > 程序查询
- 复杂度:DMA > 中断 > 程序查询
- 成本:DMA > 中断 > 程序查询
最终答案:
程序查询方式由 CPU 轮询设备,最简单也最便宜,但对 CPU 的浪费最大;中断方式由设备就绪后主动提出中断,CPU 可以去从事其他工作,利用率和效率都高得多;DMA 在存储器与外设之间直接传送数据,CPU 几乎不参与,效率最高,代价是硬件最复杂、最昂贵。简而言之:在效率、复杂度和成本三个方面都是 DMA > 中断 > 程序查询方式。
练习 5
I/O 端口编址有哪两种方式?
解题思路:
从特点、地址空间、指令、优点、缺点和应用六个相同维度描述两种编址方式,再直接对比二者。
详细步骤:
I/O 端口编址的两种方式:
-
统一编址:
- 特点:内存和 I/O 统一编址
- 地址空间:共享同一地址空间
- 指令:使用相同的访问指令
- 优点:指令简单,编程方便
- 缺点:地址空间被分割,内存空间减少
- 应用:大多数现代计算机
-
独立编址:
- 特点:内存和 I/O 分别编址
- 地址空间:各自独立的地址空间
- 指令:使用专门的 I/O 指令
- 优点:地址空间独立,内存空间完整
- 缺点:指令复杂,需要专门的 I/O 指令
- 应用:早期计算机,某些嵌入式系统
比较:
- 地址空间:独立编址保护内存空间
- 指令复杂度:统一编址指令简单
- 编程便利性:统一编址编程方便
- 硬件复杂度:独立编址硬件复杂
最终答案:
对 I/O 端口编址有两种方式。统一编址让存储器与 I/O 共享同一地址空间并使用相同的访问指令,指令简单、编程方便,但会划分地址空间、压缩存储器空间;独立编址让存储器与 I/O 各有独立的地址空间并使用专用的 I/O 指令,存储器空间得以完整保留,但指令和硬件更复杂。现代计算机大多采用统一编址,早期计算机和部分嵌入式系统采用独立编址。
练习 6
分析题:分析不同 I/O 方式对系统性能的影响。
解题思路:
依次考察三种方式,说明它们对 CPU 利用率、响应时间和吞吐率的影响,再补充优化建议,并给出系统层面的结论。
详细步骤:
不同 I/O 方式对系统性能的影响:
-
程序查询方式:
- CPU 利用率:极低,CPU 大部分时间在等待
- 响应时间:长,需要轮询等待
- 吞吐量:低,无法充分利用 CPU
- 适用场景:简单系统,低速设备
-
程序中断方式:
- CPU 利用率:高,CPU 可以执行其他任务
- 响应时间:中等,中断响应时间
- 吞吐量:较高,CPU 利用率好
- 适用场景:大多数 I/O 设备
-
DMA 方式:
- CPU 利用率:最高,CPU 负担最轻
- 响应时间:短,直接传输
- 吞吐量:最高,适合大块数据传输
- 适用场景:高速设备,大块数据传输
-
性能优化建议:
- 选择合适的 I/O 方式:根据设备特点选择
- 优化中断处理:减少中断开销
- 使用 DMA:对于大块数据传输
- 平衡考虑:考虑成本、复杂度、性能
-
系统影响:
- 整体性能:I/O 方式影响系统整体性能
- 用户体验:影响系统响应速度
- 资源利用:影响 CPU 和 I/O 设备利用率
最终答案:
三种 I/O 方式对 CPU 的代价差别很大。程序查询方式把 CPU 的时间消耗在轮询上,利用率极低、响应时间长、吞吐率差。中断方式让 CPU 得以处理其他工作,利用率和吞吐率都好得多,响应时间仅为中断响应时间。DMA 几乎不占用 CPU,利用率、吞吐率最高,响应时间最短。选择与设备相匹配的方式、优化中断处理、对批量传送采用 DMA,并在成本与复杂度、性能之间取得平衡,是系统层面拉开差距的关键。
练习 7
计算题:假设有一个 I/O 设备,数据传输速率 1MB/s,使用中断方式,每次中断处理时间 10μs,计算 CPU 利用率。
解题思路:
先确定每次传输的数据量,把数据率换算成中断频率,用该频率乘以每次中断的开销得到每秒的 CPU 时间,再除以一秒得到利用率。
详细步骤:
计算过程:
-
数据传输速率:1MB/s = 1,048,576 字节/秒
-
中断频率:
- 假设每次传输 1KB 数据
- 中断频率 = 1,048,576 ÷ 1,024 = 1,024 次/秒
-
CPU 时间消耗:
- 每次中断处理时间:10μs = 10 × 10^-6 秒
- 每秒 CPU 时间消耗:1,024 × 10 × 10^-6 = 0.01024 秒
-
CPU 利用率:
- CPU 利用率 = 0.01024 ÷ 1 = 1.024%
- 即 CPU 只有 1.024%的时间用于 I/O 处理
-
分析:
- CPU 利用率很低
- 大部分时间可以执行其他任务
- 中断方式效率较高
最终答案:
数据传送速率为 1MB/s = 1,048,576 字节/秒,若每次传送 1KB,则中断频率 = 1,048,576 ÷ 1,024 = 1,024 次/秒。设每次中断处理时间为 10μs = 10 × 10^-6 秒,则 CPU 每秒消耗的时间为 1,024 × 10 × 10^-6 = 0.01024 秒,因此 CPU 利用率 = 0.01024 ÷ 1 = 1.024%。可见 CPU 只把 1.024% 的时间花在 I/O 处理上,这正是中断方式效率高、大部分时间能把 CPU 释放出来处理其他任务的原因。
练习 8
设计题:设计一个支持多种 I/O 方式的 I/O 系统。
解题思路:
分五个层面设计系统:总体结构、方式选择规则、资源管理、性能调优和错误处理,并把选择规则写清楚,使设计确实支持多种方式。
详细步骤:
多方式 I/O 系统设计:
-
系统架构:
- I/O 控制器:管理不同 I/O 方式
- 设备接口:统一设备接口
- 中断控制器:管理中断请求
- DMA 控制器:管理 DMA 传输
-
方式选择:
- 低速设备:使用程序查询方式
- 中速设备:使用中断方式
- 高速设备:使用 DMA 方式
- 动态选择:根据传输量动态选择
-
资源管理:
- 中断管理:分配中断号,处理中断冲突
- DMA 管理:分配 DMA 通道,管理传输
- 设备管理:设备注册、初始化、释放
-
性能优化:
- 缓存机制:减少 I/O 次数
- 批量传输:提高传输效率
- 优先级管理:重要设备优先
-
错误处理:
- 超时处理:处理设备故障
- 错误恢复:自动重试机制
- 状态监控:监控设备状态
最终答案:
设计用 I/O 控制器在统一的设备接口后面管理各种 I/O 方式,用中断控制器处理中断请求,用 DMA 控制器完成直接传送。方式的选择依据设备速度——低速设备用程序查询方式,中速设备用中断方式,高速设备用 DMA——并根据每次传送的数据量动态调整。在资源方面,需要分配中断号并解决其冲突,分配 DMA 通道并管理其传送,还要对设备进行注册、初始化和释放。性能来自缓冲、批量传送以及对重要设备的优先级管理,而错误处理则增加了超时、自动重试和状态监视。
