我正在阅读“现代操作系统”书。我对“页面大小”感到困惑。

在书中,作者说,

传入的16位虚拟地址分为4位页码和12位偏移量。页码为4位,我们可以有16页,并且有12位偏移量,我们可以解决所有4096 字节 在页面内。

为什么4096字节?有12位,我们可以讲4096 条目 在页面中,正确。但是,一个条目是一个地址(在这种情况下,地址尺寸= 16位)。因此,我认为我们可以解决4096(条目) * 16(bit)= 4096(entry) * 2(字节)= 8KB,但是为什么这本书说我们可以地址4096(字节)?

提前致谢! :)

有帮助吗?

解决方案

这是假设字节加入的内存(过去30年中几乎每台使用的机器都使用),因此每个地址都涉及一个字节,而不是条目或地址或任何其他较大的值。要保持16位值,您将需要两个连续的地址(两个字节)。

30多年前,曾经有一个单词解决的机器,就像您的推测一样。但是,这样的机器很难处理面向字节的数据(例如ASCII字符),因此失业了。如今,刚刚假设了字节可寻址性,8位字节和两个组合整数。

其他提示

12位是页面中的偏移量。偏移是在字节中,而不是地址。 2^12是4096。

您正在计算的是页面大小,即内存中页面表中的页面大小。当我们使用12位用于偏移量时,物理内存中的每个帧均为2^12 = 4096k。但是,页面表中的每个页面均占据2^12条目x 2字节= 8k内存中的8k。

好的,所以您有16位虚拟地址,让您看看这意味着什么。这意味着您有2 ** 16 = 65536字节。

4位页码,这意味着有16页为2^4 = 16现在您将页面命名为Page1,Page2 ... Page16。

现在我们有12 bits,让我们看看有多少个地址可以12位代表2 ** 12 = 4096字节

65536字节也可以通过将其分为16页,其中包含4096字节为4096*16 = 65536

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top