首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >页表:页错误

页表:页错误
EN

Stack Overflow用户
提问于 2016-11-20 14:23:18
回答 1查看 3.2K关注 0票数 2

我有几个关于页表的问题,特别是在发生页面错误时。

我理解当CPU需要一个页面时会发生页面错误,但是它不存在于RAM中,必须从交换空间中获取。页表使用虚拟地址的高阶位进行索引,还包含一个无效位,该位指示页是否在内存中。

这是我不明白的。页表是否包含为其设置无效位的页面的物理地址?我是说,它们不存在于物理记忆中。因此,我的理解是,那些设置无效位的页面,相应的物理地址应该是空的。我是不是遗漏了什么?

另一个问题是,为什么我们不能只为内存中存在的页面提供条目。这样,页面表的大小就可以变得更小。

另一个问题是,当操作系统在页面故障后的页面切换到RAM中时,分配给该页的帧的物理地址是否转换为用于更新页表的虚拟地址?

有人能澄清这些疑问吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-21 03:49:16

我理解当CPU需要一个页面时会发生页面错误,但是它不存在于RAM中,必须从交换空间中获取。

页面错误的触发通常是一个或两个步骤的过程。错误由页表的状态触发。

页表使用虚拟地址的高阶位进行索引,还包含一个无效位,该位指示页是否在内存中。

位位置和使用完全取决于系统。有两种程度的残疾。(1)该页不能映射到逻辑地址空间;和(2)该页可以被映射,但没有对应的映射到物理页帧(呼出)。这两项检查可以在页表中显示,也可以与操作系统维护的映射数据一起显示。

页表是否包含为其设置无效位的页面的物理地址?

如果页表项指示逻辑页到物理页帧存在有效的映射,则页表项包含该映射。

我是说,它们不存在于物理记忆中。因此,我的理解是,那些设置无效位的页面,相应的物理地址应该是空的。

一般情况并非如此。如果页表条目通过其控制位指示不存在到物理页帧的映射,则处理器通常忽略实际的映射位。这允许操作系统使用这些位数来标识页存储在磁盘上的位置。

另一个问题是,为什么我们不能只为内存中存在的页面提供条目。这样,页面表的大小就可以变得更小。

您正在描述一个倒页表。有些系统以这种方式实现页表。然而,大多数系统并没有,它们给操作系统增加了额外的开销。

另一个问题是,当操作系统在页面故障后的页面切换到RAM中时,分配给该页的帧的物理地址是否转换为用于更新页表的虚拟地址?

页面错误处理程序需要:(1)分配物理页帧;(2)将数据从次要故事加载到页面帧;(3)更新页面表,将逻辑页指示为物理页帧映射;(4)重新启动导致故障的指令。

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

https://stackoverflow.com/questions/40705152

复制
相关文章

相似问题

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