在 vfork() 系统调用中不复制页表条目有什么好处?

在 vfork() 系统调用中不复制页表条目有什么好处?

vfork() 系统调用与 fork() 具有相同的效果,只不过不复制父进程的页表条目。如今,有了 copy-on-write 和 child-runs-first 语义,vfork 唯一的好处() 并不复制页表条目。如果有一天 Linux 获得了写时复制页表条目,将不再有任何好处。

这些是 Robert Love 的《Linux 内核开发》一书中的一些内容。我不明白的是,不复制页表条目有什么好处?

还有一行字说:”在copy_process()中,task_struct成员vfork_done被设置为NULL”。

这是什么vfork_done?它的作用是什么?

答案1

好处就是性能。复制页表条目需要这些页表的内存,并且需要 CPU 时间来执行复制。

相关内容