3

当由于 CPU 试图访问的内容尚未加载到内存中而引发页面错误异常时,操作系统如何在辅助存储(例如硬盘)上定位丢失的内容?

提前感谢您的解释。

-伊万

4

2 回答 2

4

简短版本:无效 PTE 的地址位将映射到辅助存储(交换文件)内的偏移量。

更长的版本:为了了解那里发生了什么,让我们快速回顾一下虚拟到物理转换的工作原理。我将在 x86 平台上讨论答案。

CR3 处理器寄存器分配了 20 位来指向页目录的开头。虚拟地址的前 10 位编码该地址使用哪个页目录条目 (PDE),它是页表条目 (PTE) 的数组,地址中的下 10 位编码其中 PTE 指的是实际的物理页问题。最后 12 位在页内偏移。

当操作系统从内存中逐出页面时,PTE 被标记为无效,并且 PTE 的地址位变为页面文件的偏移量(回答您的原始问题)。

内存映射文件会稍微复杂一些,因为它们使用原型 PTE。

如果您对更多信息感兴趣,我强烈推荐 Mark russinovich “Windows Internals”一书。

于 2010-09-28T07:35:57.573 回答
0

操作系统将定位与页面错误相关的内存映射结构,其中包括相关文件的句柄。它将使用句柄,计算出文件的偏移量,然后发出读取。当读取返回时,内存管理器会将其复制到 RAM 中并将该页面标记为由物理帧(实际 RAM)支持。

于 2010-09-27T02:26:05.750 回答