vfork() システムコールからページテーブルエントリをコピーしない場合、どのような利点がありますか?

vfork() システムコールからページテーブルエントリをコピーしない場合、どのような利点がありますか?

vfork()システムコールは、親プロセスのページテーブルエントリがコピーされないことを除いて、fork()と同じ効果を持ちます。今日の書き込み時にコピーと子を実行する最初の意味スキームを使用するvfo​​rk()の唯一の利点は、ページテーブルエントリをコピーしないことです。ある日、Linuxが書き込み中にコピーページテーブルエントリを取得すると、これ以上の利点はなくなります。

Robert Loveの著書「Linux Kernel Development」の内容の一部です。私が理解していないのは、ページテーブルエントリをコピーしないとどのような利点がありますか?

次のような別の行があります。copy_process() では、task_struct メンバ vfork_done が NULL に設定されます。」。

これは何ですか?vfork_done?それは何をしますか?

答え1

利点はパフォーマンスです。ページテーブルエントリをコピーするには、これらのページテーブルのメモリが必要であり、コピーを実行するためにCPU時間が必要です。

関連情報