プロセスとプログラムの間には多対1の関係があります。つまり、1つのプログラムが複数のプロセスを呼び出すことができる、つまり複数のプロセスが同じプログラムの一部になることができます。
比較表
比較基準 | プログラム | プロセス |
---|---|---|
基本 | プログラムは命令の集まりです。 | プログラムが実行されるとき、それはプロセスとして知られています。 |
自然 | 受動的 | アクティブ |
寿命 | より長いです | 限られた |
必要なリソース | プログラムはいくつかのファイルでディスクに保存され、他のリソースを必要としません。 | プロセスは、CPU、メモリアドレス、ディスク、I / Oなどのリソースを保持します。 |
プログラムの定義
プログラムは、簡単に言えば、システムアクティビティと見なすことができます。 バッチ処理システムではこれらはジョブの実行と呼ばれ、リアルタイムオペレーティングシステムではタスクまたはプログラムと呼ばれます。 ユーザは、いくつかの技術を使用して、オペレーティングシステムがメモリ管理のようなそれ自体の内部のプログラムされた活動を容易にする場合に複数のプログラムを実行することができる。
プログラムは受動的な実体であり 、例えば実行されるべき命令のグループを収容するファイル(実行可能ファイル)である。 それはそれ自身では何の動作も実行しないのでそのように呼ばれ、それで指定された動作を実現するために実行されなければなりません。
プログラムのアドレス空間は、命令、データ、およびスタックで構成されています。 PがPの実行を実現するために書いているプログラムであると仮定すると、オペレーティングシステムはPのアドレス空間を収容するためにメモリを割り当てる。
プロセスの定義
プロセスはプログラムの実行です。 それは活動的な実体と見なされ、プログラムで指定されたアクションを実現します。 複数のプロセスを同じプログラムに関連付けることができます。 それはプログラムカウンタ、スタック、状態等を含むPCB(プロセス制御ブロック)を通してオペレーティングシステムの活動を処理する 。プログラムカウンタは後で実行されるべき命令の次のシーケンスを記憶する。
管理タスクを実行するには、処理、メモリ、I / Oリソースなどのリソースが必要です。 プログラムの実行中に、プログラムやプロセスをプログラムとは異なるものにするプロセッサまたはI / O操作を引き起こす可能性があります。
例からこれを理解しましょう。 Cプログラムを書いています。 プログラムをファイルに書き込んで保存している間、それは単なるスクリプトであり、何も実行しませんが、実行されるとプロセスに変わりますので、プロセスは本質的に動的です。 現在のマシンでは複数のプロセス間でリソースを共有することが採用されていますが、実際には単一のプロセッサが複数のプロセスに分散されています。
プログラムとプロセスの主な違い
- プログラムは、実行される順序付き操作の明確なグループです。 一方、実行中のプログラムのインスタンスはプロセスです。
- プログラムの性質は、実行されるまで何もしないので受動的ですが、プロセスは実行中のプログラムのインスタンスであり、特定のアクションを実行するため、プロセスは動的または能動的です。
- プログラムは手動で削除されない限りメモリに保存されるため、プログラムの寿命は長くなります。一方、プロセスはタスクの完了後に終了するため、寿命が短くなります。
- プロセスの場合、リソース要件ははるかに高くなります。 正常に実行するには、処理、メモリ、I / Oリソースが必要になる可能性があります。 対照的に、プログラムは記憶のためにメモリを必要とするだけです。
結論
プログラムとプロセスは関連性がありますが、異なります。 プログラムは、ディスクに格納された単なるスクリプトであるか、プロセスの前の段階のように見えます。 反対に、プロセスは実行中のプログラムのイベントです。