<目次>
(1) プロセスとは? Linuxの例も交えてご紹介
(1-1) プロセスとは?
(1-2) プロセスの構成要素
(1-3) プロセスの状態遷移
(1) プロセスとは? Linuxの例も交えてご紹介
(1-1) プロセスとは?
Linuxの場合は、「psコマンド」で起動中のプロセスを見る事ができます。特に「-aux」オプションで実行すると全プロセスを表示できます。
$ ps -aux
またgrepコマンドと組み合わせる事で、特定の明細を検索する事もできます。
$ ps -aux | grep [検索したい文言]
(1-2) プロセスの構成要素
(図121)
(1-3) プロセスの状態遷移
(図131)
生成(New/Create) | プロセスを生成する段階です。対象のプログラムがOSにより取得され、プロセス生成がされます。
もう少し詳細には、PCB(※注1)は既に生成されているが、プログラムはメインメモリ(CPUから直アクセス可のメモリ)にはロードされていない状態です。 |
実行可能状態(Ready) | 生成(New/Create)の後の状態で、プロセスが生成されて実行可能な状態です。
システム的には、プロセス生成後にセカンダリメモリ(※注2)からメインメモリに移されて、実行のためにOSからのCPU割当てを待っている(順番待ち)状態です。このステータスは複数のプロセスが同時になる可能性があります。 |
実行状態(Run) | 実行可能状態(Ready)の後の状態で、プロセスが実行中の状態です。
OSにより実行対象のプロセスとして選択され、CPUが割当てされて、CPUにより処理実行されます。CPUの割当ては「ショートタームスケジューラ」(※注3)により行われます。 |
待ち状態(Blocked or wait) | 実行状態(Run)から遷移する可能性のあるステータスで、OSはプロセスを「待ち状態」に遷移させます。例えば、以下のような状況下でこのステータスに変化します。 (例) ・あるリソースの割当てを待っている場合(割当てを待つ) ・I/O操作(例:プリンタ等への要求、ファイル書き込み等)の終了を待っている(完了を待つ) ・ユーザーからの入力を待っている状態の場合(入力を待つ) システム的には、プロセスはメインメモリ上で待機しており、CPUの割当ては一旦解除されています。 |
消滅(Terminated or Completed) | 処理が終了に、OSによりプロセスが終了させられる状態です。
通常は処理が正常終了した状態にこのステータスになりますが、場合によっては異常終了のケースにも、このステータスになる事があります。 システム的にはメインメモリから削除されており、PCB(プロセスの状態情報等)が削除された状態です。 |
中断系(Suspended系) | ①実行可能中断 実行可能状態(Ready)状態だったが、メインメモリの不足等によりセカンダリメモリ(※注2)に移動されて中断している状態です。 ②待ち中断 |
(※注1) PCBは「Program Control Block」の略で、OSがプロセスの「状態」をはじめとするプロセスに関する情報を保持するためのデータ構造の事です。具体的にはプロセスの「状態(state)」、「ID(PID)」、「CPUスケジューリング情報(優先度など)」があります。 (※注2) (※注3) |