operating-system - 具有 2 个级别的分层分页
问题描述
考虑一个页表存储在内存中的分页系统。使用的逻辑地址空间为 32 位,页面大小为 8KB。这将导致非常大的页表,因此系统使用具有两个级别的分层分页。外部页表中的条目数为 256。
指定组成逻辑地址的三个字段中每个字段的位数,即外页、内页和偏移量。
我找到了一些关于查找页面偏移量的信息Page offset = log2(page size in bytes)
,因此对于这种情况,它将是 13,但我没有找到太多关于如何查找外页和内页的位数的信息。任何人都可以为我阐明这个问题吗?谢谢你。
解决方案
逻辑地址的最低位将用于“8192 字节页面中的偏移量”。为此,您需要 13 位(因为1 << 13 = 8192
或因为log2(8192) = 13
)。
逻辑地址的最高位将用于“索引到 256 项外部页表”。为此,您需要 8 位(因为1 << 8 = 256
或因为log2(2562) = 8
)。
如果逻辑地址是 32 位,最低 13 位和最高 8 位用于其他用途;内部页表的索引剩余多少位?
推荐阅读
- javascript - Node.js 隐藏 HTML 页面的内容,直到用户登录
- python-3.x - 在dict中重新迭代for循环
- python - 将 spark DataFrame 保存为 Parquet 的问题
- javascript - 如何将二维数组javascript坐标发送到mysql?
- ios - 发生 SSL 错误,无法与服务器建立安全连接 IOS 13.3.1
- jmeter - 无法从 JMeter 推送 MQ 消息
- c - 指针访问不正确的地址 OS161
- excel - EXCEL FUNCTIONS - SUMIFS - 基于 2 个范围之差的标准(矩阵)
- oop - 使用方法重载的目的是什么?
- asp.net - 如何在 Web 服务启动时初始化我的数据库连接