マルチタスク
読み:マルチタスク
外語:multi task
一つ以上のプログラムが、あたかも同時に動いているかのように見える機構のこと。またこのような機能を有するオペレーティングシステム(OS)を、マルチタスクオペレーティングシステムという。
概要
タスクは、OSにおける処理の単位である。このタスクをどのような粒度(Granularity)で実行するかを、プロセスまたはスレッドという。
古いシステムで同時に一つのタスクしか実行できないものをシングルタスクというのに対し、近代的なOSでは複数のタスクをプロセスとして動作させ、各プロセスが一つ以上のスレッドを生成することで、システムとして並列処理を実現している。複数(マルチ)が可能なため、これをマルチタスクという。
動作中のプログラムは、それぞれがタスク(またはプロセス)と呼ばれ、一つのコマンドやアプリケーションを実行すると、少なくとも一つの新しいタスク(プロセス)が開始される。また、システムを機能させるため、常に動作しているタスク(プロセス)も多数ある。
特徴
設計
複数のタスクをどのように管理しCPU時間を割り当てるかは、そのOSの設計により異なる。
大きくは二通りに分けられる。
OS自体がCPU時間を管理し、随時タスクへ時間を与える方式を「プリエンプティブマルチタスク」と呼び、管理をアプリケーション側に任せる方式を「ノンプリエンプティブマルチタスク」と呼ぶ。
但し後者は、正確にはマルチタスクとは言わないともされる。
粒度
各タスクに対し、どのような粒度でCPUの実行時間を割り当てるかにより、大きく次の二通りに分けられる。
近代的なOSではマルチスレッドが一般的で、このようなシステムを「マルチスレッドオペレーティングシステム」という。
再検索