2024年10月9日ホーム用語集プロセスとジョブの違いを徹底解説!システム管理の基礎を学ぶURLをコピーしました!目次プロセスとは?プロセスは、カーネル(オペレーティングシステムの中心部分)から見た作業の単位です。プログラムが実行されるたびに、カーネルはそのプログラムを管理する「プロセス」を作成します。プロセスは、実際に動作している「作業者」のような存在です。Webブラウザを起動すると、カーネルはそのブラウザに対応するプロセスを生成し、システムリソースを割り当てて管理します。具体例Webブラウザを起動:ブラウザがプロセスとなり、システム上で動作する。音楽アプリで曲を再生:アプリがプロセスとしてシステム内で動き、曲が再生される。ジョブとは?一方、ジョブはシェル(コマンドラインインターフェース)から見た作業の単位です。ジョブは、シェルが実行するプロセスのセットやタスクです。シェルで起動したプロセスやそのグループを指し、バックグラウンドで動作する場合が多いです。ジョブはシェルが管理するプロセスやタスクのまとめと考えると良いでしょう。具体例ファイルのコピー:コピー操作がジョブとしてバックグラウンドで進行し、ユーザーが他の作業を並行して行えるようになる。ソフトウェアのダウンロード:ダウンロード操作がジョブとなり、他の操作を進めつつ裏で進行する。プロセスとジョブの違い簡単に言うと、プロセスはカーネルが管理する単位で、ジョブはシェルが管理する単位です。ジョブは1つ以上のプロセスを含むことがあり、ユーザーがシェルを通じて実行した作業の進行状況を示します。具体例の違いプロセス:例えば、Webブラウザが動作しているとき、そのブラウザの実行はカーネルから見たプロセスです。&というコマンドを実行した場合、それはシェルから見たジョブとなり、カーネルではそれに対応するプロセスが動作します。sleepこのコマンドを実行すると、psが現在動いているプロセスを表示し、その中からsleepコマンドを探すためにgrepが使われます。ここで、psとgrepはそれぞれ別々のプロセスですが、これらを合わせて一つのジョブとしてシェルが管理しています。300を実行すると、シェルがこのコマンドをバックグラウンドジョブとして管理します。このジョブに対応するプロセスがカーネルによって生成され、300秒間(5分間)実行され続けます。sleepでプロセスIDを確認し、そのIDを指定してkillコマンドを実行すれば、その特定のプロセスを終了させることができます。これにより、バックグラウンドで動いていたジョブが停止します。このように、プロセスはカーネル視点での単位、ジョブはシェル視点での単位と覚えておくと理解がしやすくなります。