我正在学习不同类型的内存管理。我不明白在虚拟地址中具有偏移位的意义。以及为什么页面大小是由2
?
我认为您的主要和次要困惑是由于对该主题的普遍困惑造成的:)
让我谈谈这个问题,希望能对您有所帮助。首先,打个比方——想象一下您正在尝试在城市中找到一所房子。想象一下,每栋房子都有一个唯一的编号 - 您可以想象房子的数量很快就会变得非常大并且令人困惑。现在想象一下,您引入了街道的概念 - 当您将门牌号分组为漂亮的块时,门牌号现在变得更易于管理。因此:街道 = 页码,门牌号 = 偏移地址。
拥有虚拟内存页面的全部目的是允许计算机将内存分割成可管理的块,而不是浪费太多。将其分成块(页面)可以对访问、分页和其他类似的事情进行精细控制。你的页面越小,你浪费的内存就越少(如果进程 A 需要 32k 内存,而你的页面大小是 64k,你最终会得到一些未使用的内存),但是越高系统的开销。
至于为什么页面大小是2的幂,这是为了不浪费地址内的空间。由于计算机(目前)基于二进制,所以一切都倾向于归结为 2 的幂。想象一下,如果您有基于 10 因数的东西。二进制中的 10 是 1010 - 您必须使用 4 位来保存它,那么为什么不选择可以从 4 位中获得的完整值范围:0000 - 1111(0 到 15 = 16 个值)。
抱歉,我有点胡言乱语 - 我希望这能引导您走向正确的方向!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)