1. 序章

コンピュータシステムは、複数のプログラムを同時に実行します。 これにより、スループットとユーザーエクスペリエンスが向上します。 複数のプログラムを実行するという概念は、オペレーティングシステムのプロセスによって実装されます。

このチュートリアルでは、プロセス制御ブロック(PCB)の概念について説明します。これには、プロセスが機能するための有用な情報が含まれています

2. プロセスコンセプト

プロセスは実行中のプログラムです。 たとえば、Javaアプリケーションを作成してディスクに保存できます。 これは、プログラムおよびパッシブエンティティと見なされます。 ただし、プログラムを実行すると、オペレーティングシステムがJavaプロセスを作成します。 プロセスは実行中の間アクティブなエンティティです。

前の画像は、プロセスとそのコンポーネントを表しています。 左側には、メモリが表示されています。テキストセクションは、メモリの下部オフセットから始まります。 プロセスのヒープおよびスタックセクションは、プロセスのメモリ要件に基づいて大きくなる可能性があります。

3. プロセス制御ブロック

プロセス制御ブロックは、オペレーティングシステムのプロセスを表します。 PCBは、タスク制御ブロックとも呼ばれます。 これは、特定のプロセスに関連付けられた情報のリポジトリです。

次のようなさまざまな情報が含まれています。

3.1.  プロセス状態

プロセス状態は、オペレーティングシステムのプロセスの状態を表します。 プロセスは、に、新規、準備完了、実行中、待機中、または終了ステータスのいずれかになります。

3.2. プログラムカウンター

プロセスには、CPUによって線形に実行されるいくつかの命令が含まれています。 プログラムカウンタ(PC)は、このプロセスで次に実行される命令のアドレスを示します。

3.3. CPUレジスタ

レジスタは、プロセスの状態情報を含むことができる小さなメモリです。 レジスタは、コンピュータアーキテクチャに基づいて、サイズとタイプが異なる場合があります。 それらには、いくつか例を挙げると、アキュムレータ、インデックスレジスタ、条件コード情報、汎用レジスタ、およびスタックポインタが含まれます。

実行中のプロセスで割り込みが発生した場合、CPUレジスタはプロセスの状態情報を格納します。 これにより、スケジューラーがプロセスを再実行するようにスケジュールしたときに、プロセスを続行できます。

3.4. 追加の統計

  • CPUスケジューリング情報:スケジューラーがプロセスの実行をスケジュールします。 CPUがプロセスを実行する基準を決定します。 プロセスには、プロセスの優先度、スケジューリングキュー情報、その他のさまざまなスケジューリングパラメータなどのいくつかのパラメータが含まれています
  • メモリ管理情報:実行中のプロセスにはメモリが必要であり、いくつかのメモリ関連の統計を維持する必要があります。 これらのには、ベースおよび制限レジスタ情報、ページおよびセグメントテーブルなどが含まれます。
  • アカウンティング情報:アカウンティング情報は、さまざまな簿記データを測定します。 使用されたCPU時間、時間制限、アカウント番号、ジョブまたはプロセス番号など。
  • I / Oステータス情報:この情報には、プロセスに割り当てられたI / Oデバイスのリスト、開いているファイルのリストなどが含まれます。

4. コンテキストスイッチにおけるPCBの役割

PCBは、プロセスのコンテキストスイッチで重要な役割を果たします

場合によっては、割り込み信号やオペレーティングシステムコールなどのいくつかの要因が実行中のプロセスを中断し、プロセスがその実行をプリエンプトします。 これが発生すると、オペレーティングシステムは現在の実行統計をプロセスのPCBに保存します。 これにより、プロセスの実行が次回再開されます。

コンテキストスイッチ中に何が起こるかを見てみましょう。

これを分解してみましょう:

  1. 最初に、プロセス P0 が実行されており、中断が発生します
  2. それに応じて、オペレーティングシステムは P0 のコンテキストを保存し、実行を停止します
  3. 次に、オペレーティングシステムは他のプロセス P1 のPCBをロードし、実行を開始します
  4. しばらくすると、P1も割り込みを受け取ります
  5. それに応じて、オペレーティングシステムは P1 のPCBのコンテキストを保存し、実行を停止します
  6. 次に、オペレーティングシステムは P0 のPCBをロードし、前の状態から実行を再開します。

5. 結論

この記事では、プロセスのプロセス制御ブロックについて説明しました。

最初に、プロセスの概念と、オペレーティングシステムのプロセス状態の管理におけるPCBの役割を紹介しました。 次に、プロセス制御ブロックのさまざまなコンポーネントとその役割について説明しました。

最後に、プロセスコンテキストスイッチでのプロセス制御ブロックの役割について説明しました。