オペレーティング・システム講座

Multisoft-labのホーム    ご意見・ご感想等

プロセス

概要

 プロセスは一つのメモリ空間とプログラムを実行するスレッドからなります。 そして、プロセスにはあたかもそれ自体がCPU、メモリ、入出力などのコンピュータ資源を占有しているように見えます。

 ところが通常は、コンピュータには複数のプロセスが存在していて、CPUやメモリなどを共有しているのです。 このような機構はオペレーティング・システムが各プロセスにコンピュータ資源を、 分割供給することで可能になっています。

以下では、オペレーティング・システムが複数のプロセスをどのように管理するかを解説します。


プロセスの状態

 プロセスには実行状態、実行可能状態、そして待ち状態の3つの状態があります。

実行状態

 プロセスにCPUが割当てられて、プログラムを実行している状態です。 実行状態にあるプロセスの数は、CPUの数以下です。

実行可能状態

 CPUの割当てが可能な状態です。

待ち状態

 入出力待ち、またはその他の待ち状態です。


プロセスの切替え

 プロセスは3つの状態を、図1のように遷移させることでプロセスの切替えを行っています。

プロセスの状態遷移
(図1)プロセスの状態遷移

 実行状態にあるプロセスは、一定時間CPUを割当てられると、 CPUを解放し、他の実行可能プロセスに譲らなければなりません。

 また、実行状態にあるプロセスが実行中に入出力待ちになったとき、 そのプロセスはCPUを解放して待ち状態になります。 すると、オペレーティング・システムは、実行可能なプロセスを選んでCPUを割当てます。

 なお、入出力待ちであったプロセスは、割り込みの発生を合図に、 実行可能状態に遷移します。そして、CPUの割当てを待つことになります。


プロセス・スケジューリング

 スケジューリングとは、どのような順序でプロセスにCPUを割当てるかを決定する作業です。 もし、プロセスがすべて同じ性質のものであれば、公平にCPUを割当てるのは難しくないでしょう。 しかし、プロセスにはバックグラウンドで実行するものや、入出力を担当するものなど、様々な種類があります。 以上を踏まえた上で、スケジューリングの目標を挙げると、次のようになります。

  • 平等なCPUの割当て
  • 処理効率の向上
  • 応答時間の短縮
  • 応答時間の予測可能性

 以下では、これらの目標に近いスケジューリング方式を取り上げます。

ラウンドロビン

 公平なCPU割当てと処理効率の向上を実現する方法としては、図2に示すラウンドロビン方式があります。 この方式は、プロセスを一定時間ごとに切替える方式で、 どのプロセスにも平等にCPUが割当てられます。

ラウンドロビン
(図2)ラウンドロビン

 ところがこのままだと、キーボード入力などに対する応答性は望めません。 そこで、次のようなラウンドロビンを改良したスケジューリング方式が使われます。

多重レベルフィードバック・スケジューリング

 多重レベルフィードバック方式は、プロセスに優先度の概念を導入して、 優先度ごとに待ち行列を設けています(図3)。

多重レベルフィードバック
(図3)多重レベルフィードバック

 入出力待ちなどで、一定時間をCPUの占有に費やさないプロセスは、 優先度レベルが一つ高い待ち行列に投入されます。 つまり、このようなプロセスは優先度が高くなるため、応答性が良くなります。 こうして、応答時間の短縮も可能になるのです。




参考文献

 清水謙多郎著『オペレーティング・システム』情報処理入門コース,岩波書店(1992)


Multisoft-labのホーム    ご意見・ご感想等の受付


Copyright © 2004 Multisoft-lab   All rights reserved.