|
|
マルチタスクは、OSが複数のタスク(プロセス)を切り替えながら実行すること。マルチプロセスともいう。逆に、同時に一つのタスクしか実行できない方式をシングルタスクという。
ユーザーから見ると、複数のアプリケーション(タスク・プロセス)が同時に実行されているように見える。
タスクの切り替えのオーバーヘッドや、キャッシュやTLBのミスヒット率の上昇などの コストがかかるが、入出力待ちなどであるタスクの実行が止まっても他のタスクが実行される ため、全体としてスループットの上昇が期待できる。
各タスクが、短い時間間隔でOSに処理を返す方式によって実現されているものを、疑似マルチタスクあるいはノンプリエンティブなマルチタスクという。Windows 3.xなど。OSがCPU資源を管理する必要がないので処理は軽い。しかし、長時間CPUを占有し続けるタスクが存在すると、実質的に一つのタスクしか同時実行できないという欠点がある。
OSが強制的にタスクを切り替える仕組みで実現されているものは、プリエンティブなマルチタスクという。Windows 95など。OSがCPUを管理する必要があり、また、一定時間毎にタスク切り替え処理が発生するため、処理は重くなるが、現在のCPUではそのコストは問題にならなくなっており、現在は、こちらの方式が主流である。