北航操作系统课程-20200323课堂小测-存储管理之页目录自映射专题

2020-03-23-课堂小测-页目录自映射专题


北京航空航天大学计算机学院-2020春操作系统课程
以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平有限,如有错误敬请批评指正。


1 页式内存管理中,页面大小是4KB,则页内偏移不可能是:(单选)

A. 0x0

B. 0x123

C. 0xfff

D. 0x1000

答:D

页面大小是4KB,而我们知道页内地址是从0开始连续的,因此大于4K的值的页内偏移地址是不可能出现的。


2 以下哪个地址不是4MB对齐的:(单选)

A. 0x7fc0_0000

B. 0x8000_0000

C. 0xc030_0000

D. 0xffc0_0000

答:C、D

4MB对齐的地址显然应该是4M这个数的整数倍。4M=2^22=0x40_0000,C选项0xc030_0000不是它的整数倍。


3 以下哪个地址不可能是自映射页目录的地址:(单选)

A. 0x8020_0000

B. 0x0000_0000

C. 0xc040_0000

D. 0x7fdf_f000

答:

我们知道自映射页目录的地址 P D E b a s e PDE_{base} 满足:
P D E b a s e = P T b a s e P T b a s e > > 10 = P T b a s e + P T b a s e ÷ 2 10 PDE_{base}=PT_{base}|PT_{base}>>10\\ =PT_{base}+ PT_{base} \div 2^{10}
其中 P T b a s e PT_{base} 表示整个页表在虚拟内存中的基地址,而这个值是应该4MB对齐的。通过带入题目选项所给的 P D E s e l f _ m a p p i n g PDE_{self\_mapping} 地址分别计算 P T b a s e PT_{base} ,在十进制下有 P T b a s e = P D E b a s e / 1025 × 1024 PT_{base}=PDE_{base}/1025\times1024 。计算得到的 P T b a s e PT_{base} ,A选项为0x8000_0000,B选项为0x0000_0000,D选项为0x7fc0_0000,均是4MB对齐的,而C选项无法整除,说明C项不可能是一个自映射页目录的地址。


4 寻址256TB地址空间,至少需要________位地址:(填空)

答:48

256T = 2^8T = 2^8 * 2^40 = 2^48,因此至少需要48位地址


5 页目录自映射计算过程中,给定的页表起始地址和计算得到的页目录地址是:(单选)

A. 都是物理地址

B. 都是虚拟地址

C. 前者是物理地址,后者是虚拟地址

D. 前者是虚拟地址,后者是物理地址

答:B

页表起始地址由于是操作系统软件访问的地址,显然是虚拟地址,而页目录采用自映射机制,计算所得结果也是虚拟地址系统中的一部分,也是虚拟地址。


6 一个32位页式内存管理系统,页面大小是4KB,采用二级页表管理,页表被映射到起始地址0x1fc0_0000的4MB地址空间,那么页目录所在的地址为0x____________________:(填空)

答:1FC7F000

P D E b a s e = P T b a s e P T b a s e > > 10 PDE_{base}=PT_{base}|PT_{base}>>10 ,带入即可计算得 P D E b a s e = 0 x 1 f c 7 _ f 000 PDE_{base} = 0x1fc7\_f000


7 以下关于页目录自映射说法正确的是:(单选)

A. 采用页目录自映射方式,有助于实现用户进程的统一内存布局

B. 实现内存自映射必须为所有页表页分配物理存储空间

C. 页目录自映射只适用于二级页表分页系统

D. 页目录自映射可以提高访存效率

答:A

采用页目录自映射的方式,用户进程页表也在用户空间拥有一个自映射页目录,有助于实现用户进程的统一内存布局,A正确。实现页目录自映射,或者说实现多级页表请求分页系统,就是为了避免给所有页表页分配物理空间,否则页表本身将占用过多的物理存储空间,B错误。页目录自映射机制可以适用于多级页表系统,C错误。页目录自映射和访存效率无关,事实上相比于一级页表或没有分页的系统,多级页表系统会增加内存访问次数,D错误。


8 一个32位页式内存管理系统,页面大小是4KB,采用二级页表管理,页表被映射到起始地址0xD000_0000的4MB地址空间,则自映射页目录中,指向自身的页目录项的虚拟地址为0x____________________:(填空)

答:D0340000

P D E s e l f _ m a p p i n g = P T b a s e P T b a s e > > 10 P T b a s e > > 20 PDE_{self\_mapping}=PT_{base}|PT_{base}>>10|PT_{base}>>20 ,带入即可计算得到 P D E s e l f _ m a p p i n g = 0 x D 034 _ 0000 PDE_{self\_mapping}=0xD034\_0000


9 一个32位页式内存管理系统,页面大小是4KB,采用二级页表管理,页表被映射到起始地址0xC000_0000的4MB地址空间,如果需要将虚拟地址0x8001_0000映射到物理地址0x0000_0000上,则需要修改虚拟地址0x____________________上的页表项:(填空)

答:C0200040

此题的问法相当于问虚拟地址0x8001_0000所在页的页表项在哪里。每4KB一页,则0x8001_0000所在的页是0x8001_0000 / 4K = 0x80010,第0x80010个页,每个页占用4B的页表项,则该页所在页表项在页表中的偏移是0x80010 * 4B = 0x200040,页表起始地址为0xc000_0000,则该页表项的地址为 0xc000_0000 + 0x200040 = 0xc020_0040。


10 以下关于x86架构的CPU,说法正确的是:(单选)

A. 系统引导时,应该首先开启分页寻址功能,再将CPU从实模式切换为保护模式

B. 进入保护模式后可以启用分页寻址功能,也可以禁用分页寻址功能

C. 进入保护模式后可以启用分段寻址功能,也可以禁用分段寻址功能

D. 开启分页寻址功能后,之前存储的数据都会丢失

答:B

x86架构下,系统引导的时候CPU采用实模式,从实模式且换保护模式后,分段功能是不可禁止,自动开启的,而分页功能是可以开启也可以禁止的,因此分页功能的开启是在切换至保护模式之后进行的,A、C错误,B正确。开启分页之后之前存储的数据是不会丢失的,D错误。

发布了19 篇原创文章 · 获赞 3 · 访问量 3918

猜你喜欢

转载自blog.csdn.net/JeremyZhao1998/article/details/105061570
今日推荐