フォークはプロセスのメモリレイアウトにどのような影響を与えますか?

フォークはプロセスのメモリレイアウトにどのような影響を与えますか?

次の図は、プロセスのメモリレイアウトを示しています。

:

誰かforks()と新しい人が割り当てられたら、task_structプロセスのアドレスはどうなりますか?つまり、プロセスがあると仮定すると、次の図が維持されます。それではフォークを作るとしましょう。どうしたの?

ベストアンサー1

分岐後、同じプログラムのコピーが2つ作成されます。カーネルはすべてをコピーできます。アドレス空間または書き込み中のコピー。後者の場合、テキストとデータ部分は常に2つのプロセスで共有でき、子プロセスがスタックを変更する必要がある場合はスタックがコピーされます。

おすすめ記事