<操作系统导论>第 十八章

1.在做地址转换之前,让我们用模拟器来研究线性页表在给定不同参数的情况下如何改变大小。在不同参数变化时,计算线性页表的大小。一些建议输入如下,通过使用-v 标志,你可以看到填充了多少个页表项。
首先,要理解线性页表大小如何随着地址空间的增长而变化:
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
在运行这些命令之前,请试着想想预期的趋势。页表大小如何随地址空间的增长而改
变?随着页大小的增长呢?为什么一般来说,我们不应该使用很大的页呢?

线性页表大小随着地址空间增长的变化:

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

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

线性页面大小如何随页大小的增长而变化:

在这里插入图片描述

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

2.现在让我们做一些地址转换。从一些小例子开始,使用-u 标志更改分配给地址空间
的页数。例如:
paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 0
paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 25
paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 50
paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 75
paging-linear-translate.py -P 1k -a 16k -p 32k -v -u 100
如果增加每个地址空间中的页的百分比,会发生什么?

*(1)百分比为0时: *
在这里插入图片描述
我们可以看到模拟程序中的几个虚拟地址均未转换成功,这是因为虚拟地址对应的VPN在地址空间中未分配页,无法查找到PTE,所以不能成功

(2)百分比为25时:

在这里插入图片描述
有一个转换成功

(3)百分比为50时:

在这里插入图片描述
有三个转换成功了

(4)百分比为75时:

在这里插入图片描述
全部都转换成功了

(5)百分比为100时:
在这里插入图片描述
也全部转换成功了
综上可以看出:增加每个地址空间中页的百分比,虚拟地址转换成物理地址的成功率就会越高。

3.现在让我们尝试一些不同的随机种子,以及一些不同的(有时相当疯狂的)地址空
间参数:
paging-linear-translate.py -P 8 -a 32 -p 1024 -v -s 1
paging-linear-translate.py -P 8k -a 32k -p 1m -v -s 2
paging-linear-translate.py -P 1m -a 256m -p 512m -v -s 3
哪些参数组合是不现实的?为什么?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这三个都存在正确的转换,因此都不能算错误。但是三个的组合都不太合理。
1和2:地址空间太小,只能容下4个页。
3:页大小有点大了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值