写时复制或简单地COW是一种资源管理技术。它的主要用途之一是在fork系统调用的实现中,在其中共享OS的虚拟内存(页面)。
在像OS这样的UNIX中,fork()系统调用创建了父进程的重复进程,称为父进程。
写时复制背后的想法是,当父进程创建子进程时,这两个进程最初将共享内存中的相同页面,并且这些共享页面将被标记为写时复制,这意味着如果有的话这些过程中的一个将尝试修改共享页面,然后仅创建这些页面的副本,并且该过程将在页面副本上进行修改,因此不会影响其他过程。
假设有一个流程P创建了一个新的流程Q,然后流程P修改了页面3。
下图显示了在过程P修改第3页之前和之后发生的情况。