vfork()システムコールは、親プロセスのページテーブルエントリがコピーされないことを除いて、fork()と同じ効果を持ちます。今日の書き込み時にコピーと子を実行する最初の意味スキームを使用するvfork()の唯一の利点は、ページテーブルエントリをコピーしないことです。ある日、Linuxが書き込み中にコピーページテーブルエントリを取得すると、これ以上の利点はなくなります。
Robert Loveの著書「Linux Kernel Development」の内容の一部です。私が理解していないのは、ページテーブルエントリをコピーしないとどのような利点がありますか?
次のような別の行があります。copy_process() では、task_struct メンバ vfork_done が NULL に設定されます。」。
これは何ですか?vfork_done?それは何をしますか?
答え1
利点はパフォーマンスです。ページテーブルエントリをコピーするには、これらのページテーブルのメモリが必要であり、コピーを実行するためにCPU時間が必要です。