目次

タスクとプロセスとスレッドの違い



タスクとプロセスとスレッドの違い

1つのタスクは、1つ以上のプロセスから構成される。
1つのプロセスは、1つ以上のスレッドから構成される。

タスク 仕事、1つ以上のプロセス
プロセス 一つのプログラム
スレッド
thread
プロセス内で並列動作する単位
プログラムの処理(CPU利用)の単位


タスク

タスクの状態

TASK_RUNNING CPUが割り当たれば実行可能な状態。
以下の状態がある。
(1)CPUが割り当たっていなく実行されていない状態
(2)実際にCPUが割り当たって処理実行中の状態。
(実行中のプロセスはロードアベレージの数値には換算されない)
TASK_INTERRUPTIBLE 割り込み可能な待ち状態。
sleepやユーザーからの入力待ちなど。
この状態のプロセスはロードアベレージには換算されない
TASK_UNINTERRUPTIBLE 割り込み不可能な待ち状態。
ディスクのI/O待ち
TASK_STOPPED サスペンドのシグナルが送られて実行中断になっている状態
TASK_ZOMBIE 子プロセスがexitして親プロセスにリープされるまでの状態

マルチタスク

複数のタスクがCPUなどの処理リソースを共有する方法


プロセス

1つ1つのアプリケーション

ゾンビプロセス

子プロセスの処理が終わって親プロセスが後片づけするのを待っている子プロセスの状態

孤児プロセス

親プロセスが終了して、子プロセスが残っている状態

参考
プロセスとスレッドの違い - ついでにタスクとジョブ - | ただ屋ぁのブログ


スレッド

マルチスレッド

複数の処理の並行し動作の効率化を実現させる技術

スレッドセーフ

そのコードを複数のスレッドが 同時並行的に実行しても問題が発生しないこと

Intel ハイパースレッド

1コアで2スレッドをサポートするIntel CPUの技術