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つのアプリケーション
子プロセスの処理が終わって親プロセスが後片づけするのを待っている子プロセスの状態
複数の処理の並行し動作の効率化を実現させる技術
そのコードを複数のスレッドが 同時並行的に実行しても問題が発生しないこと
1コアで2スレッドをサポートするIntel CPUの技術