为什么不为进程的页表项分配连续的内存?

问题描述 投票:0回答:1

在 Abraham Silber Schuatz 所著的教科书《操作系统概念》中,第 9.4 节指出:

9.4 页表的结构 - 在本节中,我们将探讨一些最常见的结构化技术 页表,包括分层页表、散列页表和倒排页表 页表。 9.4.1- 分层分页 大多数现代计算机系统都支持大的逻辑地址空间 (232 至 264)。在这样的环境下,页表本身就变得过度 大的。例如,考虑一个具有 32 位逻辑地址空间的系统。如果 这样的系统中的页面大小为 4 KB (212 ),那么页表可能包含超过 100 万个条目 (220 = 232 /212 )。假设每个条目由4个字节组成, 每个进程可能需要最多 4 MB 的物理地址空间用于页表 独自的。 显然,我们不希望连续分配页表 主存储器。解决这个问题的一个简单方法是划分页表 分成更小的碎片。我们可以通过多种方式完成这种划分。

我真的不明白“显然,我们不想连续分配页表...”这部分以粗体显示。所以是的,这是为什么?

memory memory-management operating-system paging
1个回答
0
投票

我认为这只是有点尴尬的措辞。 作者的意思可能是,我们不希望硬件“要求”连续分配页表,也不希望使用仅适用于连续块的算法,因为很难保证这么大的连续块块将可用。 但是使用连续区域本身并没有什么问题。 如果这样的区域确实可用,那么使用它并没有什么问题。 (不过,一旦我们有了一种可以利用分散页面的算法,那么为了实际需要连续性的其他目的而保留大的连续区域可能会更有利,例如大页面或 DMA 缓冲区。)

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.