操作系统
fork
fork()函数调用成功后,将为子进程申请PCB和用户内存空间.子进程是父进程的副本.在用户空间将复制父进程用户空间所有数据(代码段、数据段、BBS、堆、栈),复制父进程内核空间PCB中的绝大多数信息.子进程从父进程继承下例属性:有效用户、组号、进程组号、环境变量、对文件的执行时关闭标志、信号处理方式设置、信号屏蔽集合、当前工作目录、根目录、文件模式掩码、文件大小限制和打开的文件描述符(特别注意:共用同一文件表项).
lazy copy-onupdate strategy
直接fork的两个进程刚开始的时候,都是指向的同一物理地址。实际的物理内存并没有被拷贝。
而且真正拷贝的单位是按照页大小为单位来拷贝的。也就是,某个页里面的内容改变了,真正拷贝的只会拷贝这个页。