2

现在我正在学习操作系统中的内存管理

在分层页表结构中,如果有 32 位机器4KBpage-size则为4B大小page-entry

为什么地址被划分为10-10-12

我知道20 - 1212位是offset4kbyte -> 2^12

但是为什么 20 位变成 10-10

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

4

1 回答 1

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

于 2017-05-06T01:16:14.510 回答