有两个问题:
32位地址的计算机使用2级页表(9位顶层和11位二级)。页面的大小、地址空间中的页面数量和内存中应该存在的页面表的最小大小是多少??
32位虚拟地址空间计算机有4 KB的页面。文本和数据进入最低页面(0-4095)。栈在最高的一页。如果计算机仍使用传统页表和两级页表(PT1和PT2各10位),则需要多少个条目?
伙计们,请回答。。。。
最佳答案
9 bit + 11 bit = 20 bit
。考虑到这一点,它允许12位的偏移量,这基本上是一个4kb的页面。顶层页目录存储256个页表条目,二级页表存储2048个页条目。
从用户的角度来看,您需要2或3个页面(stack、code+data或stack、code、data,如果您有不同的code-dans数据页面,即data页面有no execute属性)。从内存管理器的角度来看,您需要一个以上的页面来存储页面目录结构,以及一个或两个以上的页面来存储相应的页面表结构。页目录的第一个条目指向包含代码页和数据页条目的页表页。页目录的最后一个条目指向保存堆栈页条目的页表。
希望能帮上忙。
关于linux - 多级页表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11080702/