Operating system 操作系统内存分页中的分层页表

Operating system 操作系统内存分页中的分层页表,operating-system,paging,page-tables,Operating System,Paging,Page Tables,现在我正在学习操作系统中的内存管理 在分层页表结构中,如果有32位机器,4KB的page size和4B的page entrysize 为什么将位划分为10-10-12 我知道20-12,12位是offset值乘以4kbyte->2^12 但是为什么20位变成10-10位呢 11-9或12-8不可能吗?因为他们使用的是两级页面表格20-12将仅使用1级页表,这将消耗内存。 前10位(0-9)是PGDIR中的相应条目。该条目将指向一个页面表,在此页面表中,您将访问对应于第二个10位的条目(10-1

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

在分层页表结构中,如果有32位机器,
4KB
page size
4B的
page entry
size

为什么将位划分为
10-10-12

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

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


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

因为他们使用的是两级页面表格<代码>20-12
将仅使用1级页表,这将消耗内存。

前10位
(0-9)
PGDIR
中的相应条目。该条目将指向一个页面表,在此页面表中,您将访问对应于第二个10位的条目<代码>(10-19)

动机:
考虑存储所有需要的页表以维持单个进程的开销。
\pages*size\u条目
=2^20*4=
4MB

太多了
但是,如果我们使用一个第一级页面表,它有1024个条目,每个条目指向额外的1024个页面表,会怎么样?也就是说,1024*1024=1M个条目与之前一样

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