一般我们运行程序都是Fork一些进程后马上执行exec()加载程序,而fork的实际用的是父进程的堆栈空间,Linux通过Copy On Write技术极大地减少了fork的开销。也就是说子进程共享父进程的堆栈空间。
Copy On Write的含义是只有真正的时候才把数据写到子进程的数据,fork只会把页表复制都子进程,这样父子进程都指向同一个物理内存页,只有再写子进程的时候才会把内存页的内容重新复制一份。
一般我们运行程序都是Fork一些进程后马上执行exec()加载程序,而fork的实际用的是父进程的堆栈空间,Linux通过Copy On Write技术极大地减少了fork的开销。也就是说子进程共享父进程的堆栈空间。
Copy On Write的含义是只有真正的时候才把数据写到子进程的数据,fork只会把页表复制都子进程,这样父子进程都指向同一个物理内存页,只有再写子进程的时候才会把内存页的内容重新复制一份。