プロセスとジョブの違い
コマンドを実行する時、内部の動きは以下のようになる。
シェルからコマンドを実行
カーネルはディスクから実行ファイルを読み出してメモリに入れる
メモリ内容に従ってCPUがプログラムを実行する
- プロセス
- カーネルから見た処理の単位。 メモリ上で実行状態にあるプログラムのことを「プロセス」と呼ぶ。 「プロセス」にはLinuxのシステム全体で一意のIDがつけられる。
- ジョブ
- シェルから見た処理の単位(使う人間側から見た時の単位)。 シェルのコマンドラインに入力している1つの行が、1つのジョブに該当する。 ジョブはシェルごとにジョブ番号を持っている。
プロセスIDはlinuxのシステム全体で一意のIDだが、ジョブ番号は「シェル」の中で一意のIDなので、複数ターミナルを立ち上げている場合、同じジョブ番号を他のシェルから確認できる。(重複する)