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

前言

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

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,这将会是非常耗费空间的,因此实际情况中也不会出现。
因此三种参数组合均是不现实的。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
操作系统导论》是一本关于操作系统基本概念和原理的教材。操作系统是计算机系统中最核心的软件之一,它管理和控制计算机硬件资源,并提供给用户和应用程序一个简单易用、高效稳定的接口。 《操作系统导论》主要内容包括操作系统的历史、发展背景,以及操作系统的基本概念、功能和特性等。通过对操作系统的研究,读者能够了解操作系统的架构和组成,掌握操作系统的重要原理和算法,并能够利用这些知识进行操作系统的设计和开发。 在《操作系统导论》中,读者将深入学习操作系统的各个模块,比如进程管理、内存管理、文件系统等。通过对这些模块的学习,读者能够理解操作系统的核心功能,并能够掌握操作系统的基本工作原理。此外,书中还介绍了操作系统的各种经典算法和策略,如调度算法、页面置换算法等,这些算法是实现操作系统功能的基础。 除了基本概念和原理外,《操作系统导论》还涵盖了一些研究热点和前沿技术,如分布式系统、虚拟化技术和云计算等。通过深入了解这些新领域的内容,读者可以了解到操作系统在不同领域的应用和发展趋势。 总之,《操作系统导论》是一本系统介绍操作系统的教材,内容丰富、深入浅出,适合计算机科学与技术相关专业的学生和从业人员阅读使用。通过学习这本书,读者能够全面了解操作系统的基本概念和原理,提高操作系统的设计和开发能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鱼树C

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

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

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

打赏作者

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

抵扣说明:

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

余额充值