PCBの意味と機能を簡単に説明してください

データを含む各プログラムを同時実行に参加させるには、プロセス制御ブロックと呼ばれる特別なデータ構造をオペレーティングシステムで構成する必要があります(PCB、プロセス制御ブロック)。 プロセスとPCBの間にはXNUMX対XNUMXの対応があり、ユーザープロセスを変更することはできません。

ipcb

プロセス制御ブロックPCBの役割:

システムの記述とプロセスの操作の管理を容易にするために、データ構造は、OS-プロセス制御ブロックPCB(プロセス制御ブロック)のコア内の各プロセスに対して具体的に定義されます。 プロセスエンティティの一部として、PCBは、プロセスの現在の状況を記述し、プロセスの操作を管理するためにオペレーティングシステムが必要とするすべての情報を記録します。 これは、オペレーティングシステムで最も重要な記録データ構造です。 PCBの役割は、マルチプログラム環境で独立して実行できないプログラム(データを含む)を、他のプロセスと同時に実行できるプロセスである、独立して実行できる基本ユニットにすることです。

(2)PCBは間欠動作モードを実現できます。 マルチプログラム環境では、プログラムはストップアンドゴー間欠動作モードで実行されます。 プロセスがブロッキングのために中断された場合、プロセスは実行時にCPUサイト情報を保持する必要があります。 PCBを取得した後、システムは中断されたプロセスのPCBにCPUサイト情報を保存して、プロセスの再実行がスケジュールされたときにCPUサイトが復元されたときに使用できます。 したがって、マルチプログラム環境では、従来の静的プログラムとして、自身の運用サイトを保護または保存する手段がないため、運用結果の再現性を保証できないことが再度明らかになります。 、したがって、その操作を失います。 意義。

(3)PCBは、プロセス管理に必要な情報を提供します。 スケジューラーがプロセスの実行をスケジュールすると、プログラムの開始アドレスポインターと、メモリまたは外部ストレージ内のプロセスのPCBに記録されたデータに従って、対応するプログラムとデータのみを見つけることができます。 実行中、ファイルにアクセスする必要がある場合システム内のファイルまたはI / Oデバイスも、PCB内の情報に依存する必要があります。 さらに、PCBのリソースリストに従って、プロセスに必要なすべてのリソースを学習できます。 プロセスのライフサイクル全体を通して、オペレーティングシステムは常にPCBに従ってプロセスを制御および管理していることがわかります。

(4)PCBは、プロセスのスケジューリングに必要な情報を提供します。 実行のスケジュールを設定できるのは準備完了状態のプロセスのみであり、PCBは、プロセスの状態に関する情報を提供します。プロセスが準備完了状態の場合、システムはそれをプロセス準備完了キューに挿入し、スケジューラーがスケジュールするのを待ちます。 ; さらに、スケジューリング時にプロセスに関する他の情報を知る必要があることがよくあります。 たとえば、優先度スケジューリングアルゴリズムでは、プロセスの優先度を知る必要があります。 一部のより公平なスケジューリングアルゴリズムでは、プロセスの待機時間と実行されたイベントも知る必要があります。

(5)PCBは、他のプロセスとの同期と通信を実現します。 プロセス同期メカニズムは、さまざまなプロセスの協調動作を実現するために使用されます。 セマフォメカニズムを採用する場合は、同期に対応するセマフォを各プロセスで設定する必要があります。 PCBには、プロセス通信用の領域または通信キューポインタもあります。

プロセス制御ブロック内の情報:

プロセス制御ブロックには、主に次の情報が含まれています。

(1)プロセス識別子:プロセス識別子は、プロセスを一意に示すために使用されます。 プロセスには通常、次のXNUMX種類の識別子があります。①外部識別子。 ユーザープロセスがプロセスにアクセスしやすくするために、プロセスごとに外部識別子を設定する必要があります。 これは作成者によって提供され、通常は文字と数字で構成されます。 プロセスの家族関係を説明するために、親プロセスIDと子プロセスIDも設定する必要があります。 さらに、プロセスを所有するユーザーを示すためにユーザーIDを設定できます。 ②内部識別子。 システムによるプロセスの使用を容易にするために、OS内のプロセスに内部識別子が設定されます。つまり、各プロセスには一意のデジタル識別子が与えられます。これは通常、プロセスのシリアル番号です。

(2)プロセッサの状態:プロセッサの状態情報は、プロセッサのコンテキストとも呼ばれ、主にプロセッサのさまざまなレジスタの内容で構成されます。 これらのレジスタには、次のものが含まれます。①ユーザープログラムからアクセスでき、情報を一時的に格納するために使用される、ユーザー可視レジスタとも呼ばれる汎用レジスタ。 ほとんどのプロセッサには、8〜32個の汎用レジスタがあります。 RISC構造のコンピューターでは100を超える場合があります。 ②次にアクセスする命令のアドレスを格納する命令カウンタ。 ③プログラムステータスワードPSW。条件コード、実行モード、割り込みマスクフラグなどのステータス情報が含まれます。 ④ユーザースタックポインタ。これは、各ユーザープロセスにXNUMXつまたは複数の関連するシステムスタックがあり、プロセスとシステムコールのパラメータおよびコールアドレスを格納するために使用されることを意味します。 スタックポインタはスタックの最上位を指します。 プロセッサが実行状態にあるとき、処理されている情報の多くはレジスタに配置されます。 プロセスを切り替えるときは、プロセッサの状態情報を対応するPCBに保存して、プロセスが再実行されたときにブレークポイントから実行を続行できるようにする必要があります。

(3)プロセススケジューリング情報:OSがスケジューリングを行う場合、プロセスのステータスとプロセススケジューリングに関する情報を理解する必要があります。 これらの情報は次のとおりです。①プロセスのステータス。プロセスの現在のステータスを示します。これは、プロセスのスケジューリングとスワッピングの基礎として使用されます。②プロセスの優先度は、プロセッサを使用するプロセスの優先度レベルを表すために使用される整数です。 優先度の高いプロセスが最初にプロセッサを取得する必要があります。 ③使用するプロセススケジューリングアルゴリズムに関連する、プロセススケジューリングに必要なその他の情報。たとえば、プロセスがCPUを待機している時間の合計、プロセスが実行された時間の合計など。 ④イベントとは、プロセスが実行状態からブロッキング状態に変化するのを待つイベント、つまりブロッキングの原因を指します。

(4)プロセス制御情報:プロセス制御に必要な情報を指します。これには、次のものが含まれます。①プログラムとデータのアドレス、プログラムのメモリまたは外部メモリアドレス、およびプロセスエンティティ内のデータ。プロセスが実行されるときに実行します。 、プログラムとデータはPCBから見つけることができます。 ②メッセージキューポインタ、セマフォなど、同期とプロセス通信に必要なメカニズムであるプロセス同期と通信メカニズムは、PCB全体または一部に配置できます。 ③リソースリスト。プロセスの動作中にプロセスが必要とするすべてのリソース(CPUを除く)がリストされ、プロセスに割り当てられたリソースのリストもあります。 ④リンクポインタ。プロセス(PCB)を示します。キュー内の次のプロセスのPCBの最初のアドレス。