0 / 17
プロセスは生成 → 実行可能 → 実行 → 終了の順に進み、実行中に入出力を待つと待ちに移って、また実行可能に戻ります。
この例では、CPUが1つだけの状況で、P1・P2・P3の3つのプロセスがCPUを分け合う様子を示します。CPUが1つなので、実行には一度に1つしか入れません。
「次へ」で1段階ずつ進めるか、右の「再生」で順に見られます。キーボードの ← → でも進められます。
1 / 17
プロセスP1が新しく作られました。プログラムの実行命令を受けて生まれたばかりなので、まだCPUを待つ列にも並んでいません。
2 / 17
OSがプロセスP1を受け入れました。P1はCPUを待つ列(実行可能キュー)に並んで、順番を待ちます。
3 / 17
CPUが空いているので、プロセスP1はすぐにCPUを受け取って実行を始めます。
4 / 17
プロセスP2も新しく作られました。P1と同じく、まだ列には並んでいません。
5 / 17
プロセスP2も列に並びました。でもCPUはP1が使っているので、順番を待たなければなりません。
6 / 17
プロセスP1に与えたCPU使用時間が終わりました。1つのプロセスがCPUを長く占有しないよう、P1はCPUを手放して列の最後に回ります。
7 / 17
列の先頭にいたプロセスP2がCPUを受け取って実行を始めます。
8 / 17
プロセスP2がファイルの読み込みを頼みました。読み終わるまでできることがないので、CPUを手放して待ちで待ちます。
9 / 17
CPUが空いたので、列で待っていたプロセスP1がもう一度CPUを受け取り、さっき止まったところから続けます。
12 / 17
プロセスP2のファイル読み込みが終わりました。でも今はP1がCPUを使っているので、P2はすぐには実行できず、列の最後にもう一度並びます。
13 / 17
プロセスP1がすべての処理を終えて終了しました。CPUが空きます。
14 / 17
列の先頭にいたプロセスP3がCPUを受け取って実行します。
16 / 17
最後に残ったプロセスP2がCPUを受け取り、読み込んだファイルで残りの処理をします。
17 / 17
プロセスP2も終了し、3つのプロセスがすべて終わりました。