マルチタスク
コンピュータはプロセッサ(CPU)、記憶装置、ディスプレイやキーボードなどのヒューマンマシンインタフェース、ネットワークインタフェースなどのインターコネクション、などから構成される。一般的に、CPUの計算処理時間に比べ、ディスクやネットワークの処理時間は数十から数百倍かかる。シングルタスク環境では、逐次処理が行われるため、入力待ちや通信待ちなど、CPUが計算を実行できずに、待つ時間が発生する。マルチタスクの導入によって、これらの待ち時間の間にCPUを動作させ別の計算を行い、全体の処理時間の短縮を実現することが可能になる。さらに、並行プログラミングの手法が利用でき、機能をタスクとして分割することで、ソフトウェアの再利用性を上げられる。
ひとつのCPUしかないコンピュータでは、ある瞬間にはひとつの処理しか実行できない。しかし、CPUの処理時間を数十ミリ秒といった短い時間で区切り、タスク間でひとつのCPUを順に使い回すことによって、ユーザーから見ると、複数のアプリケーション(タスク・プロセス)が同時に実行されているように見える。
タスクの切り替えのオーバーヘッドや、キャッシュやトランスレーション・ルックアサイド・バッファのミス率の上昇などのコストがかかるが、入出力待ちなどであるタスクの実行が止まっても他のタスクが実行されるため、全体としてスループットの上昇が期待できる。
また、タスクという単位よりも、ユーザ単位で「1基のコンピュータを時分割でシェアする」という点に主眼がある語として「タイムシェアリングシステム」がある。