【ぷろせす】

プロセス とは?

最終更新:
💡 プログラムを動かす、OSの管理単位

OSが資源や実行状態を管理する、実行中のプログラムの単位。プロセスには識別用のPIDや仮想アドレス空間などがあり、その中でスレッドが処理を実行する。

📌 このページのポイント
プロセス:実行を管理する箱プログラム:実行する命令プロセスAPID・メモリ・資源中でスレッドが実行プロセスBPID・メモリ・資源中でスレッドが実行同じプログラムを、複数起動できるよ
同じプログラムから2つのプロセスを起動する例。メモリ空間は通常分かれますが、通信や共有資源による関係はあります。
ひよこ ひよこ
プログラムと、どう違うの?
ペンギン先生 ペンギン先生
プログラムは実行する命令を用意したもの、プロセスはそれを動かすための状態や資源を持つ単位だよ。レシピと、材料や調理器具を用意して行う料理の作業のような関係なんだ。待っている間も、プロセスとして管理されるよ。
ひよこ ひよこ
同じアプリを2つ開くと、2プロセス?
ペンギン先生 ペンギン先生
同じプログラムから複数のプロセスを作れるよ。ただし画面1つとプロセス1つが必ず対応するわけではない。1つのアプリが複数プロセスを使う場合もあるんだ。タスクマネージャーなどでPIDや資源の使用状況を確認できるよ。
ひよこ ひよこ
メモリが分かれていれば、影響しない?
ペンギン先生 ペンギン先生
通常は仮想アドレス空間が分かれ、別のプロセスのメモリを自由に扱えないようにするよ。ただし共有メモリや通信で情報をやり取りできるし、CPUやディスクなどの資源も共有する。別プロセスなら一切影響しない、という意味ではないんだ。
ひよこ ひよこ
スレッドは何が違うの?
ペンギン先生 ペンギン先生
プロセスの中にある処理の実行単位だよ。同じプロセスのスレッドは、アドレス空間や資源を共有する。作業台を共有する担当者のイメージだね。共有データを同時に使うなら同期が必要。複数スレッドにすれば、必ず速くなるわけでもないよ。
ひよこ ひよこ
動かなくなったら、killで終わる?
ペンギン先生 ペンギン先生
Unix系のkillは、対象へシグナルを送るコマンドだよ。通常の既定値はSIGTERMで、終了を求めるけれど、必ずすぐ終了するとは限らない。終了前の処理を行う場合もある。PIDと対象を確認し、まずアプリ本来の終了方法を使おう。強制終了では保存中のデータなどを失うことがあるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「プロセス」って出てきたら「OSが資源や状態を管理する、実行中のプログラムの単位」と思えばだいたいOK!
📖 おまけ:英語の意味
「Process」 = 過程・処理
💬 ここでは、仕事の手順という一般的な意味ではなく、OSが管理する実行の単位を指しているよ。

参考資料

← 用語集にもどる