Skip to content

2013年 408 操作系统 第 30 题

操作系统2013年选择题2分

题目

若用户进程访问内存时产生缺页,则下列选项中,操作系统可能执行的操作是( )。

I. 处理越界错

II. 置换页

III. 分配内存

错因

A

承认 Ⅱ 置换,又把 Ⅰ"处理越界错"算进缺页处理——但缺页和越界是两种不同的异常:缺页是"地址合法、但页不在内存",越界是"地址超出了进程地址空间"。OS 在硬件触发对应异常时进入对应处理程序,缺页处理程序不会去做越界处理的事。

C

承认 Ⅰ 越界 + Ⅲ 分配,但漏 Ⅱ 置换。如果有空闲页框,缺页时直接分配即可;但没有空闲页框时,必须从已驻留页中选一页换出——这是缺页中断处理程序的核心动作之一,不能漏。

D

把 Ⅰ Ⅱ Ⅲ 全选,掉进越界陷阱。缺页中断处理程序的工作不包括处理越界错——硬件触发的中断号不同,进的处理程序也不同。

总解析

缺页中断处理程序做的事,按"页框够不够"分两条路径:

1. 检查访问地址是否合法
   不合法 → 越界异常(这是另一个异常处理程序处理,不是缺页处理)
   合法 → 进入缺页处理流程:
2. 是否有空闲页框?
   有 → 分配空闲页框 → 把外存上的页调入
   没有 → 选一页换出(页面置换)→ 用空出的页框装新页
3. 更新页表项 → 重新执行触发缺页的指令

关键区分:缺页处理程序处理的是"地址合法、页不在内存"的情况;越界检查在缺页发生之前就由硬件完成(地址变换时就会查段长 / 页表段限),越界是另一个异常路径。

逐条核对:

命题是否在缺页处理流程内说明
Ⅰ 处理越界错越界是另一个异常,由独立的"地址越界异常处理程序"处理;缺页处理程序假定"地址是合法的、只是不在内存"
Ⅱ 置换页没空闲页框时必做:选一页换出腾位
Ⅲ 分配内存有空闲页框时直接分配;置换后也要分配那块腾出来的页框

类比:缺页中断处理程序就像"页不在的人帮忙找位置"——它假设你来对了地方(地址合法),帮你协调位置(分配 / 置换);但你来错门牌号(越界)是另一个柜台的事。

正确的是 Ⅱ Ⅲ。

最终答案是 B

最后更新:

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