0

好的,所以我在 Stack 上进行了一些搜索,但找不到这个问题的答案。这是课堂上提到的东西,但教授没有具体说明如何解决这个问题。

如果我们假设一个系统是 64 位的,并且有 128GB 的​​物理内存,但我们希望进程以 256GB 的方式运行,我如何计算逻辑地址所需的位?

到目前为止,我所做的所有研究都涉及 2-4GB 的物理内存,我终生无法弄清楚如何计算它。我需要知道这一点才能理解页面的位移和条目......

4

2 回答 2

0

所需的位数不仅取决于进程的大小,还取决于每个地址指向的字节数。

一般公式为:

num_of_bits = ceiling(log_2(size_of_process_in_bytes / bytes_pointed_by_an_address))
于 2011-04-19T02:34:27.290 回答
0

也许这会有所帮助。给定一个 32 位,我们有: 2 的 32 次方 = 4 294 967 296 => 4GB 32 位字长可访问的最大地址空间。

对于 64 位系统,我们有: 2 的 64 次方 = 18 446 744 073 709 551 616 => 16EB (EB = exbibytes) 64 位字长可访问的最大地址空间,实际上是无限的,但我们是受硬件限制(例如,我的主板最多只支持 24GB)。

希望这可以帮助!

于 2011-04-19T02:40:14.213 回答