プリエンプション
読み:プリエンプション
外語:preemption
実行中のタスクを一時的に中断し、他のタスクに強制的に切り替えること。
概要
オペレーティングシステム(OS)などにおける、タスクスケジューリングに関する機能の一つである。
複数のタスクを並行して実行するためには、タスクスケジューラーが決定した時刻に、実行中のタスクAから他のタスクBへと強制的に切り替えることが必要となる。これを「プリエンプションを行なう」と言う。この機能を有した仕組みを「プリエンプティブマルチタスク」という。
Windows 3.1以前や、Mac OS 9以前のMac OSなどではプリエンプションの機能を持たないので、「ノンプリエンプティブマルチタスク」といい、これは疑似マルチタスクOSと呼ぶこともある。
特徴
カーネルの対応
WindowsカーネルやLinuxカーネルなどリアルタイムカーネルでないカーネルの場合、カーネルが処理中の場合は他の処理に切り替えない設計である。
こういったものでもアプリケーションタスクを強制的に切り換えられるものを「プリエンプト」ということが多いが、リアルタイムとしての用語では、カーネルが処理中であっても他の処理にCPUを割り当てることを「プリエンプト」という。
優先度
プリエンプションでタスクが切り替わる際、優先度(プライオリティ)の高いタスクが実行可能になったとき、優先度の高いタスクを先に実行する。
このように、時分割だけではなく、優先度にも応じたタスクスケジューリングを持ったOSを、リアルタイムオペレーティングシステムという。
再検索