首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >操作系统内存分页中的分层页表

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

Stack Overflow用户
提问于 2017-05-05 12:42:44
回答 1查看 585关注 0票数 2

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

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

为什么要将地址位划分为10-10-12

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

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

11-9或者12-8是不可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2017-05-06 09:16:15

因为它们使用的是两级页面表。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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43796666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档