オペレーティングシステム-プロセス
処理する
プロセスは基本的に実行中のプログラムです。プロセスの実行は、順次進行する必要があります。
プロセスは、システムに実装される作業の基本単位を表すエンティティとして定義されます。
簡単に言うと、コンピュータプログラムをテキストファイルで記述し、このプログラムを実行すると、プログラムに記載されているすべてのタスクを実行するプロセスになります。
プログラムがメモリにロードされてプロセスになると、スタック、ヒープ、テキスト、データの4つのセクションに分割できます。次の画像は、メインメモリ内のプロセスの簡略化されたレイアウトを示しています-
SN | コンポーネントと説明 |
---|---|
1 | Stack プロセススタックには、メソッド/関数パラメータ、リターンアドレス、ローカル変数などの一時データが含まれています。 |
2 | Heap これは、実行時にプロセスに動的に割り当てられたメモリです。 |
3 | Text これには、プログラムカウンタの値とプロセッサのレジスタの内容によって表される現在のアクティビティが含まれます。 |
4 | Data このセクションには、グローバル変数と静的変数が含まれています。 |
プログラム
プログラムは、1行または数百万行のコードです。コンピュータプログラムは通常、プログラミング言語でコンピュータプログラマによって書かれています。たとえば、これはCプログラミング言語で書かれた簡単なプログラムです-
#include <stdio.h>
int main() {
printf("Hello, World! \n");
return 0;
}
コンピュータプログラムは、コンピュータによって実行されたときに特定のタスクを実行する命令のコレクションです。プログラムとプロセスを比較すると、プロセスはコンピュータプログラムの動的インスタンスであると結論付けることができます。
明確に定義されたタスクを実行するコンピュータプログラムの一部は、 algorithm。コンピュータプログラム、ライブラリ、および関連データのコレクションは、software。
プロセスのライフサイクル
プロセスが実行されると、さまざまな状態を通過します。これらのステージはオペレーティングシステムによって異なる場合があり、これらの状態の名前も標準化されていません。
一般に、プロセスは一度に次の5つの状態のいずれかを持つことができます。
SN | 状態と説明 |
---|---|
1 | Start これは、プロセスが最初に開始/作成されたときの初期状態です。 |
2 | Ready プロセスはプロセッサに割り当てられるのを待っています。レディプロセスは、実行できるように、オペレーティングシステムによってプロセッサが割り当てられるのを待っています。プロセスは後にこの状態になる可能性がありますStart 状態または実行中にスケジューラーによって中断され、CPUを他のプロセスに割り当てます。 |
3 | Running OSスケジューラによってプロセスがプロセッサに割り当てられると、プロセスの状態が実行に設定され、プロセッサがその命令を実行します。 |
4 | Waiting ユーザー入力の待機やファイルが使用可能になるのを待機するなど、リソースを待機する必要がある場合、プロセスは待機状態に移行します。 |
5 | Terminated or Exit プロセスが実行を終了するか、オペレーティングシステムによって終了されると、プロセスは終了状態に移行し、メインメモリから削除されるのを待ちます。 |
プロセス制御ブロック(PCB)
プロセス制御ブロックは、すべてのプロセスについてオペレーティングシステムによって維持されるデータ構造です。PCBは、整数プロセスID(PID)によって識別されます。PCBは、以下の表にリストされているように、プロセスを追跡するために必要なすべての情報を保持します。
SN | 情報と説明 |
---|---|
1 | Process State プロセスの現在の状態、つまり、準備ができているか、実行中か、待機中かなど。 |
2 | Process privileges これは、システムリソースへのアクセスを許可/禁止するために必要です。 |
3 | Process ID オペレーティングシステムの各プロセスの一意のID。 |
4 | Pointer 親プロセスへのポインタ。 |
5 | Program Counter プログラムカウンタは、このプロセスで実行される次の命令のアドレスへのポインタです。 |
6 | CPU registers 実行状態で実行するためにプロセスを格納する必要があるさまざまなCPUレジスタ。 |
7 | CPU Scheduling Information プロセスの優先順位およびプロセスのスケジュールに必要なその他のスケジュール情報。 |
8 | Memory management information これには、オペレーティングシステムが使用するメモリに応じて、ページテーブル、メモリ制限、セグメントテーブルの情報が含まれます。 |
9 | Accounting information これには、プロセスの実行に使用されるCPUの量、時間制限、実行IDなどが含まれます。 |
10 | IO status information これには、プロセスに割り当てられたI / Oデバイスのリストが含まれます。 |
PCBのアーキテクチャは、オペレーティングシステムに完全に依存しており、オペレーティングシステムごとに異なる情報が含まれている場合があります。これはPCBの簡略図です-
PCBは、その存続期間を通じてプロセスに対して維持され、プロセスが終了すると削除されます。