简介

菜鸟都不写简介

写时复制(Copy on Write)

简单的理解就是在写的,时候才会复制备份数据, 读的的时候不会备份数据。一般的应用场景就是fork函数了。

写时复制的基本思想是,当父进程创建一个子进程的时候,两个进程将会共享相同的页面,这些共享的页面将会被标记为写入拷贝。这就意味着如果这些进程中的任何一个尝试修改共享的页面,就将会创建一个此页面的备份。

image.png
当进程2要修改page3的数据的时候。会复制page3 的数据,然后修改。
image.png

fork中的写时复制

更多关于fork的详细不在这里赘述, 在这里仅仅只了解fork中使用到的写时复制(copy on write)。
由于fork 函数会将父进程全部的复制

参考资料

How does copy-on-write in fork() handle multiple fork?
linux内核写时复制机制源代码解读
Linux fork那些隐藏的开销