本記事は教養記事シリーズその52です。その他の教養記事は【超初心者向け】3分で分かる!教養記事シリーズ目次をご覧ください。
プリエンプションとは
プリエンプション
プリエンプションは,英語で「preemption」と書きます。「emption」は古い用法ですが「購入」という意味です。「pre」は前もってという意味の接頭語ですので,preemptionは前もって購入すること,つまり「先取り」の意味になります。
端的に言ってしまえば,プログラムの実行を先取りします。通常であれば,アプリケーション自身がタスクの制御を行います。これをノンプリエンプション方式と呼びます。対して,OS側がアプリケーションのタスク管理をしてしまうのが,プリエンプションという方式になります。
プリエンプション方式の根底にあるのが,マルチタスク方式と呼ばれる制御方法です。一昔前のコンピュータでは,一度に一つのアプリケーションしか実行することができませんでした。しかし,CPU性能の向上により,OS側が複数のアプリケーションを「タイムスライス」と呼ばれる単位ごとに区切って制御することで,あたかも同時に複数のアプリケーションを動かしているようにすることができます。
プリエンプティブな方式を採用することで,アプリケーション側は他のアプリケーションの影響を受けることなく実行をすることができます。一方,コンテキストスイッチのためには複数の追加の処理が必要になります。現在の家庭用PCでこそ問題はありませんが,CPUの性能が高くなければ迅速な処理を行うことは難しいでしょう。
ひとこと
言われてみれば当たり前ですが,CPUの性能にPCのタスク設計等が依存することは面白いです。量子コンピュータが実用化されれば,どのような方式が登場するのか,気になるところです。