ICDロゴ

プリエンプティブなマルチタスク (preemptive multitasking)

最終更新日: 1998/09/30

 アプリケーションの自発的な制御の切り替えではなく、システムのハードウェアタイマを利用して、OSが複数のアプリケーションの実行制御を強制的に切り替えるタイプのマルチタスク方式。非協調的マルチタスクと呼ばれることもある。

 Ver.3.xまでのWindowsでは、アプリケーションがごく短い時間で一定の処理を終えて、制御を自主的にシステムに返すことにより、複数のアプリケーションが同時に実行できるようにしていた。このようなマルチタスク方式は、ノンプリエンプティブなマルチタスク(non-preemptive multitasking)と呼ばれる。ノンプリエンプティブなマルチタスクでは、OS側の処理が簡略なものですむため、特に処理性能の低いシステムでマルチタスク環境を実現するときには有効な方法である。しかしその一方では、制御の切り替えをアプリケーションに依存しているため、なかなか制御を返さないマナー違反のアプリケーションや(このようなアプリケーションを「行儀の悪いアプリケーション」と呼ぶこともある)、処理途中でエラーなどが発生して制御を返せないアプリケーションがあると、システム全体が停止してしまうという致命的な欠点がある。

 これに対しプリエンプティブなマルチタスクでは、コンピュータシステムにあるハードウェアタイマを利用して、OSが強制的に各アプリケーションに制御を割り当てる。この場合アプリケーションは、基本的に他のアプリケーションを意識する必要がない。

 プリエンプティブなマルチタスクの最大のメリットは、プロセス・スケジューリングをOSが完全に制御できることだ。処理の切り替えにはハードウェアタイマを利用するため、複数のプログラムをなめらかに同時実行できるし、たとえ1つのアプリケーションがエラーで停止しても、他のアプリケーション(プロセス)はその影響を受けることなく処理を続行できる。すでに述べたように、プリエンプティブなマルチタスクでは、OSの処理が複雑になるが、高性能化が著しい昨今のパーソナルコンピュータでは、この負担は大した問題ではなくなった。

 プリエンプティブなマルチタスクを実装したOSとしては、UNIXやOS/2、Windows NT、Windows 95/Windows 98などがある。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ