Operating-system-os-process-scheduling-qa7

提供:Dev Guides
移動先:案内検索

OSプロセススケジューリングに関するQ&A#7

  • 質問:*擬似並列処理について説明します。 並列処理の扱いを容易にするプロセスモデルを説明します。
  • 回答:*最新のコンピューターはすべて、同時に多くのことを実行できます。 たとえば、コンピューターはディスクから読み取り、ユーザープログラムの実行中にプリンターで印刷することができます。 マルチプログラミングシステムでは、CPUはプログラムからプログラムに切り替わり、各プログラムをほんの数秒間実行します。

CPUは常に1つのプログラムのみを実行しています。 CPUの速度は非常に高いため、1秒間に複数のプログラムで動作できます。 ユーザーに並列性の錯覚を与えます。 複数のプロセスが同時に処理されています。 プログラム間のCPUのこの迅速な切り替えは、並列性の錯覚を与え、疑似並列性と呼ばれます。 複数の並列アクティビティを追跡し、並列処理を容易にすることは非常に難しいため、オペレーティングシステムの設計者はプロセスモデルを進化させました。

プロセスモデル

プロセスモデルでは、コンピューター上で実行可能なすべてのソフトウェア(オペレーティングシステムを含む)が一連のプロセスに編成されます。 プロセスは単なる実行プログラムであり、プログラムカウンター、レジスター、変数の現在の値が含まれます。 各プロセスには独自の仮想CPUがあると見なされます。 実際のCPUは、プロセスごとに前後に切り替わります。 プログラムからプログラムへのCPU切り替えを追跡するには、(擬似)並列で実行されているプロセスのコレクション/数を考えると便利です。 急速な切り替えは、実際にはマルチプログラミングです。

1つのプログラムカウンタープロセススイッチ

1つのプログラムカウンタープロセススイッチ

この図は、4つのプログラムのマルチプログラミングを示しています。

マルチプログラミング

4つの独立した順次プロセスの概念モデル。

独立した順次プロセス

常にアクティブなプログラムは1つだけです。 プロセスが計算を実行するレートは均一ではない場合があります。 ただし、通常、プロセスは異なるプロセスの相対速度の影響を受けません。