初めに
タイトル通りジョブとかプロセスとか。。恥ずかしながらその場で調べて何となくの理解でやり過ごしてきたので図にして整理したいと思います。以下、自分がややこしいなと思っている用語を順に解説しています。
ジョブ
ユーザーがコンピューターに依頼する仕事の単位。複数のプロセスをひとまとめにしたもので、プログラムの実行単位。例えば、1つのコマンドを入力し、コンピューターから何らかの結果が出力されることが1つのジョブになる。
タスク
「1つのまとまった処理」のことをタスクと呼ぶ。何をどうまとめるとタスクになるとかいう定義はない。アプリの中で計算しながら印刷するような場合、「計算」と「印刷」がタスクと呼ばれる。
ある時にはプロセスのことをタスクと呼んだり、ある時はスレッドの事をタスクと呼んだりする。
プロセス
プログラムの実行単位。
プログラムの実行中の状態を指す。実行中の状態とは、プログラムがOSによって、メモリ上の領域を割り当てられ、そこでCPUとデータのやり取りを行っている状態。
スレッド
コンピューター上のプログラムは複数実行されており、これらはすべてCPUで並列に処理される。CPU上では、プロセス内の実行する部分をいくつかに分けており、1つの実行単位をスレッドと呼ぶ。
サービス(Linuxにおけるデーモン)
Windowsでのソフトの形態の1つ。利用者や実行中のソフトの求めに応じて即座に何らかの機能を提供できるよう、起動された状態でOSに常駐するプログラムのこと。
デーモン(Windowsにおけるサービス)
主にUNIX系OSにおいて、バックグラウンドで待機するプログラムやプロセスのことである。システムやアプリによって呼び出されると、あらかじめ設定されている作業を自動的に実行する。デーモンとして動作するプログラムは、一般的に名前の最後に「d」がつく。(httpdなど)
図にまとめてみた!
単位大きいものから順にジョブ>プロセス>スレッドという感じです。
参考サイト
https://gimo.jp/glossary/details/process.html
https://garop.com/38/
https://kotobank.jp/word/%E3%82%BF%E3%82%B9%E3%82%AF-5586
https://e-words.jp/w/%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9.html#:~:text=IT%E3%81%AE%E5%88%86%E9%87%8E%E3%81%A7%E3%81%AF%E3%80%81%E4%BA%BA,%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%A8%E3%81%84%E3%81%86%E3%81%93%E3%81%A8%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82
https://garop.com/204/