L15:期末复习问答

围绕系统调用、DMA、MMIO 与存储介质等考点整理的问答式期末复习笔记

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. 哪个操作最需要 DMAB. 从硬盘加载 4 KB 数据
4. MMIO 的优点按 PPT:D;严格来说:A 最准确
5. 哪种介质不需要寻道时间B. SSD
6. 哪种技术可以避免 CPU 拷贝网络数据A. DMA

主动触发系统调用的操作

答案:B. 打开文件(open)

open() 要访问由操作系统管理的文件系统、权限信息和存储设备。普通应用运行在用户态,不能自己操作这些资源,所以必须执行系统调用,陷入内核态,由操作系统完成。

其他选项通常不需要内核参与:

  • 1+1:CPU 直接执行算术指令;
  • 访问数组:普通内存读取;
  • 执行循环:比较、跳转等普通指令。

核心判断标准是:

是否需要操作系统帮助访问受保护的系统资源。

因此,打开文件需要系统调用;纯计算和普通访存一般不需要。


页面不在物理内存时的响应

答案:B. 切换到内核态并调页

当 CPU 访问某虚拟页面,页表显示该页面目前不在物理内存中时,会触发缺页异常:

  1. CPU 暂停当前指令;
  2. 切换到内核态;
  3. 操作系统检查地址是否合法;
  4. 分配物理页框;
  5. 从磁盘或可执行文件中读入页面;
  6. 更新页表和 TLB;
  7. 重新执行原指令。

缺页异常本身不一定是错误,它是请求分页的正常组成部分。

不过有个前提:地址必须合法。若程序访问的是根本没有映射的非法地址,操作系统才可能终止进程,例如产生段错误。


最需要 DMA 支持的操作

答案:B. 从硬盘加载 4 KB 数据

DMA 适合在设备和内存之间搬运成块数据:

text
磁盘 → DMA → 内存

CPU 只需要设置:

  • 数据来源和目标地址;
  • 传输长度;
  • 启动命令。

随后 DMA 控制器负责传输,结束后再用中断通知 CPU。

各选项比较:

  • 读取键盘按键:数据量极小、速度很慢,使用中断就足够;
  • 从硬盘加载 4 KB 数据:属于块设备传输,适合 DMA;
  • 计算圆周率:纯 CPU 计算,不存在设备与内存间的数据传输。

因此 B 最符合 DMA 的使用场景。


MMIO 的优点

按照 PPT 给出的答案:D. 以上都是

但这道题的选项设计不够严谨。

最准确的答案其实是:A. 无需专用 I/O 指令

MMIO 把设备寄存器映射进处理器的地址空间:

text
某些地址 → 普通内存
某些地址 → 设备控制/数据寄存器

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 后,可以直接在网卡与内存之间传输数据:

接收

text
网络 → 网卡 → DMA → 内存

发送

text
内存 → DMA → 网卡 → 网络

CPU 不需要逐字节执行读写指令,只负责设置描述符、地址和长度,完成后由网卡发中断通知。

其他选项:

  • 中断只负责通知 CPU,不负责搬运数据;
  • 轮询是 CPU 主动检查设备状态,反而增加 CPU 开销;
  • TOE主要卸载 TCP/IP 协议处理,不能单独保证消除全部数据拷贝。

需要更严谨地区分:

DMA 避免的是 CPU 亲自完成“设备与内存之间”的数据搬运,但不自动消除用户缓冲区、内核缓冲区之间的所有复制。

要进一步实现完整的零拷贝,通常还需要 sendfile、内存映射或页重映射等软件机制,与 DMA 配合使用。

L13-14:复杂流水线(衔接 L7)
这是系列的最后一篇

评论区