现在我正在研究OS中的内存管理
在分层页面表结构中,如果有32位计算机,4KB
page-size
和4B
page-entry
大小。
为什么地址的位分为10-10-12
我知道20 - 12
,12
位是offset
值4kbyte - > 2 ^ 12
但为什么20位变为10-10
11-9或12-8不可能吗?
答案 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