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

本文通过分析一个模拟程序展示了地址空间大小、页大小以及页表填充百分比如何影响虚拟地址到物理地址的转换。随着地址空间增大,页表项数量增加;页大小增大,页表项数量减少。在不同页百分比下,转换成功率变化,100%时所有地址都能转换。讨论了不切实际的参数组合对模拟结果的影响。
摘要由CSDN通过智能技术生成

前言

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

18.1

题目描述

在这里插入图片描述

分析及解答

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

./paging-linear-translate.py -P 1k -a 1m -p 512m -v -n 0
在这里插入图片描述

./paging-linear-translate.py -P 1k -a 2m -p 512m -v -n 0
在这里插入图片描述

./paging-linear-translate.py -P 1k -a 4m -p 512m -v -n 0
在这里插入图片描述

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

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

./paging-linear-translate.py -P 1k -a 1m -p 512m -v -n 0
在这里插入图片描述

./paging-linear-translate.py -P 2k -a 1m -p 512m -v -n 0
在这里插入图片描述

./paging-linear-translate.py -P 4k -a 1m -p 512m -v -n 0
在这里插入图片描述

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

18.2

题目描述

在这里插入图片描述
在这里插入图片描述

分析及解答

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

输入命令:

./paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 0 -c
在这里插入图片描述

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

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

输入命令:

./paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 25 -c
在这里插入图片描述

这时我们看到模拟程序中第二个虚拟地址成功转换为物理地址
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
在这里插入图片描述

[不会在CSDN里做表格,就截图了…小声比比]

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

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

输入命令:

./paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 75 -c
在这里插入图片描述

在这里插入图片描述

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

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

输入命令:

./paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 100 -c
在这里插入图片描述

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

18.3

题目描述

在这里插入图片描述

分析及解答

分别输入以下命令:

./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
产生的模拟结果如下图所示:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼树C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值