一级页表:
比如对于4G的空间,4K页
那需要2^20 == 1M个页标项(无论用不用都需要,系统不知道哪个地址是否会被访问)
1M * 4 == 4M
每个进程都需要4M的内存
(每个进程最小需要4M的内存)
二级页表:
每个进程最多需要一个页目录(4K) + 4K*2^10个页表=4M+4K
每个进程最少需要一个页目录(4K) + 4K*2^0个页表=4K+4K=8K
解释:
一级页表的两个问题:
1.页表在内存分配是必须连续,否则无法查表。
2.每个进程都必须实实在在占用4M,必须全部分配,进程才可以使用。
二级页表的优势:
1.允许页表被分散在内存的各个页面中,不需要连续的4M内存块;
2.并不需要为不存在的或线性地址空间未使用部分分配二级页表;
3.可以在虚拟内存中存放二级页表。
二级页表结构图