北航操作系统课程-20200312课堂小测-存储管理之页式内存管理
北京航空航天大学计算机学院-2020春操作系统课程,2020-03-09课堂小测,内容为存储管理之页式内存管理。题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平有限,如有错误敬请批评指正。
2020-03-12-课堂小测-页式内存管理
北京航空航天大学计算机学院-2020春操作系统课程
以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平有限,如有错误敬请批评指正。
1 在页式存储管理中,需要为进程分配连续的物理内存区域:(判断)
答:错误
页式存储管理不需要像分区式管理那样为进程分配连续的物理内存区域。页式存储管理产生的初衷和基本思想就是不再需要为进程分配连续的物理内存区域,这样既可以解决“大作业小内存”无法满足的问题,也省去了回收空间、内存紧缩等操作的开销。
2 下列属于页式内存管理缺点的是:(多选)
A. 内碎片
B. 外碎片
C. 进程间共享数据不方便
D. 访问页表会增加访存延迟
E. 页表会占用额外的内存空间
答:A、D、E
页式内存管理分配内存的最小单位是页面,因此会产生页内碎片,不过其碎片大小必然不会超过页面大小(A正确,B错误)。页式内存管理进程间共享数据的方式是同一个物理页被映射到多个虚拟页,这种方式会导致同一页中的所有数据都被共享。分页管理是由操作系统完成,对用户透明的,而用户在编程时是独立考虑共享哪些数据,保密哪些数据的,这种整页的共享方式很容易将本应保密的数据共享给别的进程(C正确)。访问页表时,以二级页表为例,访问内存之前先访问页目录,再访问页表,最终才能查到物理地址,相对于不分页的一次多了两次的内存访问,是会增加访问延迟的(D正确)。页表或页目录本身也需要占用内存空间以供查询(E正确)。
3 页面大小是8KB,虚拟地址0x13345所表示的页内偏移是:(填空)
答:0x1345
页面大小 8 K B = 2 13 B 8KB=2^{13}B 8KB=213B ,因此需要13个二进制位来表示页内偏移虚拟地址0x13345展开是0001_0011_0011_0100_0101,其低13位取十六进制即为0x1345。
4 页表项中记录有哪些信息:(多选)
A. 页框号
B. 标志位
C. 页内偏移
答:A、B
典型的页表项有如上图的记录,最重要的是页框号,即物理页面号,其次还包括了一些是否保护、是否被引用、是否缓存等标志位。页表项不包含页内偏移,页内偏移是有逻辑地址的低位直接在物理页框中寻址的。
5 当TLB未命中时,后续会执行哪些处理:(多选)
A. MMU访问页表获得页框号
B. MMU根据所读取的页表项信息更新TLB
C. 立即抛出缺页异常
答:A、B
TLB未命中时,MMU就会按照传统路径去访问页表获取页框号,随后将未命中的页表项信息更新到TLB中(A、B正确)。缺页异常(常常是缺页中断)是程序访问到了尚未调入主存中页而产生的,此时操作系统将对应的页面从磁盘调入主存继续运行,并不是在查TLB过程中产生的(C错误)。
6 假设虚拟地址有64位,页面大小为4KB,一个页表项占8个字节,如果采用一级页表,页表需要占用多少内存:(填空)
答: 2 55 2^{55} 255 字节
页面大小 4 K B = 2 12 B 4KB=2^{12}B 4KB=212B ,因此虚拟地址低12位表示页内偏移,高52位表示页号,共有 2 52 2^{52} 252 个虚拟页,一级页表每个页表项8字节,而每个虚拟页都需要一个页表项,则页表一共就要占 2 52 ∗ 8 = 2 55 2^{52}*8=2^{55} 252∗8=255 字节。
7 关于多级页表,下列说法不正确的是:(单选)
A. 能够减少页表占用内存的大小
B. 级数越多,平均访问内存的时间越长
C. 有效的页表项中都会存储页框号
D. 使用二级页表的平均访存性能优于一级页表
答:D
多级页表会采用动态调入机制,有一些页表在不需要的时候不调入内存,解决了页表占用大量内存的问题(A正确)。页表级数越多,就需要越多次访问这些不同级的页表,也就是多次访问内存,平均访存时间会增加(B正确,D错误)。有效的页表项中必然会存储页框号,MMU正是凭借页表项中的页框号才找到物理地址(C正确)。
8 32位x86体系架构采用的页目录与页表结合的内存管理方式本质上利用了:(单选)
A. 一级页表
B. 二级页表
答:B
32位x86体系架构使用的是二级页表机制,具体结构和地址转换方法如下:
9 纯分页内存管理的特点是:(多选)
A. 不支持按需将页面装入内存
B. 一次性分配进程所需要的全部物理内存
C. 不支持多级页表
答:A、B
纯分页也称为基本分页管理,它不支持页面对换。当进程到来时一次性分配进程所需的所有物理内存(B正确),有多少页直接分配多少页框,并不是按需装入(相对应的按需装入称作请求分页)(A正确)。纯分页也是可以支持多级页表的,只不过此时的多级页表不能动态装入,所有级别的页表都同时装入内存(个人觉得纯分页再加多级页表就没意义了,多级页表就是为了动态调入页表,但理论上还是可以实现多级页表的)(C错误)。
10 下列哪些属于反置页表的优点:(单选)
A. 查找页表项的速度快
B. 页表占用的内存空间小
C. 便于进程之间共享数据
答:B
反置页表的设计也是为了解决页表本身占用内存过大的问题。与传统页表不同,传统页表是用逻辑页号去找物理页框号,逻辑页一旦过多就会造成页表占用内存大,而反置页表是用物理页框去找逻辑页号和进程号,有多少物理页框就需要多少页表项,而物理页框数往往是比较小的(B正确)。反置页表的每次检索都检索整张表,查表项的速度并不是其优势(哈希表和TLB可以改善其访问)(A错误)。反置页表中每个物理页框只能对应一个进程的一个虚拟页,并不会有利于共享内存(共享内存一般通过多个虚拟页指向统一物理页来实现)(C错误)。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)