【操作系统导论】第18章课后习题解答

目录

  • 前言
  • 18.1
    • 题目描述
    • 分析及解答
  • 18.2
    • 题目描述
    • 分析及解答
      • (1) 地址空间中页的百分比为0时:
      • (2) 地址空间中页的百分比为25时
      • (3) 地址空间中页的百分比为50时
      • (4) 地址空间中页的百分比为75时
      • (5) 地址空间中页的百分比为100时
  • 18.3
    • 题目描述
    • 分析及解答

前言

内容仅作记录,请谨慎参考

18.1

题目描述

【操作系统导论】第18章课后习题解答_第1张图片

分析及解答

按照题目要求分别输入(项数太多,仅截图最后部分):

./paging-linear-translate.py -P 1k -a 1m -p 512m -v -n 0
【操作系统导论】第18章课后习题解答_第2张图片

./paging-linear-translate.py -P 1k -a 2m -p 512m -v -n 0
【操作系统导论】第18章课后习题解答_第3张图片

./paging-linear-translate.py -P 1k -a 4m -p 512m -v -n 0
【操作系统导论】第18章课后习题解答_第4张图片

可以看到,随着地址空间的增大,填充的页表项的数量是会随之增加的,也就是页表大小增大;这是因为在页的大小不变的情况下,地址空间越大则对应更多的页数,页的数量增加,页表大小也随之增加

按照题目要求分别输入(项数太多,仅截图最后部分):

./paging-linear-translate.py -P 1k -a 1m -p 512m -v -n 0
【操作系统导论】第18章课后习题解答_第5张图片

./paging-linear-translate.py -P 2k -a 1m -p 512m -v -n 0
【操作系统导论】第18章课后习题解答_第6张图片

./paging-linear-translate.py -P 4k -a 1m -p 512m -v -n 0
【操作系统导论】第18章课后习题解答_第7张图片

可以看到,随着页大小的增大,填充的页表项的数量是会随之减少的,也就是页表大小减小;这是因为在地址空间不变的情况下,页的大小越大,被分成的页数就越少,页表大小也随之减小

18.2

题目描述

在这里插入图片描述
【操作系统导论】第18章课后习题解答_第8张图片

分析及解答

(1) 地址空间中页的百分比为0时:

输入命令:

./paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 0 -c
【操作系统导论】第18章课后习题解答_第9张图片

这里我们看到模拟程序中的几个虚拟地址均未转换成功,这是因为虚拟地址对应的VPN在地址空间中未分配页,无法查找到PTE,所以不能成功

(2) 地址空间中页的百分比为25时

输入命令:

./paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 25 -c
【操作系统导论】第18章课后习题解答_第10张图片

这时我们看到模拟程序中第二个虚拟地址成功转换为物理地址
11206对应二进制:10 1011 1100 0110 因为总共16个页,所以需要前四位作为VPN,即1010 对应[VPN 10],这时我们看到,在地址空间中该处分配了页表项,得到对应的PFN(16进制13,二进制10011),将10011<<10与1111000110相与得到100111111000110即4fc6(这里对地址转换机制做了详细解释,后续不再解释如此详细)

(3) 地址空间中页的百分比为50时

输入命令:

./paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 50 -c
【操作系统导论】第18章课后习题解答_第11张图片

[不会在CSDN里做表格,就截图了…小声比比]
【操作系统导论】第18章课后习题解答_第12张图片

可以看到,当地址空间中页的百分比为50时,有3个虚拟地址成功转换成物理地址

(4) 地址空间中页的百分比为75时

输入命令:

./paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 75 -c
【操作系统导论】第18章课后习题解答_第13张图片

【操作系统导论】第18章课后习题解答_第14张图片

可以看到,当地址空间中页的百分比为75时,模拟程序中所有的虚拟地址均成功转换为物理地址。

(5) 地址空间中页的百分比为100时

输入命令:

./paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 100 -c
【操作系统导论】第18章课后习题解答_第15张图片

可以看到,当地址空间中页百分比为100时,模拟程序中所有的虚拟地址均成功转换为物理地址。
综上我们可以看到,增加地址空间中页的百分比,将会有更多的虚拟地址成功转换为物理地址。

18.3

题目描述

【操作系统导论】第18章课后习题解答_第16张图片

分析及解答

分别输入以下命令:

./paging-linear-translate.py -P 8 -a 32 -p 1024 -v -s 1 -c
./paging-linear-translate.py -P 8k -a 32k -p 1m -v -s 2 -c
./paging-linear-translate.py -P 1m -a 256m -p 512m -v -s 3 -c
产生的模拟结果如下图所示:
【操作系统导论】第18章课后习题解答_第17张图片【操作系统导论】第18章课后习题解答_第18张图片
【操作系统导论】第18章课后习题解答_第19张图片

可以看到在三种情况下,模拟程序均能成功模拟,并且均有虚拟地址成功转换为物理地址
但是在前两种情况下,地址空间只能放下4个页,模拟程序可以这样,实际情况是不可能这么少的;在第三种情况下,一个页的大小为1m,这将会是非常耗费空间的,因此实际情况中也不会出现。
因此三种参数组合均是不现实的。

你可能感兴趣的:(操作系统,linux,经验分享,ubuntu)