如何在全局页面替换中使页面无效?

How is a page made invalid in global page replacement?

假设有两个进程 A 和 B。B 需要在其页面中插入一个新框架 table。由于没有可用的帧,我们必须换出一帧并从磁盘中导入 B 的帧。假设操作系统遵循全局页面替换方案并选择一个我们有 A 数据的帧。现在,要换出这个框架,我们需要在 A 的页面 table 中更改相应的框架无效。要在 general.we 中做到这一点,需要知道内存中特定帧中存在哪个进程的数据,以便我们可以转到它的页面 table 并将该位更改为无效。这是如何实现的?内存中的每一帧是否也存储了它拥有数据的相应进程的进程ID?

页面Table只是处理器硬件所需的设施。最重要的是,OS 在内存中维护自己的数据库,跟踪每个物理页面框架。例如,在 Windows 中,有一个页面框架数据库 (PFN) 列出了每个物理页面的状态,如 Valid、Standby、Modified、Free 等。以及用于描述驻留在物理内存中的虚拟页面的子集, 有一个工作集列表。

对于Windows,如果你需要了解更多内存管理的细节,推荐这本书http://www.amazon.com/Windows-Internals-Part-Developer-Reference/dp/0735665877/ref=sr_1_3?ie=UTF8&qid=1463848711&sr=8-3&keywords=windows+internals