Operating system 操作系统内存分页中的分层页表
现在我正在学习操作系统中的内存管理 在分层页表结构中,如果有32位机器,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
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