マルチタスクとは
複数のタスクを同時並行して実行するコンピューターのシステムを指す。「タスク」とは、コンピューターが処理するプログラムの処理単位のこと。複数のアプリケーションを起動しながら作業することができ、データの入力や集計、電子メールの送受信など指示した処理が終了するのを待たずに別の処理を行えるため、作業効率が向上する。なお、「マルチタスク(Multitask)」は日本電気株式会社の登録商標である。
コンピューターは、プログラムコードを逐次処理することしかできず、1つのタスクを順番に実行する。そのため、厳密にはまったく同時には複数のタスクを処理できないが、OSが複数のタスクを細かく分割し、素早く切り替えながら高速に実行することで、あたかも複数のタスクが同時実行されているように見えているのである。
Linuxに代表されるUNIX系列のOS、Windows、Mac OS、iOS、Androidなど、マルチタスクが可能なOSを「マルチタスクOS」という。一方、MS-DOSなどマルチタスク機能がないOSを「シングルタスクOS」と呼ぶ。
マルチタスクOSで実行されているアプリケーションを切り替える方式には、以下の2種類がある。
(1)ノンプリエンプティブ方式
疑似的なマルチタスク。タスク制御をアプリケーション側に依存する。1つのアプリケーションが実行している間は、ほかのアプリケーションの実行は制限される。性能の低いコンピューターでも実用的な環境を実現可能。一方、アプリケーションが処理を解放しなければ、ほかのタスクは実行されない。処理途中でエラーなどが発生して制御を返せないアプリケーションがあると、システム全体が停止する。Windows 3.1やバージョン9以前のMac OSが該当する。
(2)プリエンプティブ
非協調的なマルチタスク。タスク制御をOSが管理し、CPU使用時間や優先度などにより実行するアプリケーションを切り替える。OSの処理が複雑になるが、1つのアプリケーションがエラーで停止しても、ほかのアプリケーションは影響を受けることなく処理を続行できる。