[[PageNavi(internal22-navi)]]
{{{ comment
h2w-title:fork
}}}
== fork == #SECTION02131000000000000000
後述のスレッドも全く同じdo_fork関数で生成される。異なる点は、この関数が呼び出すときの引数だけである。
{{{
do_fork(フラグ, プロセスコンテキスト)
空きtask_structを一つ確保(alloc_task_struct関数)
task_struct登録テーブルの空きスロットを得る(find_empty_process関数)
プロセス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 [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1
[[PageNavi(internal22-navi)]]