二级页表

一级页表:

比如对于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.可以在虚拟内存中存放二级页表。

                                              二级页表结构图

二级页表_第1张图片

你可能感兴趣的:(深入理解linux内核)