北航操作系统课程-20200312课堂小测-存储管理之页式内存管理

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} 2528=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错误)。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
北航操作系统课程设计的Lab0旨在帮助学生熟悉实际的操作系统开发环境和相关工具的使用。在这个实验中,我们首先需要安装Linux操作系统并进行相关配置,以便进行后续的实验操作。 在Lab0中,我们需要安装和配置虚拟机软件,如VirtualBox或VMware,以创建一个类似操作系统的虚拟环境。然后,我们需要从北航操作系统课程设计网站下载并安装提供的操作系统实验环境,如ucore OS等。 安装完成后,我们需要熟悉Linux系统的基本命令,并了解与操作系统开发相关的编译工具链,如gcc和make。这些工具在操作系统的编译和运行过程中起着至关重要的作用。我们将学习如何使用gcc编译C语言程序,并使用make工具自动化编译过程。 在实验中,我们还将学习如何通过交叉编译和链接,将编译生成的操作系统镜像加载到虚拟机中并运行。我们将通过VirtualBox或VMware的网络设置,将虚拟机与宿主机连接起来,以便进行操作系统的调试和测试。 通过完成Lab0,我们将能够顺利地进行后续的操作系统实验,掌握操作系统开发的基本技能和工具。我们将能够编写C语言的系统代码,实现操作系统的基本功能和特性。此外,我们还将学习到操作系统的底层原理和相关的调试技巧。 总而言之,北航操作系统课程设计的Lab0是一个重要的起点,它帮助我们搭建实验环境、熟悉操作系统开发工具和命令,并为后续的实验打下坚实的基础。通过此实验,我们将能够更深入地理解操作系统的工作原理,并为我们未来的学习和研究提供良好的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值