好吧,所以我在Stack周围做了一些搜索,找不到这个问题的答案。这是课堂上提到的内容,但教授没有具体说明如何解决这个问题。
如果我们假设系统是64位,并且物理内存为128GB,但我们希望进程以256GB运行,那么如何计算逻辑地址所需的位?
到目前为止,我所做的所有研究都处理了2-4GB的物理内存,而且我不能为我的生活找出如何计算它。我需要知道这一点,以便了解页面的位移和条目......
答案 0 :(得分:0)
所需的位数不仅取决于进程的大小,还取决于每个地址指向的字节数。
通用公式为:
num_of_bits = ceiling(log_2(size_of_process_in_bytes / bytes_pointed_by_an_address))
答案 1 :(得分: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)。
希望这有帮助!