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

本文探讨了线性页表随地址空间和页大小变化的规律,通过实例展示了页表增长趋势,并分析了地址转换中页数百分比对成功率的影响。还研究了不合理参数组合对地址转换的影响。

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:页大小有点大了。

<think>好的,我现在需要处理用户关于《操作系统导论》第九的查询。首先,用户请求的是第九的内容总结或教材分析,但提供的引用资料中没有直接提到第九的信息。这可能会让我有些困惑,因为需要确保回答的准确性。 首先,我需要查看用户提供的引用内容。引用[1]提到单处理器系统和计算机系统体系结构,引用[2]讨论了LFS系统中inode的查找问题,而引用[3]涉及内存分配和valgrind的使用。这些似乎与第九的主题没有直接关联。 接下来,我需要考虑用户可能提到的第九通常会涵盖什么内容。根据常见的操作系统教材结构,第九可能涉及进程管理、调度、内存管理或虚拟内存等主题。例如,在《操作系统导论》中,可能有节专门讨论调度算法或分页机制。 由于用户的引用中没有明确的信息,我需要谨慎处理,避免提供错误的内容。可能的做法是告知用户现有的引用资料未涵盖第九的具体内容,但根据常见教材结构推测可能的主题,并建议用户提供更多信息或参考其他资料。 同时,用户的问题需要生成相关问题。基于推测的第九主题,比如调度或虚拟内存,可以设计相关问题,例如调度算法的比较或分页机制的工作原理。 最后,确保回答符合格式要求,使用正确的中文表达,行内公式用$...$,独立公式用$$...$$,并正确添加引用标识。需要检查是否有遗漏的引用或格式错误。</think>关于《操作系统导论》第九的具体内容,目前提供的引用资料中未直接涉及该节的细节[^1][^2][^3]。但根据操作系统教材的典型架构推测,第九可能涉及以下常见主题(具体需以教材目录为准): 1. **进程调度算法**:如多级反馈队列(MLFQ)的实现与优化 2. **虚拟内存机制**:分页系统、页表结构与地址转换流程 3. **并发控制基础**:信号量、锁机制的实现原理 建议通过以下方式获取准确内容: 1. 查看教材目录确认节主题 2. 关注进程调度与资源分配的关联性[^1] 3. 注意现代操作系统对LFS等新型存储系统的适配问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值