generated at
プロセス
メモリ上で実行中のプログラムのinstanceのこと




プロセスの生成
プロセスの複製
プロセスの上書き


参考
プロセスに関する緩い解説
使用言語はPerl
Perl、記述量が少なくてノイズが少ないので例示として良いなmrsekut



プログラムを実行する際、カーネルはプログラムをメモリに読み込む
プログラムの読み込まれたメモリ領域をプロセスに割り当てる
カーネルから見た処理の単位
リソース割当ての対象となる論理的な単位
プロセスは、仮想アドレス空間を持つ
このアドレスを使ってメモリにアクセスする
仮想アドレスはMMUによって、物理アドレスに変換する
各プロセスの仮想アドレス空間は独立している
そのため各プロセスの動作は互いに影響しない

1つのCPU上で同時に実行できるプロセスは1つだけ
そのため、適当な時間で区切って処理するプロセスを入れ替えている

プロセスは、必ず1つのプロセスグループに属する













プロセスの構成
メモリセグメントの各領域が、1つ1つのプロセスに割り当てるってことか?mrsekut






ユーザーに見えている処理
裏で行っている処理
裏で行っているので、実行中に別のコマンドを実行できる
一時休止状態の処理
コマンドに対し cmd-z でサスペンド状態にできる




exec()も結局は、fork後の上書きだから、プロセス全体ではツリー構造は常に保たれる?







並列
各プロセスを複数のCPUに割り当てることで並列処理ができる
各プロセスはメモリ空間が独立している
子プロセスでもにょもにょしても親プロセスに影響を与えないので安全
生成コストが大きい


プロセスを表す構造体 (Unix V6)
スレッドがどうのこうのみたいな話は構造体には現れないのかmrsekut






プロセスの形態
ユニプロセッサ・ユニプログラミング方式
一つのCPU上で、一つの処理を逐次的に行う
バッチ処理のみが可能
ユニプロセッサ・マルチプログラミング方式
マルチスレッド的な?
マルチプロセッサ、マルチプログラミング方式
複数CPUを用いて、並列処理ができる




参考