プログラムとプロセスの主な違いは、プログラムはCPUに特定のタスクを実行させるための命令セットであるのに対し、プロセスは実行中のプログラムであることです。
オペレーティングシステムは、ユーザーとハードウェアの間のインターフェイスです。
オペレーティングシステムの中核はカーネルです。
カーネルは、メモリ管理、プロセス管理、ファイル処理、IOデバイス処理など、複数の重要なタスクを実行する。
プログラムとプロセスは、オペレーティングシステムに関連する2つの用語です。
プログラムは命令のセットであり、プロセスは実行中のプログラムです。
プログラムとは
プログラムとは、CPUが実行すべき処理を説明した命令の集まりです。
また、プログラムを書く際には、アルゴリズムに従って書くことが、プログラムの効率を上げるために重要です。
なお、プログラマーとは、コンピュータのプログラムを書くことができる人のことです。
プログラミング言語には様々なものがあります。
大きく分けて、高級言語と低級言語の2種類があります。
高水準言語は、英語と同じような構文で書かれている。
プログラマーはその命令を容易に理解し読むことができるが、CPUはそれを理解できない。
そのため、高水準のソースコードを、機械が読んで理解できるマシンコードに変換する必要がある。
Java、C、C++、Python、PHPなどが一般的な高水準プログラミング言語です。
低水準プログラミング言語は、高水準言語の1つ下、機械語の1つ上のレベルの言語です。
高水準言語よりもハードウェアレベルに近い。
低レベル言語でプログラムを書くためには、プログラマーはコンピュータアーキテクチャを十分に理解している必要がある。
一般的な低レベル言語の1つにアセンブリ言語があります。
プロセスとは
プロセスとは、実行中のプログラムのことです。
プロセスは次々と実行される。
プログラマーは、テキストエディタや統合開発環境(IDE)上でプログラミング言語を使ってプログラムを作成する。
このプログラムを実行すると、そのプログラムはプロセスになる。
プログラムで定義されたすべてのタスクを実行する。
実行だけでなく、プロセスの作成、削除、スケジュールも可能である。
プログラムを実行すると、プロセスはメインメモリにロードされる。
メインメモリ内のプロセスには、スタック、ヒープ、データ、テキストが含まれます。
これらは次のとおりです。
スタック – ローカル変数、リターンアドレスなど一時的な情報が格納されている。
ヒープ – 実行時にプロセスへのメモリ割り当てを可能にする。
データ – 静的変数とグローバル変数で構成される
テキスト – プログラムカウンタの値やプロセッサのレジスタの内容が格納されています。
プログラムとプロセスの違い
定義
プログラムとは、コンピュータで実行されたときに特定のタスクを実行する命令の集まりであり、プロセスとは、実行されているコンピュータ・プログラムのインスタンスです。
したがって、これがプログラムとプロセスの主な違いです。
ライフタイム
また、寿命もプログラムとプロセスの大きな違いです。
プログラムはプロセスより寿命が長い。
リソース
ハードディスクにはプログラムが格納されており、プログラムは資源を必要としませんが、プロセスはメモリ、IOデバイス、CPUなどの資源を必要とします。
ここもプログラムとプロセスの違いです。
結論
LinuxやWindowsなどのOSでは、プログラムとプロセスという2つの用語があります。
プログラムとプロセスの主な違いは、プログラムはCPUに特定のタスクを実行させるための命令のセットであるのに対し、プロセスは実行中のプログラムであることです。
簡単に言うと、プログラムは受動的な性質があり、プロセスは能動的な性質があります。