考虑一个使用32位地址和1KB大小的页的分页虚拟内存系统,每个页表项需要32位,限制页表的大小为一个页,请回答:
(1) 页表一共需要几级?
(2) 请设计每一级的页表大小,使得所需的页数个数总和最小。
考虑一个使用32位地址和1KB大小的页的分页虚拟内存系统,每个页表项需要32位,限制页表的的大小为一个页,请回答:
(1) 答:由于页面大小占用10bit,还剩22bit即有2 22 个页表项。一个页表项32bit,即占用4个字节,一页最多含2 10 /4=2 8 个页表项,所以需要3级页表。(5分)
(2) 答:若一级页表长度为6位,二级和三级页表长度各为8位,则需要的页数总数为1+2 6 +2 14 =16449;若一级页表长度为8位,二级页表长度为6位,三级页表长度为8位,则总共需要1+2 8 +2 16 =65793页。因此,三级页表的长度分别为6,8,8时,总页数和最小。(9分)