Operating-system-os-processes

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

オペレーティングシステム-プロセス

プロセス

プロセスは基本的に実行中のプログラムです。 プロセスの実行は、順次に進行する必要があります。

'_プロセスは、システムに実装される基本的な作業単位を表すエンティティとして定義されます。_

簡単に言えば、コンピュータープログラムをテキストファイルに記述し、このプログラムを実行すると、プログラムで言及されているすべてのタスクを実行するプロセスになります。

プログラムがメモリにロードされてプロセスになると、プログラムは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は、その存続期間を通してプロセスに対して維持され、プロセスが終了すると削除されます。