fork

後述のスレッドも全く同じdo_fork関数で生成される。異なる点は、この関数が呼び出すときの引数だけである。

do_fork(フラグ, プロセスコンテキスト)
        空きtask_structを一つ確保(alloc_task_struct関数)
        プロセスIDを付ける(get_pid関数)
        task_structの各メンバの初期化
        ファイルディスクリプタテーブルのコピー(copy_files関数)
        カレントディレクトリ、umask等のコピー(copy_fs関数)
        シグナル情報のコピー(copy_sighand関数)
        親プロセスコンテキストのコピー(copy_thread関数)
        仮想空間をCopy-On-Writeで複製コピー(copy_mm関数)
        生成した子プロセスをRUNQに繋ぐ(wake_up_process関数)

(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST
1