二、综合应用题
2026 旧版 · 非 2027 主源 · 原书检索 · 文字用于定位,公式与图表请回原页核验 · 本次导入快照
## 二、综合应用题
01. 假定某操作系统存储器采用页式存储管理,一个进程在相联存储器中的页表项见表 A,不在相联存储器的页表项见表 B。
表 A 相联存储器中的页表
[tbl-106.md](tbl-106.md)
表 B 内存中的页表
[tbl-107.md](tbl-107.md)
注:只列出不在相联存储器中的页表项。
假定该进程长度为 320B,每页 32B。现有逻辑地址(八进制)为 101,204,576,若上述逻辑地址能转换成物理地址,说明转换的过程,并指出具体的物理地址;若不能转换,说明其原因。
02. 某分页式虚拟存储系统,用于页面交换的磁盘的平均访问及传输时间是 $20\mathrm{ms}$。页表保存在主存中,访问时间为 $1\mu \mathrm{s}$,即每引用一次指令或数据,需要访问内存两次。为改善性能,可以增设一个关联寄存器,若页表项在关联寄存器中,则只需访问一次内存。假设 $80\%$ 的访问的页表项在关联寄存器中,剩下的 $20\%$ 中,$10\%$ 的访问(总数的 $2\%$)会产生块页。请计算有效访问时间。
03. 在页式虚存管理系统中,假定驻留集为 $m$ 个页帧(初始所有页帧均为空),在长为 $p$ 的引用串中具有 $n$ 个不同页号 ($n > m$),对于 FIFO、LRU 两种页面置换算法,试给出页故障数的上限和下限,说明理由并举例说明。
04. 在一个请求分页存储管理系统中,一个作业的页面走向为 4,3,2,1,4,3,5,4,3,2,1,5,当分配给作业的物理块数分别为 3 和 4 时,试计算采用下述页面淘汰算法时的块页率(假设开始执行时主存中没有页面),并比较结果。
1)最佳置换算法。
2)先进先出置换算法。
3)最近最久未使用算法。
05. 一个页式虚拟存储系统,其并发进程数固定为 4 个。最近测试了它的 CPU 利用率和用于页面交换的磁盘的利用率,得到的结果就是下列 3 组数据中的一组。针对每组数据,说明系统发生了什么事情。增加并发进程数能提升 CPU 的利用率吗?页式虚拟存储系统有用吗?
1)CPU 利用率为 $13\%$;磁盘利用率为 $97\%$。
2)CPU 利用率为 $87\%$;磁盘利用率为 $3\%$。
3)CPU 利用率为 $13\%$;磁盘利用率为 $3\%$。
<!-- page: 245 -->
06. 现有一请求页式系统,页表保存在寄存器中。若有一个可用的空页或被置换的页未被修改,则它处理一个缺页中断需要 $8\mu \mathrm{s}$;若被置换的页已被修改,则处理一缺页中断因增加写回外存时间而需要 $20\mu \mathrm{s}$,内存的存取时间为 $1\mu \mathrm{s}$。假定 $70\%$ 被置换的页被修改过,为保证有效存取时间不超过 $2\mu \mathrm{s}$,可接受的最大缺页中断率是多少?
07. 已知系统为 32 位实地址,采用 48 位虚拟地址,页面大小为 4KB,页表项大小为 8B,每段最大为 4GB。
1)假设系统使用纯页式存储,则要采用多少级页表?页内偏移多少位?
2)假设系统采用一级页表,TLB命中率为 $98\%$,TLB访问时间为10ns,内存访问时间为100ns,并假设当TLB访问失败时才开始访问内存,问平均页面访问时间是多少?
3)若是二级页表,页面平均访问时间是多少?
4)上题中,若要满足访问时间小于120ns,则命中率至少需要为多少?
5)若系统采用段页式存储,则每个用户最多可以有多少个段?段内采用几级页表?
08. 在一个请求分页系统中,采用 LRU 页面置换算法时,假如一个作业的页面走向为 1,3,2,1,1,3,5,1,3,2,1,5,当分配给该作业的物理块数分别为 3 和 4 时,试计算在访问过程中发生的缺页次数和缺页率。
09. 一个进程分配给 4 个页帧,见下表(所有数字均为十进制,均从 0 开始计数)。时间均为从进程开始到该事件之前的时钟值,而不是从事件发生到当前的时钟值。请回答:
[tbl-108.md](tbl-108.md)
1)当进程访问虚页4时,产生缺页中断,请分别用FIFO(先进先出)、LRU(最近最少使用)、改进型CLOCK算法,决定缺页中断服务程序选择换出的页面。
2)在缺页之前给定上述的存储器状态,考虑虚页访问串 $4,0,0,0,2,4,2,1,0,3,2$,若使用 LRU 页面置换算法,分给 4 个页帧,则会发生多少缺页?
10. 在页式虚拟管理的页面替换算法中,对于任何给定的驻留集大小,在什么样的访问串情况下,FIFO 与 LRU 替换算法一样(被替换的页面和缺页情况完全一样)?
11. 某系统有 4 个页框,某个进程的页面使用情况见下表,问采用 FIFO、LRU、简单 CLOCK 和改进型 CLOCK 置换算法,将替换哪一页?
[tbl-109.md](tbl-109.md)
其中,$R$ 是读标志位,$M$ 是修改标志位。
12. 有一个矩阵 int A[100, 100] 以行优先方式进行存储。计算机采用虚拟存储系统,物理内存共有三页,其中一页用来存放程序,其余两页用于存放数据。假设程序已在内存中占一页,其余两页空闲。若每页可存放 200 个整数,程序 1、程序 2 执行的过程中各会发生多少次缺页?每页只能存放 100 个整数时,会发生多少次缺页?以上结果说明了什么问题?
<!-- page: 246 -->
程序1:
for (i=0; i&lt;100; i++)
for (j=0; j&lt;100; j++)
A[i, j]=0;
程序2:
for (j=0; j&lt;100; j++)
for (i=0; i&lt;100; i++)
A[i, j]=0;
13. Gribble公司正在开发一款64位的计算机体系结构,也就是说,在访问内存时,最多可以使用64位的地址。假设采用的是虚拟页式存储管理,现在要为这款机器设计相应的地址映射机制。
1)假设页面的大小是4KB,每个页表项的长度是4B,而且必须采用三级页表结构,每级页表结构中的每个页表都必须正好存放在一个物理页面中,请问在这种情形下,如何实现地址的映射?具体来说,对于给定的一个虚拟地址,应该将它划分为几部分,每部分的长度分别是多少,功能是什么?另外,采用这种地址映射机制后,可以访问的虚拟地址空间有多大?(提示:64位地址并不一定全部用上。)
2)假设每个页表项的长度变成了8B,而且必须采用四级页表结构,每级页表结构中的页表都必须正好存放在一个物理页面中,请问在这种情形下,系统能够支持的最大的页面大小是多少?此时,虚拟地址应该如何划分?
14. 某设备 TLB 的分页管理系统按字节编址,虚拟地址为 32 位,物理地址为 24 位,页面大小为 4KB,页表项大小为 4B,采用二级页表,TLB 命中率为 98%,TLB 的访问时间为 10ns,内存的访问时间为 100ns,处理一次缺页中断的时间为 10ms。请回答:
1)物理地址中的页框号占多少位?虚拟地址中的一级页号和二级页号各占多少位?系统的页表基址寄存器中存放的内容是什么?一级页表页表项中的内容是什么?
2)若访问一级页表和二级页表的过程中均不发生缺页,则系统进行地址转换的平均时间是多少?
3)若访问一级页表不发生缺页,访问二级页表的缺页率为 10%,则系统进行地址转换的平均时间是多少?
14. 【2009 统考真题】请求分页管理系统中,假设某进程的页表内容如下表所示。
[tbl-110.md](tbl-110.md)
页面大小为4KB,一次内存的访问时间是100ns,一次快表(TLB)的访问时间是10ns,处理一次缺页的平均时间为 10⁸ns(已含更新TLB和页表的时间),进程的驻留集大小固定为2,采用最近最少使用(LRU)置换算法和局部淘汰策略。假设:①TLB初始为空;②地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表后的TLB更新时间);③有效位为0表示页面不在内存,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。设有虚地址访问序列2362H, 1565H, 25A5H,请问:
1)依次访问上述三个虚拟地址,各需多少时间?给出计算过程。
2)基于上述访问序列,虚地址1565H的物理地址是多少?请说明理由。
15. 【2010 统考真题】设某计算机的逻辑地址空间和物理地址空间均为 64KB,按字节编址。若某个进程最多需要 6 页(Page)数据存储空间,页的大小为 1KB,操作系统采用固定分配局部置换策略为此进程分配 4 个页框(Page Frame),见下表。在装入时刻 260 前,该进程的访问情况也见下表(访问位即使用位)。
<!-- page: 247 -->
[tbl-111.md](tbl-111.md)
当该进程执行到时刻260时,要访问逻辑地址为17CAH的数据。回答下列问题:
1)该逻辑地址对应的页号是多少?
2)若采用先进先出(FIFO)置换算法,则该逻辑地址对应的物理地址是多少?要求给出计算过程。若采用时钟(Clock)置换算法,则该逻辑地址对应的物理地址是多少?要求给出计算过程。设搜索下一页的指针沿顺时针方向移动,且当前指向2号页框,如下图所示。
16. 【2012 统考真题】某请求分页系统的页面置换策略如下:从0时刻开始扫描,每隔5个时间单位扫描一轮驻留集(扫描时间忽略不计)且本轮未被访问过的页框将被系统回收,并放入空闲页框链尾,其中内容在下一次分配之前不清空。当发生缺页时,若该页留被使用过且还在空闲页链表中,则重新放回进程的驻留集中;否则,从空闲页框链表头部取出一个页框。
忽略其他进程的影响和系统开销。初始时进程驻留集为空。目前系统空闲页的页框号依次为32,15,21,41。进程P依次访问的<虚拟页号,访问时刻>为<1,1>,<3,2>,<0,4>,<0,6>,<1,11>,<0,13>,<2,14>。请回答下列问题:
1)当虚拟页为 $<0.4>$ 时,对应的页框号是什么?
2)当虚拟页为 $<1, 11>$ 时,对应的页框号是什么?说明理由。
3)当虚拟页为 $<2, 14>$ 时,对应的页框号是什么?说明理由。
4)这种方法是否适合于时间局部性好的程序?说明理由。
17. 【2015 统考真题】某计算机系统按字节编址,采用二级页表的分页存储管理方式,虚拟地址格式如下所示:
[tbl-112.md](tbl-112.md)
请回答下列问题:
1)页和页框的大小各为多少字节?进程的虚拟地址空间大小为多少页?
2)若页目录项和页表项均占4B,则进程的页目录和页表共占多少页?写出计算过程。
3)若某指令周期内访问的虚拟地址为01000000H和01112048H,则进行地址转换时共访问多少个二级页表?说明理由。
18. 【2017 统考真题】假定2017年题 $44^{\circ}$ 给出的计算机M采用二级分页虚拟存储管理方式,虚拟地址格式如下:
① 本题信息关联了 2017 年计算机组成原理的两道统考真题(2.3.5 节、4.3.5 节),需要结合复习。
<!-- page: 248 -->
[tbl-113.md](tbl-113.md)
请针对2017年题43的函数f1和题44中的机器指令代码,回答下列问题。
1)函数f1的机器指令代码占多少页?
2)取第一条指令(push ebp)时,若在进行地址变换的过程中需要访问内存中的页目录和页表,则会分别访问它们各自的第几个表项(编号从0开始)?
3)M的I/O采用中断控制方式,若进程P在调用f1前通过scanf()获取n的值,则在执行scanf()的过程中,进程P的状态会如何变化?CPU是否会进入内核态?
19. 【2018统考真题】某计算机采用页式虚拟存储管理方式,按字节编址,CPU进行存储访问的过程如下图所示,回答下列问题。
1)某虚拟地址对应的页目录号为6,在相应的页表中对应的页号为6,页内偏移量为8,该虚拟地址的十六进制表示是什么?
2)寄存器PDBR用于保存当前进程的页目录始址,该地址是物理地址还是虚拟地址?进程切换时,PDBR的内容是否会变化?说明理由。同一进程的线程切换时,PDBR的内容是否会变化?说明理由。
3)为了支持改进型 CLOCK 置换算法,需要在页表项中设置哪些字段?
20. 【2020统考真题】某32位系统采用基于二级页表的请求分页存储管理方式,按字节编址,页目录项和页表项长度均为4字节,虚拟地址结构如下所示。
[tbl-114.md](tbl-114.md)
某C程序中数组a[1024][1024]的起始虚拟地址为1080 0000H,数组元素占4字节,该程序运行时,其进程的页目录起始物理地址为0020 1000H,请回答下列问题。
1)数组元素 a[1][2]的虚拟地址是什么?对应的页目录号和页号分别是什么?对应的页目录项的物理地址是什么?若该目录项中存放的页框号为 00301H,则 a[1][2]所在页对应的页表项的物理地址是什么?
2)数组a在虚拟地址空间中所占的区域是否必须连续?在物理地址空间中所占的区域是否必须连续?
<!-- page: 249 -->
3)已知数组 a 接行优先方式存放,若对数组 a 分别按行遍历和按列遍历,则哪种遍历方式的局部性更好?
21. 【2024 统考真题】某计算机按字节编址,采用页式虚拟存储管理方式,虚拟地址和物理地址的长度均为 32 位,页表项的大小为 4 字节,页大小为 4MB,虚拟地址结构如下。
[tbl-115.md](tbl-115.md)
进程 P 的页表起始虚拟地址为 B8C0 0000H,被装载到从物理地址 6540 0000H 开始的连续主存空间中。请回答下列问题,要求答案用十六进制表示。
1)CPU 在执行进程 P 的过程中,访问虚拟地址 1234 5678H 时发生了缺页异常,经过缺页异常处理和 MMU 地址转换后得到的物理地址是 BAB4 5678H。在此次缺页异常处理过程中,需要为所缺页分配页框并更新相应的页表项,该页表项的虚拟地址和物理地址分别是什么?该页表项中的页框号更新后的值是什么?
2)进程 P 的页表所在页的页号是什么?该页对应的页表项的虚拟地址是什么?该页表项中的页框号是什么?
## 3.2.12 答案与解析
### 一、单项选择题
01. B
对于顺序执行程序,缺页中断的次数等于其访问的页帧数。因为页面尺寸增大,存放程序需要的页帧数就减少,所以缺页中断的次数也会减少。
02. B
缺页中断是访存指令引起的,说明所要访问的页面不在内存中,进行缺页中断处理并调入所要访问的页后,访存指令显然应该重新执行。
03. B
虚拟存储技术并未实际扩充内存、外存,而是采用相关技术相对地扩充主存。
04. B
在非虚拟存储器中,作业必须全部装入内存且在运行过程中也一直驻留内存;在虚拟存储器中,作业不必全部装入内存且在运行过程中也不用一直驻留内存,这是两者的主要区别之一。
05. A
多次性、对换性和离散性是虚拟内存的特征,一次性则是传统存储系统的特征。
06. C
虚拟存储技术基于程序的局部性原理。局部性越好,虚拟存储系统越能更好地发挥作用。
07. B
请求分页存储管理方式和基本分页存储管理方式的区别是,前者采用虚拟技术,因此开始运行时,不必将作业全部一次性装入内存,而后者不是。
08. C
通常所说的“存储保护”的基本含义是防止程序间相互越界访问。存储保护可以保证多个程序在共享主存时不相互覆盖或非法访问,从而保证系统的正常运行和安全性。
09. C
在页式虚拟存储管理中,程序的逻辑地址和物理地址是不一致的,而且物理地址是在程序运行时才确定的,因此,程序的链接也必须在运行时进行,不能在装入时或编译时进行。运行时动态链接是一种在程序执行过程中,根据需要动态地将目标模块装入内存并进行链接的技术。
10. A
<!-- page: 250 -->
程序访问内存时使用的是虚拟地址,操作系统负责将其转换为物理地址。
11. D
数组大小为 $128 \times 128$,int 型数据占 4B,一个页框可以存放一行数据。当访问 a[0][0]时,发生第一次缺页中断,此时调入第一行数据;之后访问 a[1][0],又发生缺页中断。每访问一个元素,都发生一次缺页中断,共有 $128 \times 128 = 16384$ 个元素,因此共发生 16384 次缺页中断。
12. C
数组大小为 $64 \times 64$,一个页框可以存放两行数据。当访问 X[0][0]时,发生第一次缺页中断,此时调入前两行数据,之后访问 X[1][0],不发生缺页中断,因为已被调入内存;当访问 X[2][0]时,又发生缺页中断;同理,访问 X[3][0]时不发生缺页中断。不难发现,每访问两个元素就发生一次缺页中断,共有 $64 \times 64 = 4096$ 个元素,因此共发生 2048 次缺页中断。
13. B
若 TLB 命中,则访问 TLB 就能得到物理地址;若 TLB 未命中,则需要 2 次访存,依次访问一级页表和二级页表,才能得到物理地址,最后用物理地址在内存中存取数据。平均访存次数 = TLB 命中率 $\times 1 + (1 - \mathrm{TLB} \text{ 命中率}) \times 3 = 0.75 \times 1 + (1 - 0.75) \times 3 = 1.5$。
14. D
CLOCK 算法选择将最近未使用的页面置换出去,因此也称 NRU 算法。
15. C
无论采用什么页面置换算法,每种页面第一次访问时不可能在内存中,必然发生缺页,所以缺页次数大于或等于 $n$。
16. D
请求分页存储管理中,若采用 FIFO 页面淘汰算法,可能产生当驻留集增大时页故障数不减反增的 Belady 异常。然而,还有另外一种情况。例如,页面序列为 1、2、3、1、2、3,当页帧数为 2 时产生 6 次缺页中断,当页帧数为 3 时产生 3 次缺页中断。所以在请求分页存储管理中,若采用 FIFO 页面淘汰算法,则当可供分配的页帧数增加时,缺页中断的次数可能增加,也可能减少。
17. D
进程的虚拟地址空间寻址由系统的地址结构决定,这就决定了虚拟存储器的最大容量,而与主存和外存的容量没有必然联系,因此虚拟地址空间为 $2^{32}\mathrm{B}$。比如,在 64 位系统环境下,虚拟存储技术使得进程可用地址空间达 $2^{64}\mathrm{B}$,但外存显然是达不到这个大小的。
18. C
页面大小为 512B,页内偏移量占 9 位,虚拟地址占 32 位,页号占 23 位,因此页表共有 $2^{23}$ 个页表项。页表项数量与物理地址的位数没有必然关系。
19. B
页面大小为 1KB,页内偏移量占 10 位,页号占 6 位,将 0A6FH 展开为二进制,得到逻辑页号为 2(000010),存放在 11 号(001011)页框中,拼接上页内偏移量得到物理地址为 2E6FH。
20. D
页面越小,页表项数量越多,页表所占的空间就更大;页面越小,缺页率越高;页面越小,换入换出的次数就越多,I/O 操作更频繁。页面越小,页内浪费的空间越少,内存利用率越高。
21. C
利用 LRU 置换算法时的置换如下图所示。
<!-- page: 251 -->
[tbl-116.md](tbl-116.md)
分别在访问第1个、第2个、第4个、第6个、第11个、第17个页面时产生中断,共产生6次中断。
22. D
LRU 算法需要对所有页最近一次被访问的时间进行记录,查找时间最久的进行替换,这涉及排序,对置换算法而言,开销太大。为此需要在页表项中增加 LRU 位,选项 A 可视为“耗费高”这一结果,选项 D 才是造成选项 A 的原因。
23. A
页表项中的合法位信息显示本页面是否在内存中,即决定了是否会发生页面故障。
24. D
抖动是进程的页面置换过程中,频繁的页面调度(缺页中断)行为,所有的页面调度策略都不可能完全避免抖动。
25. C
基于局部性原理:当程序装入时,不必将其全部读入内存,而只需将当前需要执行的部分页或段读入内存,就可让程序开始执行。在程序执行过程中,若需执行的指令或访问的数据尚未在内存(称为缺页或缺段)中,则由处理器通知操作系统将相应的页或段调入内存,然后继续执行程序。由于程序具有局部性,虚拟存储管理在扩充逻辑地址空间的同时,对程序执行时内存调换的代价很小。
26. B
请求分页存储管理就是为了解决内存容量不足而使用的方法,它基于局部性原理实现了以时间换取空间的目的。它的主要特点自然是间接扩充了内存。
27. C
当需要置换页面时,置换算法根据修改位和访问位选择调出内存的页面。
28. B
驻留集是指分配给进程的物理页面的集合。工作集是指在某段时间内,进程实际要访问的页面的集合。工作集不一定是驻留集的子集,因为有些工作集中的页面可能还未被调入内存,或已被换出内存。只有当工作集完全包含在驻留集中时,才能保证进程不发生缺页中断。
29. B
平均访存时间 = 命中率 × 快表访问时间 + 不命中率 × (快表访问时间 + 页表访问时间) + 内存访问时间。当 TLB 命中率为 85% 时,平均访存时间 = 0.85 × 0.2 + 0.15 × (1 + 0.2) + 1 = 1.35 μs。当 TLB 命中率为 50% 时,平均访存时间 = 0.5 × 0.2 + 0.5 × (1 + 0.2) + 1 = 1.7 μs。
30. D
页面置换算法影响进程运行过程中的缺页率,从而影响页面换进换出的开销。若建立一个已修改页面的链表,则对每个要被换出的页面(已修改),系统可暂不把它们写回磁盘,而等被换出页面数量达到一定值时,才集中写回磁盘,从而减少页面换出的开销。当已修改页面链表中暂未写回磁盘的页面再使用时,就不需从磁盘中调入,而直接从该链表上获取,从而减少页面换进的开销。CPU 与内存交换的速度,不是页面换进换出效率的影响因素。
<!-- page: 252 -->
31. B
这种置换方法是全局置换,它不受驻留集大小的限制,可以从任何页框中选择一个页面置换。
32. B
FIFO 是队列类算法,有 Belady 现象;选项 C、D 均为堆栈类算法,理论上可以证明不会出现 Belady 现象。
33. B
页式虚拟存储管理的主要特点是,不要求将作业同时全部装入主存的连续区域,一般只装入 10%~30%。不要求将作业装入主存连续区域是所有离散式存储管理(包括页式存储管理)的特点;页式虚拟存储管理需要进行缺页中断处理和页面置换。
34. C
虚拟存储技术是基于页或段从内存的调入/调出实现的,需要有请求机制的支持。
35. C
内存映射文件将一个文件映射到进程的虚拟地址空间的某个区域,让进程可以按读/写内存的方式来读/写文件,选项 C 正确。内存映射文件不是一次性加载整个文件,而是按需加载文件的部分,这样既节省空间,又方便处理大文件。虽然进程的虚拟地址空间是独立的,但操作系统可以通过页表将对应的虚拟地址空间映射到相同的物理内存,很方便实现多个进程共享同一文件。
36. C
根据缺页中断的处理流程,产生缺页中断后,首先去内存寻找空闲物理块,若内存没有空闲物理块,则使用页面置换算法决定淘汰页面,然后调出该淘汰页面,最后再调入该进程欲访问的页面。整个流程可归纳为缺页中断→决定淘汰页→页面调出→页面调入。
37. C
页面大小为 4KB,因此页内偏移为 12 位。系统采用 48 位虚拟地址,因此虚页号 48 - 12 = 36 位。采用多级页表时,最高级页表项不能超出一页大小;每页能容纳的页表项数为 4KB/8B = 512 = 2⁹,36/9 = 4,因此应采用 4 级页表,最高级页表项正好占据一页空间,所以本题选择选项 C。
38. B
FIFO 算法可能产生 Belady 现象,例如页面走向为 1,2,3,4,1,2,5,1,2,3,4,5 时,当分配 3 帧时产生 9 次缺页中断,分配 4 帧时产生 10 次缺页中断,选项 I 正确。最近最少使用法不会产生 Belady 现象,选项 II 错误。若页面在内存中,则不会产生缺页中断,即不会出现页面的调入/调出,而不是虚拟存储器(包括作为虚拟内存那部分硬盘),所以选项 III 错误、选项 IV 正确。
39. D
用于交换空间的磁盘利用率已达 97.7%,其他设备的利用率为 5%,CPU 的利用率为 20%,说明在任务作业不多的情况下交换操作非常频繁,因此判断物理内存严重短缺。
40. B
选项 I 正确:增大内存的容量。增大内存可使每个程序得到更多的页框,能减少缺页率,进而减少换入/换出过程,可提高 CPU 的利用率。选项 II 错误:增大磁盘交换区的容量。因为系统实际已处于频繁的换入/换出过程中,不是因为磁盘交换区容量不够,因此增大磁盘交换区的容量无用。选项 III 正确:减少多道程序的度数。可以提高 CPU 的利用率,因为从给定的条件知道磁盘交换区的利用率为 99.7%,说明系统现在已经处于频繁的换入/换出过程中,可减少主存中的程序。选项 IV 错误:增加多道程序的度数。系统处于频繁的换入/换出过程中,再增加主存中的用户进程数,只能导致系统的换入/换出更频繁,使性能更差。选项 V 错误:使用更快速的磁盘交换区。因为系统现在处于频繁的换入/换出过程中,即使采用更快的磁盘交换区,其换
<!-- page: 253 -->
入/换出频率也不会改变,因此没用。选项 VI 错误:使用更快速的 CPU。系统处于频繁的换入/换出过程中,CPU 处于空闲状态,利用率不高,提高 CPU 的速度无济于事。综上分析:选项 I、III 可以改进 CPU 的利用率。
41. A
增大 TLB 容量可以提高 TLB 命中率,因为可以缓存更多的地址映射。采用多级页表对 TLB 命中率没有影响。提高页面大小可用较少的页面覆盖更大的地址空间,从而减少页表项,因此可以提高 TLB 命中率。反之,降低页面大小则会降低 TLB 命中率。
42. D
缺页中断产生后,需要在内存中找到空闲页框并分配给需要访问的页(可能涉及页面置换),之后缺页中断处理程序调用设备驱动程序做磁盘 I/O,将位于外存上的页面调入内存,调入后需要修改页表,将页表中代表该页是否在内存的标志位(或有效位)置为 1,并将物理页框号填入相应位置,若必要还需修改其他相关表项等。
43. A
在具有对换功能的操作系统中,通常把外存分为文件区和对换区。前者用于存放文件,后者用于存放从内存换出的进程。抖动现象是指刚刚被换出的页很快又要被访问,为此又要换出其他页,而该页又很快被访问,如此频繁地置换页面,以致大部分时间都花在页面置换上,导致系统性能下降。撤销部分进程可以减少所要用到的页面数,防止抖动。对换区大小和进程优先级都与抖动无关。
44. B
当采用连续分配方式时,会使相当一部分内存空间都处于暂时或“永久”的空闲状态,造成内存资源的严重浪费,也无法从逻辑上扩大内存容量,因此虚拟内存的实现只能建立在离散分配的内存管理的基础上。有以下三种实现方式:请求分页;请求分段;请求段页式。虚存的实际容量受外存和内存容量之和限制,虚存的最大容量是由计算机的地址位数决定的。
45. B
用户进程访问内存时缺页,会发生缺页中断。发生缺页中断时,系统执行的操作可能是置换页面或分配内存。越界检查发生在查询页表之前,而此处产生了缺页中断,说明已经正常进行到查询页表的阶段,系统此时没有产生越界错,因此不会进行越界出错处理。
46. C
虚实地址转换是指逻辑地址和物理地址的转换。增大快表容量能把更多的表项装入快表,会加快虚实地址转换的速度;让页表常驻内存可以省去一些不在内存中的页表从磁盘上调入的过程,也能加快虚实地址转换;增大交换区对虚实地址转换速度无影响,因此选项 I、II 正确。
47. A
只有 FIFO 算法会导致 Belady 异常。
48. C
对各进程进行固定分配时页面数不变,不可能出现全局置换。而选项 A、B、D 是现代操作系统中常见的 3 种策略。
49. A
可以采用书中常规的解法思路,也可以采用便捷法。对页号序列从后往前计数,直到数到 4(页框数)个不同的数字为止,这个停止的数字就是要淘汰的页号(最近最久未使用的页),题中为页号 2。
50. A
改进型 CLOCK 置换算法执行的步骤如下:
<!-- page: 254 -->
1)从指针的当前位置开始,扫描帧缓冲区。在这次扫描过程中,对使用位不做任何修改。选择遇到的第一个帧(A = 0, M = 0)用于替换。
2)若第1)步失败,则重新扫描,查找(A = 0, M = 1)的帧。选择遇到的第一个这样的帧用于替换。在这个扫描过程中,对每个跳过的帧,将其使用位设置成0。
3)若第2)步失败,则指针将回到它的最初位置,并且集合中所有帧的使用位均为0。重复第1)步,并在有必要时重复第2)步,这样将可以找到供替换的帧。
因此,该算法淘汰页的次序为(0, 0), (0, 1), (1, 0), (1, 1)。