【MIT6.S081】Lab5 copy-on-write fork
为什么我们需要copy on write 通过xv6的实验指导书,我们可以知道: xv6中的fork()系统调用将父进程的所有用户空间内存复制到子进程中。如果父进程所使用的页数很大,复制可能需要很长时间,而这样的复制操作经常是没有用的:fork()之后通常是子进程中的exec(),这会丢弃复制的内存而不是使用它们。 那么,我们是不是可以在子进程刚创建时将其页表的映射到父进程的物理页,而在其需要对内存进行写操作时再重新分配内存呢?没错,这就是通过copy on write(写时复制)技术来进行优化。 该实验的代码实现见:仓库commit ...