プリエンプション
また新たに重要なデータが到着して、即座にそれを処理するプロセスに通知しなければならないような場合に素早く対応できる。
プロセスは任意の時点で、2つに分類できる。1つは入出力を待っているプロセス(I/Oバウンドと呼ぶ)とCPUを使い続けているプロセス(CPUバウンド)である。初期のシステムでは、プロセスは入力を待っている際にビジーウェイトしていた。その間、プロセスは生産的な作業は全くしていないが、CPUを使い続けていた。割り込みとプリエンプティブ・マルチタスクの発明で、そのようなI/Oバウンドなプロセスはデータが到着するまで「ブロック」または中断/ペンディングされ、他のプロセスがその間CPUを使えるようになった。データが到着すると割り込みが発生し、ブロックされていたプロセス群が即座に実行可能状態に戻される。
メインフレームからシングルユーザーのパーソナルコンピュータ、さらにはユーザーのいない制御システムまで、マルチタスクは様々な理由で便利であるため、オペレーティングシステムの機能として採用されている。マルチタスクは、シングルユーザーにとっては複数のアプリケーションを同時に実行可能とする。
「タイムスライス(time slice)」とは、プリエンプティブ・マルチタスクのシステムでプロセスが一度に実行される期間(時間)を意味する。スケジューラはタイムスライス間隔で起動され、次に実行すべきプロセスを選択する。タイムスライスが短すぎると、スケジューラが消費する時間の割合が大きくなるが、逆にタイムスライスが長すぎると、外部イベントに即座に反応できなくなる。
タイムスライスが経過したタイミングでプロセス間の切り替えを行うため、カーネルはタイマーまたはクロック割り込みをスケジュールする。これによって、プロセッサの時間が複数のタスク間で共有分配され、それらが同時並行的に実行されているかのように見せる。このような設計のオペレーティングシステムをマルチタスクOSと呼ぶ。