第五章 虚拟存储器
一、章节练习
1.系统抖动是指( )。
A. 使用机器时,千万屏幕闪烁的现象
B. 刚被调出的页面又立刻被调入所形成的频繁调入调出现象
C. 系统盘不净,千万系统不稳定的现象
D. 由于内存分配不当,偶然造成内存不够的现象
解析:
产生该现象的主要原因是置换算法选择不当。 1.如果分配给进程的存储块数量小于进程所需要的最小值,进程的运行将很频繁地产生缺页中断,这种频率非常高的页面置换现象称为抖动。解决方案优化置换算法。 2.在请求分页存储管理中,可能出现这种情况,即对刚被替换出去的页,立即又要被访问。需要将它调入,因无空闲内存又要替换另一页,而后者又是即将被访问的页,于是造成了系统需花费大量的时间忙于进行这种频繁的页面交换,致使系统的实际效率很低,严重导致系统瘫痪,这种现象称为抖动现象。解决方案运用局部性原理优化置换算法。
2.总体上说,请求分页是个很好的虚拟内存管理策略,但是,有些程序设计技术并不适合于这种环境。例如:( )。
A 堆栈 B 线性搜索 C 矢量运算 D 二分法搜素
3.在请求分页内存管理的页表表项中,其中修改位供( )时参考。
A 分配页面 B 置换算法 C 程序访问 D 换出页面
4.在有联想存储器的存储管理系统中,假设工作集的大小为400KB(4KB/页),要得到一个较好的命中率,最小需要多少表项的联想存储器?( )。
A 50 B 100 C 200 D 400
5.请求分页存储管理中,若把页面尺寸增加一倍,在程序顺序执行时,则一般缺页中断次数会( )。
A.增加 B.减少 C.不变 D.可能增加也可能减少
6.测得某个采用请求页式存储管理的计算机系统中,某时刻部分状态数据为:cpu利用率15%,用于对换空间的硬盘利用率95%,其它i/o设备的利用率6%,由此断定系统出现异常。此种情况下( )能提高CPU利用率。
A 安装一个更快的硬盘 B 通过扩大硬盘容量增加对换空间
C 增加运行进程数 D 加内存条来增加物理空间容量
解析:(1)由题目可以得出,大部分的运行时间都耗费在交换操作上,也就是说物理内存太小导致数据经常需要换入换出,因此需要提高内存大小,此外CPU和IO的的占用率都很低表示CPU一次读取的太多的程序放入内存中,因此需要降低多道程序的度数(个数)。
(2)CPU利用率5%,用于交换空间的磁盘利用率95%,其他I/O设备利用率5%。
CPU利用率:运行的程序占用的CPU资源,表示机器在某个时间点的运行程序的情况。使用率越高,说明机器在这个时间上运行了很多程序,反之较少。
CPU是负责运算和处理的,内存是交换数据的。
1.可以看出CPU利用率低;3.I/O设备利用率低(减少多道程序的度数)
CPU一次读取的太多的程序放入内存中,因此需要降低多道程序的度数
2.交换空间的磁盘利用率高(增大内存的容量)
交换空间利用率高,因此需要扩大数据交换空间(增大内存的容量)
7.使用请求分页存储管理的系统中,进程在执行指令中发生了缺页中断,经操作系统缺页中断处理后,应让其执行( )指令。
A 被中断处的前一条 B 被中断处 C 被中断处的后一条 D 启动时的第一条
8.下述( )页面置换算法会产生Belady现象。
A 先进先出(FIFO) B 最近最少使用(LRU)
C 最不经常使用(LFU) D 最佳(OPT)
9.在请求分页系统中,LRU算法是指( )。
A. 最早进入内存的页先淘汰
B. 近期最长时间以来没被访问的页先淘汰
C. 近期被访问次数最少的页先淘汰
D. 以后再也不用的页先淘汰
二、历年真题
1.在缺页处理过程中,操作系统执行的操作可能是( )(2011年计算机科学与技术学科全国硕士研究生入学统一试卷)
1 修改页表
2 磁盘I/O
3 分配页框
A 仅1、2 B 仅2 C 仅3 D 1、2、3
解析:缺页必然访磁盘,找缺失的页,故必有 2
缺页后要在页表中增加这个页面,即增加页框,故 3 也有
如果页表满了,还涉及置换,自然会修改页表
2.当系统发生抖动(thrashing)时,可以采取的有效措施是()。(2011年计算机科学与技术学科全国硕士研究生入学统一试卷29题)
Ⅰ. 撤销部分进程
Ⅱ. 增加磁盘交换区的容量
Ⅲ. 提高用户进程的优先级
A. 仅Ⅰ B. 仅Ⅱ C. 仅Ⅲ D. Ⅰ、Ⅱ
解析:
在具有对换功能的操作系统中,通常把外存分为文件区和对换区。前者用于存放文件,后者用于存放从内存换出的进程。抖动现象是指刚刚被换出的页很快又要被访问。为此,又要换出其他页,而该页又快被访问,如此频繁地置换页面,以致大部分时间都花在页面置换上。撤销部分进程可以减少所要用到的页面数,防止抖动。对换区大小和进程优先级都与抖动无关。
3.在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是( )。(2011年计算机科学与技术学科全国硕士研究生入学统一试卷30题)
A. 编辑 B. 编译 C. 链接 D. 装载
解析:
编译后形成的目标文件可以理解为一个小块一个小块的程序碎片,这样的小块一般都是具有从0开始的逻辑地址。 在和相应的库函数链接以后形成一个可执行的文件,需要修改这些小块的逻辑地址,使之统一有序。 所以在链接的过程中又把每个小段的逻辑地址按照一定的顺序组装成一个统一的逻辑地址范围,用来标识出此程序。 虽然编辑后的目标文件形成的小块内的也叫逻辑地址,但是和链接后形成的逻辑地址是截然不同的。
4.下列关于虚拟存储的叙述中,正确的是( )。(2012年计算机科学与技术学科全国硕士研究生入学统一试卷25题)
A. 虚拟存储只能基于连续分配技术 B. 虚拟存储只能基于非连续分配技术
C. 虚拟存储容量只受外存容量的限制 D. 虚拟存储容量只受内存容量的限制
解析:虚拟内存本来就是为了把所有的能用的存储空间都统一起来。所以,基于非连续分配技术看起来很适合。
而虚拟内存的容量是受到内外存容量和计算机地址位数限制的。
5.下列措施中,能加快虚地址转换的是( )。(2014年计算机科学与技术学科全国硕士研究生入学统一试卷28题)
1 增大快表(TLB)容量 2 让页表常驻内存 3 增大交换区(swap)
A.仅1 B.仅2 C.仅1、2 D.仅2、3
解析:
(1) 快表存放在高速缓存中,增大快表相当于增大了高速缓存。会增速
页表从硬盘搬到内存中,内存的访问速度高于硬盘。也会增速
(2) 增大TLB,是为了避免去内存中匹配页表。TLB本身就在***里,而且能并行计算。把页表都放在内存里,也是可以的,但一般页表很大,可以经过多级页表和反置页表处理后再放在内存里。交换区是内存不够用时的解决手段,增大交换区能腾出更多地方。
6.若用户进程访问内存时产生缺页,则下列选项中,操作系统可能执行的是( )。
(2013年计算机科学与技术学科全国硕士研究生入学统一试卷25题)
I. 处理越界错 II. 置换页 III. 分配内存
A. 仅 I、II B. 仅 II 、III C. 仅 I、III D. I、II 和 III
解析:如果调页时逻辑地址中的页号超过页表的范围会产生越界中断,改过程由硬件完成。并不是操作系统的任务。
当CPU发现所请求的内存地址中没有指令,就会发出缺页中断。
答案1:处理越界,很显然只有已经加载到内存的数组或其他单元才可能出现访问越界的情况,而发生缺页中断,说明还没有把数据装载到内存
答案2:发生缺页后,首先检查内存单元是否有空闲页,如果没有,操作系统会根据页面置换算法将一部分页面置换出去,然后将缺页数据置换进来。如果有,就会发生答案3的情况,直接将数据置换到内存
7.在页式虚拟存储器管理系统中,采用某些页面置换算法,会出现Belady异常现象,即进程的缺页次数会随着分配给该进程的页框个数的增加而增加。下列算法中,可能出现Belady异常现象的是( )。(2014年计算机科学与技术学科全国硕士研究生入学统一试卷30题)
1 LRU算法 2 FIFO算法 3 OPT算法
A. 仅2 B.仅1、2 C.仅1、3 D.仅2、3
8.下列选项中,属于多级页表优点的是( )。(2014年计算机科学与技术学科全国硕士研究生入学统一试卷32题)
A. 加快地址变换速度 B. 减少缺页中断次数
C. 减少页表项所占字节数 D. 减少页表所占的连续内存空间
解析:A多级页表减慢地址转换速度(多次访存)
B两者没有关系
C页表项所占字节是个常数
9.系统为某进程分配了4个页框,该进程已访问的页号序列为2,0,2,9,3,4,2,8,2,4,8,5。若进程要访问的下一页的页号为7,依据LRU算法,应淘汰页的页号是( )。(2015年计算机科学与技术学科全国硕士研究生入学统一试卷27题)
A. 2 B.3 C.4 D.8
解析:
方法一:进程分配了4个页框,只能容纳4个分页,超过4个分页时,就要从当前分页中选择一个淘汰
LRU算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当须淘汰一个页面时,选择现有页面中其t 值最大的,即最近最少使用的页面予以淘汰。
按这种理解,以题目所说的访问顺序,每个时刻,进程中的页面记录的t值为 【页面号(t值)】
时刻1:2(0)
时刻2:2(1),0(0)
时刻3:2(0),0(1)
时刻4:2(1),0(2),9(0)
....
时刻13:2(10),4(1),8(2),5(0) 上次被访问以来所经历的时间t从大到小排序为 2 8 4 5
时刻14(答案对应的时刻):需要淘汰一个页面以放入页面7,此时淘汰t最大的2号页面
方法二:
10.在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是( )。
(2015年计算机科学与技术学科全国硕士研究生入学统一试卷30题)
A. 可变分配,全局置换 B.可变分配,局部置换
C. 固定分配,全局置换 D.固定分配,局部置换
解析:对各进程进行固定分配时页面数不变,不可能出现全局置换。 而 A 、 B 、 D 是 现代操作系统中常见的 3 种策略。
11.某进程的段表内容如下所示。
段号 | 段长 | 内存起始地址 | 权限 | 状态 |
0 | 100 | 6000 | 只读 | 在内存 |
1 | 200 | - | 读写 | 不在内存 |
2 | 300 | 4000 | 读写 | 在内存 |
当访问段号为2,段内地址为400的逻辑地址时,进行地址转换的结果是( )。(2016年计算机科学与技术学科全国硕士研究生入学统一试卷28题)
A 缺失异常 B得到内存地址4400 C 越权异常 D 越界异常
解析:访问段号2,找到基址为4000,段长为300的段,段内地址为400>300,产生越界异常
12.某进程访问页面的序列如下所示:
若工作集的窗口大小为6,则在t时刻的工作集为( )。(2016年计算机科学与技术学科全国硕士研究生入学统一试卷29题)
A {6,0,3,2} B({2,3,0,4} C{0,4,3,2,9} D{4,5,6,0,3,2}
解析:
在任一时刻t,都存在一个集合,它包含所有最近k次(该题窗口大小为6)内存访问所访问过的页面。这个集合w(k, t)就是工作集。该题中最近6次访问的页面分别为:6、0、3、2、3、2,再去除重复的页面,形成的工作集为{6,0,3,2}。
13.某系统采用改进型CLOCK置换算法,页表项中字段A为访问位,M为修改位。A=0表示页最近没有被访问,A=1表示页最近被访问过。M=0表示页没有被修改过,M=1表示页被修改过。按(A,M)所有可能的取值,将页分为四类;(0,0)、(1,0)、(0,1)和(1,1),则该算法淘汰页的次序为____。(2016年计算机科学与技术学科全国硕士研究生入学统一试卷26题)
A(0,0)、(0,1)、(1,0)、(1,1)
B(0,0)、(1,0)、(0,1)、(1,1)
C(0,0)、(0,1)、(1,1)、(1,0)
D(0,0)、(1,1),(0,1)、(1,0)
解析:
改进型的CLOCK置换算法执行的步骤如下:
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),即A正确。
14.在分段系统中,用共享段表描述所有被共享的段。若进程P1和P2共享段S,下列叙述中,错误的是( )。(2019年计算机科学与技术学科全国硕士研究生入学统一试卷28题)
A.在物理内存中仅保存一份段S的内容
B.段S在P1和P2中应该具有相同的段号
C.P1和P2共享段S在共享段表中的段表项
D.P1和P2都不再使用段S时才回收段S所占内存空间
解析:段的共享是通过两个作业的段表中相应表项指向被共享的段的同一个物理副本来实现的,因此在内存中仅保存一份段S的内容,即A选项正确;
段S对于进程P1、P2来说,使用位置不同,所以在不同进程中的逻辑段号可能不同,即B选项错误;
段表项存放的是段的物理地址(包括段始址和段长度),对于共享段S来说物理地址唯一,即P1 和 P2 共享段 S 在共享段表中的段表项,即C选项正确;
为了保证进程可以顺利使用段S,段S必须确保在没有任何进程使用它后才能被删除,可在段表项中设置一个共享进程计数count,即D选项正确。