COW 和需求分页一样吗?

Is COW the same as Demand paging?

我正在阅读:

虽然我完全理解 COW 是什么,但我对需求分页一无所知,它与 COW 有何不同?我将其视为具有不同名称的 COW 的精确副本和实现。我错了吗?

它们不一样。

请求分页是一种分页机制,您 (OS) 仅在需要的确切时间(在页面错误期间)将所需页面加载到内存 (RAM) 中。这与进行大量预取相反,在预取中,您在需要它们之前加载几页内存,以期将来使用它们。

COW 是写时复制,一种节省内存写入的方法。例如,当进程分叉时,为什么要完整复制父内存?它占用了额外的时间和space。为什么不改为写时复制,这意味着您让两个进程共享内存,将内存标记为只读,然后仅在其中一个进程想要写入该页面时才复制该页面。

请求分页是一种虚拟内存策略。 COW 是共享内存的优化。