PDF 第 15 页(页脚 14)
题目:在日常编程中,以下哪个基础操作的执行过程会主动触发操作系统的系统调用?
A. 计算 1+1
B. 打开文件(open)
C. 访问数组元素
D. 执行循环
PDF 第 31 页(页脚 30)
题目:当程序访问的页面不在物理内存中时会触发缺页异常,请问系统此时会做出什么响应?
A. 进程终止
B. 切换到内核态并调页
C. 忽略该异常
D. 重启计算机
PDF 第 50 页(页脚 49)
Q:以下哪个操作最需要直接内存访问(DMA)技术的支持?
A. 读取键盘按键
B. 从硬盘加载 4 KB 数据
C. 计算圆周率 π
PDF 第 68 页(页脚 67)
题目:内存映射 I/O(MMIO)的优点是什么?
A. 无需专用 I/O 指令
B. 更快,因为可以使用普通 mov 指令
C. 支持缓存
D. 以上都是
PDF 第 76 页(页脚 75)
题目:以下哪种存储介质不需要寻道时间?
A. HDD(机械硬盘)
B. SSD(固态硬盘)
C. 磁带
PDF 第 96 页(页脚 95)
题目:以下哪种技术可以避免 CPU 拷贝网络数据?
A. DMA——直接存储器访问技术,允许外设与内存直接交互
B. 中断——用于通知 CPU 处理事件,不负责数据传输的路径优化
C. 轮询——CPU 主动检查外设状态,会占用大量 CPU 资源,效率较低
D. 仅有 TOE——TCP 卸载引擎仅卸载协议处理,无法单独避免数据拷贝
除此之外,PPT 中虽然还有不少问句、流程演示和算法示例,但没有被明确标注为“题目”或“小测验”,所以没有计入。
答案速查
| 题号 | 答案 |
|---|---|
| 1. 哪个操作会主动触发系统调用 | B. 打开文件(open) |
| 2. 页面不在物理内存时如何响应 | B. 切换到内核态并调页 |
| 3. 哪个操作最需要 DMA | B. 从硬盘加载 4 KB 数据 |
| 4. MMIO 的优点 | 按 PPT:D;严格来说:A 最准确 |
| 5. 哪种介质不需要寻道时间 | B. SSD |
| 6. 哪种技术可以避免 CPU 拷贝网络数据 | A. DMA |
主动触发系统调用的操作
答案:B. 打开文件(open)
open() 要访问由操作系统管理的文件系统、权限信息和存储设备。普通应用运行在用户态,不能自己操作这些资源,所以必须执行系统调用,陷入内核态,由操作系统完成。
其他选项通常不需要内核参与:
1+1:CPU 直接执行算术指令;- 访问数组:普通内存读取;
- 执行循环:比较、跳转等普通指令。
核心判断标准是:
是否需要操作系统帮助访问受保护的系统资源。
因此,打开文件需要系统调用;纯计算和普通访存一般不需要。
页面不在物理内存时的响应
答案:B. 切换到内核态并调页
当 CPU 访问某虚拟页面,页表显示该页面目前不在物理内存中时,会触发缺页异常:
- CPU 暂停当前指令;
- 切换到内核态;
- 操作系统检查地址是否合法;
- 分配物理页框;
- 从磁盘或可执行文件中读入页面;
- 更新页表和 TLB;
- 重新执行原指令。
缺页异常本身不一定是错误,它是请求分页的正常组成部分。
不过有个前提:地址必须合法。若程序访问的是根本没有映射的非法地址,操作系统才可能终止进程,例如产生段错误。
最需要 DMA 支持的操作
答案:B. 从硬盘加载 4 KB 数据
DMA 适合在设备和内存之间搬运成块数据:
磁盘 → DMA → 内存
CPU 只需要设置:
- 数据来源和目标地址;
- 传输长度;
- 启动命令。
随后 DMA 控制器负责传输,结束后再用中断通知 CPU。
各选项比较:
- 读取键盘按键:数据量极小、速度很慢,使用中断就足够;
- 从硬盘加载 4 KB 数据:属于块设备传输,适合 DMA;
- 计算圆周率:纯 CPU 计算,不存在设备与内存间的数据传输。
因此 B 最符合 DMA 的使用场景。
MMIO 的优点
按照 PPT 给出的答案:D. 以上都是
但这道题的选项设计不够严谨。
最准确的答案其实是:A. 无需专用 I/O 指令
MMIO 把设备寄存器映射进处理器的地址空间:
某些地址 → 普通内存 某些地址 → 设备控制/数据寄存器
CPU 因而可以使用普通的 load/store 或 mov 类指令访问设备,不需要额外设计一套专门的 I/O 指令。这确实简化了指令集和编程模型。
对其余选项要谨慎:
- B“更快,因为可以使用普通 mov”:使用普通指令不等于访问更快。实际速度主要由总线和设备决定。
- C“支持缓存”:设备寄存器通常必须被标记为不可缓存或采用特殊设备内存属性,否则 CPU 可能读到旧状态,或者写操作不能按预期到达设备。
PPT 自身也注明 MMIO 区域通常禁止缓存,但仍把 D 标为答案,逻辑上有些矛盾。考试若严格按课件,选 D;按计算机体系结构的严谨表述,选 A。
不需要寻道时间的存储介质
答案:B. SSD
寻道时间主要是机械运动造成的延迟。
- HDD:磁头必须移动到指定磁道,因此存在寻道时间;
- 磁带:必须卷动到目标位置,是顺序访问,定位时间通常更长;
- SSD:使用闪存芯片和电子电路,没有磁头、盘片等机械运动,因此没有机械寻道时间。
不过“没有寻道时间”不等于“零延迟”。SSD 仍然有:
- 闪存读取延迟;
- 控制器处理时间;
- 地址转换开销;
- 垃圾回收和擦除开销。
只是它不存在 HDD 意义上的机械寻道。
避免 CPU 拷贝网络数据的技术
答案:A. DMA
网卡使用 DMA 后,可以直接在网卡与内存之间传输数据:
接收
网络 → 网卡 → DMA → 内存
发送
内存 → DMA → 网卡 → 网络
CPU 不需要逐字节执行读写指令,只负责设置描述符、地址和长度,完成后由网卡发中断通知。
其他选项:
- 中断只负责通知 CPU,不负责搬运数据;
- 轮询是 CPU 主动检查设备状态,反而增加 CPU 开销;
- TOE主要卸载 TCP/IP 协议处理,不能单独保证消除全部数据拷贝。
需要更严谨地区分:
DMA 避免的是 CPU 亲自完成“设备与内存之间”的数据搬运,但不自动消除用户缓冲区、内核缓冲区之间的所有复制。
要进一步实现完整的零拷贝,通常还需要 sendfile、内存映射或页重映射等软件机制,与 DMA 配合使用。
评论区