Appearance
题目
下列因素中,影响请求分页系统有效(平均)访存时间的是( )。
Ⅰ. 缺页率
Ⅱ. 磁盘读写时间
Ⅲ. 内存访问时间
Ⅳ. 执行缺页处理程序的 CPU 时间
错因
A
把请求分页的访存时间想成了"硬件层面的访问时间 + 磁盘读取时间",把缺页率(Ⅰ)和缺页处理 CPU 开销(Ⅳ)当成了无关的统计量。其实 EAT 是一个概率加权平均——缺页率 决定按多大权重把磁盘和处理开销算进来,没有 这条公式就拼不起来。
B
走了另一个极端:盯住"缺页"两字,把"内存访问时间(Ⅲ)"和"磁盘读写时间(Ⅱ)"都当成了不变的硬件参数、不算"影响"。但 EAT 的两端就是这两个时间——不缺页时算内存访问时间,缺页时算磁盘读写时间——参数一变 EAT 就跟着变,怎么不影响?
C
看到 Ⅱ 是磁盘读写时间,可能误以为"磁盘 I/O 由 DMA 异步完成、不占 CPU 等待时间"。但 EAT 衡量的是单次访存到拿到数据为止的总耗时,缺页时进程必须阻塞等磁盘读完才能拿到数据,磁盘读写时间是这次访存延迟里的最大头,绝不能踢出去。
总解析
请求分页的有效访存时间公式:
其中缺页时的总开销又能拆开:
把每个量对回选项:
| 因素 | 在公式里的位置 | 影响吗 |
|---|---|---|
| Ⅰ 缺页率 | 整体的概率权重 | ✓ |
| Ⅱ 磁盘读写时间 | 缺页分支的主要开销 | ✓ |
| Ⅲ 内存访问时间 | 不缺页分支 + 缺页后还要再访一次内存 | ✓ |
| Ⅳ 缺页处理 CPU 时间 | 缺页分支的固定开销(救火队员的工时) | ✓ |
四个量在公式里都有自己的位置,缺一不可——任何一项变化都会让 EAT 变。
最终答案是 D。