1. 要約
- プログラムを実行すると「プロセス」と呼ばれる
項目 | プログラム(Program) | プロセス(Process) |
---|---|---|
意味 | 実行前の命令集合 | 実行中のプログラムの実体 |
状態 | 静的(static) | 動的(dynamic) |
例え | 本棚に置かれた本 📚 | 読まれてる本 📖 |
形態 | ストレージ上のファイル | メモリ上で動作しているもの |
存在場所 | ディスク | メモリ |
2. プログラム
あるタスクを実行するための一連の命令で、コンピュータで実行可能な任意のソフトウェアを指す。プログラムは、ディスク上のファイルとして存在し、実行されるまでは何もしない静的な存在。一般的にソースコードと呼ばれるものは、この「プログラム」に該当する。
3. プロセス
プロセスとは、プログラムの実行中のインスタンス(=動作中のプログラム)を指す。プログラムはOSによりメモリにロードされ、CPUによって実行されるとき、それは「プロセス」として動的に機能する。
各プロセスは、
- メモリ空間
- プロセス制御ブロック(PCB)
を持っている。
3.1. メモリ空間とは?
メモリ空間は、プロセスに割り当てられる専用のメモリ領域で、プログラムコードやデータを格納するために使用される。各プロセスは独自のリソース(メモリ空間)を持っている。これにより、各プロセスを他から独立して動かすことができる。
3.2. プロセス制御ブロック(PCB)とは?
プロセス制御ブロック(PCB)は、OSが各プロセスを管理用のデータ構造である。プロセスの「識別番号」や「プロセスが次に実行する命令のアドレス」など、OSがプロセス管理に必要とする様々な情報が入っている。例えば以下のような情報である。
- プロセスの現在の状態(実行中、待機中、終了など)
- プログラムカウンタ
- I/Oの状況 等が含まれる
4. 終わりに
もし間違いがあれば、コメントで教えてください。