OS内存分页中的分层页表

时间:2017-05-05 04:42:44

标签: operating-system paging page-tables

现在我正在研究OS中的内存管理

在分层页面表结构中,如果有32位计算机,4KB page-size4B page-entry大小。

为什么地址的位分为10-10-12

我知道20 - 1212位是offset值4kbyte - > 2 ^ 12

但为什么20位变为10-10

11-9或12-8不可能吗?

1 个答案:

答案 0 :(得分:1)

因为他们使用的是两级页表。 20-12只使用1级页面表并消耗内存。

前10位(0-9)PGDIR中的相应条目。该条目将指向页表,在此页表中,您将访问对应于后10位的条目。 (10-19)

动机:
考虑存储所有需要的页表以维持单个进程的开销 #pages * size_entry = 2 ^ 20 * 4 = 4MB

这是很多!
但是,如果我们使用第一级页表,其中有1024个条目,每个条目指向额外的1024个页表,该怎么办?就像之前一样,1024 * 1024 = 1M条目。

现在的内存开销是多少? 1K * 4 + 1 * 4 = 4KB + 4B~ = 4KB