欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Copy-On-Write 写时复制

Copy-On-Write 写时复制

2025/10/3 18:10:51 来源:https://blog.csdn.net/LFY20031120/article/details/144833546  浏览:    关键词:Copy-On-Write 写时复制

虚拟内存和物理内存

进程的内存可分为 虚拟内存 和 物理内存

  • 物理内存:就是电脑安装的内存条,如果电脑安装了2GB的内存条,那么系统就用于 0 ~ 2GB 的物理内存空间。
  • 虚拟内存:虚拟内存是使用软件虚拟的,在 32 位操作系统中,每个进程都独占 4GB 的虚拟内存空间。

应用程序使用的是 虚拟内存,比如 C 语言取地址操作符号 & 所得到的地址就是 虚拟内存地址。而 虚拟内存地址 需要映射到 物理内存地址 才能使用,如果使用没有映射的 虚拟内存地址,将会导致 缺页异常

虚拟内存地址 映射到 物理内存地址 如下图所示:

进程A与进程B的相同 虚拟内存地址 映射到不同的 物理内存地址,这就是不同进程的相同虚拟内存地址互不影响的原因。

写时复制

fork的时候,子进程复制父进程的内存是虚拟内存,不是物理内存。

这时候父子的虚拟内存相同,指向的是同一块物理内存,能够节约物理内存资源,页表对应的页表项的属性值会标记该物理内存的权限为只读

 当父进程或者子进程对这块内存发起写操作时,CPU会触发写保护中断(由于违反权限导致的),然后操作系统会在写保护中断函数里进行物理内存的复制,并重新设置其内存映射关系,将父子进程的内存读写权限设置为可读写,最后才对内存进行写操作,这个过程就是写时复制

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com