ノンプリエンプティブマルチタスク 【non-preemptive multitasking】 擬似マルチタスク / pseudo multitasking / 協調的マルチタスク / cooperative multitasking
概要
ノンプリエンプティブマルチタスク(non-preemptive multitasking)とは、一つの処理装置(CPU)で並行して複数の処理を進めるマルチタスクで、OSがCPUを管理しない方式。実行中のプログラムが短時間ごとに自発的にOSに制御を返し、CPUの実行状態を並行して稼働している他のプログラムへ切り替える方式である。CPUの実行状態をOSが管理しないため、OSの構造はシンプルで済み、タスク切替時の処理の負荷も小さい。
しかし、OSへ制御を渡す頻度やタイミングは各プログラム任せとなるため、なかなかCPUを明け渡さない「行儀の悪い」プログラムがいると、OSや他のプログラムの処理が滞ってしまう。また、プログラムに不具合が発生し、特定の箇所で無限ループするなどして正しく切り替え処理を行わなくなってしまうと、OSごとシステム全体が停止してしまうという弱点がある。
Windows 3.1など、マルチタスクを実装し始めた初期のOS製品などがこの方式を利用していたが、OSの安定性を強化する必要性やCPUの機能・性能の向上を受け、現在ではOSが強制的にタスク切り替えを実施する「プリエンプティブマルチタスク」(preemptive multitasking)が主流になっている。
(2018.3.1更新)