我正在学习操作系统,我对此问题感到困惑。
考虑一种32位寻址方案,页码为18位,偏移量为14位,物理内存为4GB。
a。)页面表中有多少个条目?
@{
ViewBag.Title = "Home Page";
}
<div ng-app="">
<h1>Hello {{ "Geoff" }}</h1>
</div>
@section Scripts {
<script src="~/Scripts/angular.min.js"></script>
}
b。)每个页表条目的最小大小是多少?
This should just be 2^18 as there are 18 bits for the page number.
c。)每页的大小是多少
I have no clue how to calculate this with the given information or what it means by min.
最小尺寸是什么意思,你如何用给定的信息计算它?
答案 0 :(得分:0)
页表中的条目应该包含足够的信息以允许成功的地址转换。因此,给定一些虚拟地址,您需要在查看相应的页表条目后才能获得正确的物理地址。
由于您拥有4 GB
(2^32 B
)物理内存,因此需要32 bit
个宽地址才能处理每个字节。
您已经知道使用虚拟地址的14 bit
- 没有任何转换 - 作为偏移量。因此,您只需要32 - 14 = 18
个附加位就能够分别寻址每个字节。这些18 bits
形成了通常称为帧号的东西。然后,虚拟地址转换成为从页码(虚拟地址的18 bit
)到帧号的映射。
请注意,用于帧编号和页码的位数不必相同,如本示例所示。如果您的系统只有1 GB
物理内存,那么30 bits
就足以解决每个字节的问题,只留下16 bits
作为帧编号。
我使用并假设&#34;拥有物理内存的X&#34; 与&#34相同;能够物理内存的最大地址X&#34; 以上所有内容。讨论的位宽不依赖于实际的内存配置(当前可用于CPU的RAM数量),而是取决于设计的最大容量。
答案 1 :(得分:0)
我强烈建议另外写一本书。
a。)页面表中有多少个条目?
它可能是任何东西。地址空间大小不指定页表中的条目数。任何暗示其他书的书都是白痴写的。
b。)每个页表条目的最小大小是多少?
同样,这是一个愚蠢的问题。这可能表明,如果地址的18位引用一个页面,那么在页表条目中至少需要18位。世界上如何实现18位页表? - 我不知道。作为一个切实可行的问题,页表需要有开销位用于保护和寻呼管理。
假设您将它移动到24位,这样就可以得到圆形的字节数和一些额外的开销。然后,您访问未对齐的数据时表现不佳。
现实情况是,32位系统中的页表条目将是32位,64位系统中的页面条目将是32位或64位(或可能是多位)
我还注意到你的例子是一个“32位系统”,但是18位用于引用页面帧,14位用于偏移量。那只是22位。
也就是说,32位处理器架构的硬件实现可能支持不到一个完整的32位地址空间。但是,仅支持22位寻址的架构将完全成为FUed。
询问页面表的最小大小只是要求读者进行精神手淫。他们只是想让简单复杂化。
c。)每页的大小是多少
你有那个。这一束唯一的问题是有道理的。
简而言之,页表条目包含:
足够的位来引用物理页面框架(或引用多级页面表格中的下一级别)。
页面保护位
用于管理寻呼的位(例如有效位,脏位)。
这很简单。