Skip to content

2011年 408 操作系统 第 28 题

操作系统2011年选择题2分

题目

在缺页处理过程中,操作系统执行的操作可能是( )。

I、修改页表

II、磁盘 I/O

III、分配页框

错因

A

漏 Ⅲ 分配页框——但调入新页前必须有空闲页框,要么用现成的(直接分配)、要么置换出一个(间接分配)。无论哪种都涉及"分配页框"这件事,漏掉这一步缺页中断处理就不完整。

B

只承认 Ⅱ 磁盘 I/O,漏 Ⅰ Ⅲ。但仅做磁盘 I/O 不修改页表的话,下次访问还是缺页(页表项还显示"不在内存"),缺页处理就白做了。修改页表是必做的最后一步。

C

只承认 Ⅲ 分配页框,漏 Ⅰ Ⅱ。如果页面在外存,必须做磁盘 I/O 调入;调入后必须修改页表项指向新页框。光分配页框不调数据等于把空白页框给了用户,毫无意义。

总解析

缺页中断处理的完整流程

缺页中断触发(地址合法但页不在内存)

1. 检查并预留页框
   有空闲 → 分配空闲页框                         ← Ⅲ 分配页框
   无空闲 → 置换:选受害者页 → 写回脏页 → 释放该页框

2. 从外存读入所需页到分配的页框                  ← Ⅱ 磁盘 I/O

3. 修改页表项:标记"在内存"+ 写入页框号 + 重置位 ← Ⅰ 修改页表

4. 重新执行触发缺页的指令

逐条核对:

命题是否在缺页处理中执行?说明
Ⅰ 修改页表调入完成后必须把页表项的"在内存"位标 1、并填入新页框号;否则下次还是缺页
Ⅱ 磁盘 I/O页在外存时必须从磁盘读出来;如果置换的页是脏页还要写回
Ⅲ 分配页框调入新页前必须有页框承载,要么从空闲池要、要么置换

三件事缺一不可:① 没分配页框 → 没地方放新页;② 没做磁盘 I/O → 页框里没数据;③ 没修改页表 → 下次访问仍判定"不在内存"。

正确的是 Ⅰ Ⅱ Ⅲ。

最终答案是 D

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题