2017-04-02 4 views
0

forkシステムコールは、親から重複したプロセスを作成します。子プロセスが親から同じ重複プロセスを作成する場合、親プロセスが実行していたのと同じカーネル・コードの実行を開始しますか?それとも、ユーザー空間での実行を開始しますか?フォーク中に、正確に子供の実行が開始されますか?

+0

私はforkがユーザー空間関数であることを知っています。だからあなたはどのカーネルスペースコードを意味するのですか? – Chris

答えて

2

これは実装に依存することになります。理論的には、子プロセスは、フォーク例外ハンドラの終了時にカーネルモードで、または例外ハンドラがユーザモードに戻ると、ラッパー関数内で開始できます。つまり、フォーク例外ハンドラ(カーネルモード)の末尾で子プロセスが実行されるようにforkを実装する方が一般的に簡単です。

関連する問題