Operating-system-os-processes
オペレーティングシステム-プロセス
プロセス
プロセスは基本的に実行中のプログラムです。 プロセスの実行は、順次に進行する必要があります。
'_プロセスは、システムに実装される基本的な作業単位を表すエンティティとして定義されます。_
簡単に言えば、コンピュータープログラムをテキストファイルに記述し、このプログラムを実行すると、プログラムで言及されているすべてのタスクを実行するプロセスになります。
プログラムがメモリにロードされてプロセスになると、プログラムは4つのセクション(スタック、ヒープ、テキスト、データ)に分割できます。 次の画像は、メインメモリ内のプロセスの簡略化されたレイアウトを示しています-
S.N. | Component & Description |
---|---|
1 |
Stack プロセススタックには、メソッド/関数パラメーター、戻りアドレス、ローカル変数などの一時データが含まれます。 |
2 |
Heap これは、実行時にプロセスに動的に割り当てられるメモリです。 |
3 |
Text これには、プログラムカウンタの値とプロセッサのレジスタの内容で表される現在のアクティビティが含まれます。 |
4 |
Data このセクションには、グローバル変数と静的変数が含まれます。 |
プログラム
プログラムは、1行または数百万行のコードの一部です。 コンピュータプログラムは通常、プログラミング言語でコンピュータプログラマーによって書かれています。 たとえば、ここにCプログラミング言語で書かれた簡単なプログラムがあります-
#include <stdio.h>
int main() {
printf("Hello, World! \n");
return 0;
}
コンピュータープログラムは、コンピューターによって実行されると特定のタスクを実行する命令の集まりです。 プログラムをプロセスと比較すると、プロセスはコンピュータープログラムの動的インスタンスであると結論付けることができます。
明確に定義されたタスクを実行するコンピュータープログラムの一部は、*アルゴリズム*と呼ばれます。 コンピュータプログラム、ライブラリ、および関連データの集まりは、「ソフトウェア」と呼ばれます。
プロセスライフサイクル
プロセスが実行されると、さまざまな状態を通過します。 これらの段階はオペレーティングシステムによって異なる場合があり、これらの状態の名前も標準化されていません。
一般に、プロセスは一度に次の5つの状態のいずれかになります。
S.N. | State & Description |
---|---|
1 |
Start これは、プロセスが最初に開始/作成されたときの初期状態です。 |
2 |
Ready プロセスはプロセッサに割り当てられるのを待っています。 準備ができたプロセスは、オペレーティングシステムによって実行されるようにプロセッサが割り当てられるのを待っています。 プロセスは、 Start 状態の後、または実行中にスケジューラによって中断され、CPUを他のプロセスに割り当てるときにこの状態になる場合があります。 |
3 |
Running OSスケジューラによってプロセスがプロセッサに割り当てられると、プロセスの状態は実行中に設定され、プロセッサはその命令を実行します。 |
4 |
Waiting ユーザー入力の待機やファイルが利用可能になるのを待機するなど、リソースを待機する必要がある場合、プロセスは待機状態に移行します。 |
5 |
Terminated or Exit プロセスの実行が終了するか、オペレーティングシステムによって終了されると、プロセスは終了状態に移行し、メインメモリからの削除を待機します。 |
プロセス制御ブロック(PCB)
プロセス制御ブロックは、プロセスごとにオペレーティングシステムによって維持されるデータ構造です。 PCBは整数のプロセスID(PID)で識別されます。 PCBは、以下の表にリストされているようにプロセスを追跡するために必要なすべての情報を保持します-
S.N. | Information & Description |
---|---|
1 |
Process State プロセスの現在の状態、つまり、準備ができているか、実行中か、待機中かなど。 |
2 |
Process privileges これは、システムリソースへのアクセスを許可/禁止するために必要です。 |
3 |
Process 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は、その存続期間を通してプロセスに対して維持され、プロセスが終了すると削除されます。