【问题标题】:How critical is page size in virtual memory虚拟内存中的页面大小有多重要
【发布时间】:2017-05-07 07:11:16
【问题描述】:

所以我刚刚读到虚拟地址分为 1 - 页码和 2 - 偏移量。

我还读到页码指示您能够找到正确的页面和偏移量以获取您想要获取物理内存的正确“字节”。 因此,例如在4KB 大小的页面中,我们将12bits 保留为自2^12 = 4096 以来的偏移量,即4KB

我明白了这些概念。但我不明白使用页面背后的原因。 我的意思是,使用4KB 大小的页面或8KB 大小的页面,为什么我们不能使用1byte 大页面?

我想这可以使所有内容逐字节地读写,你可以说它会减慢速度。

但是我们不是已经在第一次查找页面并找到带有偏移量的正确字节时做同样的事情了吗?

提出比1byte 更大的页面的动机是什么? 我得到了使用虚拟内存背后的原因:避免交换。但是为什么我们不能用更小、更直接的一字节大小的页面来做到这一点呢?

【问题讨论】:

标签: cpu-architecture virtual-memory


【解决方案1】:

这与磁盘上的集群大小是同一个问题。

更大的页面 => 更低的开销(更小的页表)

更小的页面 => 更大的开销

更大的页面 => 更多的内存浪费和更多的磁盘读/写分页

更小的页面 => 更少的内存浪​​费和更少的磁盘读/写分页

老爷子说页面大小往往比现在小得多(512 字节很常见)。随着内存的增长,浪费的内存分页问题已经减少,而开销问题(由于更多的页面)增加了。因此我们有更大的页面大小。

一个字节的页面让你一无所获。您必须以完整的磁盘块(通常为 512 字节或更大)写入磁盘。分页单个字节会非常缓慢。

现在添加页面保护和页表。对于一字节页,页表开销将超过可用内存。

【讨论】:

  • 这很有帮助。谢谢!
猜你喜欢
  • 2016-09-26
  • 2014-07-14
  • 2013-01-13
  • 2018-07-27
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
相关资源
最近更新 更多