我有几个关于页表的问题,特别是当发生页面错误时。页表:页面错误
我知道当CPU需要一个页面时会发生页面错误,但它不存在于RAM中,并且必须从交换空间中获取。页表使用虚拟地址的高位进行索引,并且还包含指示页面是否在内存中的无效位。
这是我不明白。页表是否包含那些也设置了无效位的页面的物理地址?我的意思是,他们不存在于物理记忆中。所以,我的理解是那些设置了无效位的页面,相应的物理地址应该是空白的。我错过了什么吗?
另一个问题是为什么我们不能只为那些存在于内存中的页面输入条目。这样,可以使页表的大小更小。
还有一个问题是,当操作系统将页面错误后的页面交换到RAM中时,将页面分配到的帧的物理地址转换为用于更新页面表的虚拟地址?
有人可以澄清这些疑惑吗?谢谢!