美文网首页
linux写时复制技术

linux写时复制技术

作者: lintong | 来源:发表于2015-03-11 20:52 被阅读3444次

第一代Unix系统实现了一种傻瓜式的进程创建:当执行fork系统调用时,内核复制父进程的整个用户空间并把复制得到的那一份分配给子进程。这种行为时非常耗时的,因为它需要完成以下几项任务:

  • 为子进程的页表分配页面
  • 为子进程的页分配页面
  • 初始化子进程的页表
  • 把父进程的页复制到子进程对应的页中

写时复制(copy-on-write)是一种可以推迟甚至避免复制数据的技术内核此时并不是复制整个进程空间,而是让父进程和子进程共享同一个副本。只有在需要写入的时候,数据才会被复制,从而使父进程、子进程拥有各自的副本。也就是说,资源的复制只有在需要写入的时候才进行,在此之前以只读方式共享。这种技术使得对地址空间中的页的复制被推迟到实际发生写入的时候。有时共享页根本不会被写入,例如,fork()后立即调用exec(),就无需复制父进程的页了。fork()实际开销就是复制父进程的页表以及给子进程创建唯一的PCB。这种优化可以避免复制大量根本就不会使用的数据。

相关文章

  • linux写时复制技术

    第一代Unix系统实现了一种傻瓜式的进程创建:当执行fork系统调用时,内核复制父进程的整个用户空间并把复制得到的...

  • 15. Docker引擎 - Docker与Btrfs实践

    Btrfs是下一代写时复制文件系统, 支持很多高级存储技术, 使得它非常适合Docker, Btrfs在Linux...

  • 写时复制技术(详解版)

    我们知道了一个进程如何采用请求调页,仅调入包括第一条指令的页面,从而能够很 快开始执行。然而,通过系统调用 for...

  • Linux0.11缓冲区机制详解

    相关阅读(点击即可阅读哦~):Linux0.11写时复制机制详解LINUX0.11信号机制Linux0.11共享内...

  • 写时复制

    简介 写入时复制是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者同时请求相同资源(如内存或磁盘上...

  • 写时复制

    现在有一个父进程P1,这是一个主体,那么它是有灵魂也就身体的。现在在其虚拟地址空间(有相应的数据结构表示)上有:正...

  • 写时复制

    写时复制 在swift中,像Array、Dictionary、Set等集合类型都是通过写时复制(copy-on-w...

  • 写时复制(COW)技术与其在Linux、Java中的应用

    脑子有些累,继续写基础文。 什么是写时复制 中文维基上给出的定义基本准确,抄录如下。 写入时复制(英语:Copy-...

  • Linux0.11写时复制机制详解

    当执行fork时,子进程除了通过get_free_page申请到一个页面用来存放内核栈和任务数据结构,子进程复制父...

  • 同步技术新大陆--写时复制技术(CopyOnWriteArray

    一名优秀的Android开发,需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样~。 1、写时复制思...

网友评论

      本文标题:linux写时复制技术

      本文链接:https://www.haomeiwen.com/subject/rzcbxttx.html