加载中...

写时复制(Copy-on-Write,简称 COW)是操作系统中一种延迟资源复制的优化策略:多个使用者先共享同一份物理内存,只有当某一方尝试写入时,内核才为其复制出私有副本。
以 Unix 的 fork 为例,子进程创建时并不复制父进程的全部地址空间,而是让父子进程的页表指向相同物理页,并把这些页标记为只读。任一进程写入时触发缺页异常,内核在异常处理中分配新页、复制内容并更新页表,写入方随后在私有副本上继续执行。
COW 广泛用于 fork 加速、虚拟内存管理、文件系统快照(如 Btrfs、ZFS)、以及某些编程语言的字符串与容器实现。Redis 的 RDB 持久化也依赖 fork 的 COW 特性在后台生成快照。
优点是显著减少不必要的内存复制、降低创建进程的开销;缺点是写入密集场景会集中触发缺页与复制,可能造成延迟抖动,且共享页的引用计数管理增加了内核复杂度。

登录 后参与讨论
暂无讨论,来发表第一条评论吧