Appearance
设备分类
| 分类维度 | 类型 |
|---|---|
| 按数据组织 | 块设备、字符设备 |
| 按设备功能 | 输入/输出/存储/网络联网/供电设备 |
| 按资源分配 | 独占设备、共享设备、虚拟设备 |
| 按传输速率 | 低速/中速/高速设备 |
I/O 软件
🎯 一句话结论:I/O 软件隐藏了 I/O 操作实现的细节,方便用户使用 I/O 设备。
典型流程:用户程序读文件 → 与设备无关软件检查缓存 → 若无则调用设备驱动 → 向 I/O 硬件发请求 → 用户进程阻塞 → 磁盘操作完成 → 硬件产生中断 → 中断处理程序唤醒用户进程。
SPOOLING 技术
🎯 一句话结论:SPOOLING 在外设建立输入井/输出井,实现物理设备虚拟化,多进程感觉独占使用。
在外设上建立两个数据缓冲区(输入井/输出井),多个进程共用一台独占设备(如打印机),数据排队存储在缓冲区中自动按序处理,实现物理设备的虚拟化,每个进程感觉独占使用。
缓冲区技术
🎯 一句话结论:四种缓冲区 — 单缓冲、双缓冲、循环缓冲、缓冲池。双缓冲允许一个缓冲区填满后立即切换到另一个,提高并行性。
| 类型 | 说明 |
|---|---|
| 单缓冲 | 仅一个缓冲区,I/O 设备与 CPU 交替等待 |
| 双缓冲 | 两个缓冲区交替使用,一个填满时切换到另一个,提高并行性 |
| 循环缓冲 | 多个缓冲区构成环形队列,循环使用 |
| 缓冲池 | 系统统一管理的大量缓冲区 |
缓冲区的目的:缓和 CPU 和 I/O 速度不匹配、减少 CPU 中断频率、提高并行性。⚠️ 缓冲区不能增加系统存储容量。
中断处理
🎯 一句话结论:CPU 响应中断时断点信息保存到栈中,不是通用寄存器、堆或 I/O 接口。
嵌入式系统采用中断方式输入输出的原因:让 CPU 不用轮询等待 I/O 设备,提高 CPU 效率。
缺页中断:CPU 访问的页不在物理内存但存在于磁盘 → 触发缺页中断 → 处理过程称为页面置换。
练习题
[Q60] 缓冲区
在计算机系统中引入缓冲区的主要目的不包括以下哪一项( )。
- A. 缓和CPU和I/O设备速度不匹配的矛盾
- B. 减少对CPU的中断频率
- C. 提高CPU和I/O设备之间的并行性
- D. 增加系统的存储容量
答案与解析
答案:D
解析:缓冲区不增加存储容量,目的是速度匹配、减少中断、提高并行性。
[Q61] 双缓冲
在操作系统中,以下哪种缓冲区类型允许在一个缓冲区被填满后立即切换到另一个缓冲区,从而提高I/O操作的效率( )。
- A. 单缓冲
- B. 双缓冲
- C. 循环缓冲
- D. 缓冲池
答案与解析
答案:B
解析:双缓冲=两个缓冲区交替使用,一个填满立即切另一个,实现I/O与CPU并行。
[Q62] 流水线
某流水线系统有5个功能段,每段执行时间分别为2ns、3ns、1ns、4ns、2ns。若该系统需要连续处理100条指令,则总执行时间为( )。
- A. 416ns
- B. 408ns
- C. 420ns
- D. 424ns
答案与解析
答案:B
解析:流水线周期=最长段=4ns。总时间=ΣΔt + (n-1)×周期 = 12 + 99×4 = 408ns。