gpt4 book ai didi

operating-system - offset 和 no 有什么区别?页面中的条目数?

转载 作者:行者123 更新时间:2023-12-02 03:56:16 25 4
gpt4 key购买 nike

假设一台机器有38位的虚拟地址和32位的物理地址。

(b) 对于两级页表、16KB 页和 4 字节条目,应为顶层页表字段分配多少位,为下一级页表字段分配多少位?解释一下。

答案如下:

偏移字段需要 14 位来寻址 16 KB。这为页面字段留下了 24 位。由于每个条目为 4 字节,一页可以容纳 16KB/4 字节 = 2^12页表条目,因此需要 12 位来索引一页。所以为每个分配 12 位页字段的地址将寻址所有 2^38 个字节。


我不是很明白如果我们有偏移量14位用来在页内寻址,那么什么是一页可以容纳16KB/4 byte = 2^12?另一个偏移量?

最佳答案

回答原来的问题:
不,它不是二级偏移量,它只是用作二级页表内部的索引。前 12 位作为第一级条目的索引,后 12 位作为二级页表内的索引。


  • 38 位虚拟地址
  • 16KB 页面大小
  • 32 位物理地址

我们可以得出结论:

  1. 主内存大小为 2^32 = 4GB
  2. log2(16K) = 14,14 位用于偏移
  3. 页面入口为4字节
  4. 38-14 = 24 位 到引用页
  5. 2^24 个不同的虚拟页面
  6. 2^18 个不同的物理框架

现在假设我们要为一个页表分配空间,如果我们为它分配一个 16KB 的页,它会有多少条目? 16K/4 = 4K 条目

PAGE:
0x000 entry 1
0x001
0x002
0x003
-----------------
0x004 entry 2
0x005
0x006
0x007
------------------
. entry 3
.
.
.
------------------
0xFFC entry 4096 (NOTE! 4K = 4096 as its 2^12)
0xFFD
0xFFE
0xFFF
------------------

现在如果我们将页面的 24 位分成两半,一级页面 12 位,二级页面 12 位。我们可以处理多少页?

第一级有2^12 个不同的页面,其中每个条目都指向一个第二级页表。二级页表也有2^12个表项,每个表项指向一个大小为16KB的帧。

(2^12)*(2^12)*(2^14) = 2^38

使用这个 2 级页表,您可以寻址 2^38 个虚拟地址。

关于operating-system - offset 和 no 有什么区别?页面中的条目数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43862156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com