多级页表

时间:2012-06-18 10:07:30

标签: linux operating-system paging virtual-memory

有两个问题:

  1. 具有32位地址的计算机使用2级页表(9位顶级和11位第二级)。页面的大小,地址空间中的页面数量以及应该驻留在内存中的页面表的最小大小有多少?

  2. 32位虚拟地址空间计算机有4 KB页面。文本和数据进入最低页面(0-4095)。堆栈位于最高页面。如果计算机仍然使用传统页表和2级页表(PT1和PT2各10位)需要多少条目?

  3. THX为答案人....

1 个答案:

答案 0 :(得分:1)

  1. 9 bit + 11 bit = 20 bit。鉴于此,它允许12位用于偏移,这基本上是4kb页面。顶级页面目录存储256个页表条目,第二级页表存储2048个页面条目。

  2. 从用户的角度来看,如果您有不同的页面,则需要2到3页(堆栈,代码+数据堆栈,代码,数据代码dans数据的页面,即数据页面具有no-execute属性)。从内存管理器的角度来看,您还需要一个页面来存储页面目录结构,还需要一两个页面来存储相应的页面表结构。 页面目录的第一个条目指向页面表页面,其中包含代码和数据页面的条目。 页面目录的最后一个条目指向页面表,其中包含堆栈页面的条目。

  3. 希望得到这个帮助。