プリエンプティブ スケジューリングは、CPU の時間割り当てを特定のインタラクションに分離することによって機能する CPU スケジューリング手順です。
一方、ノンプリエンプティブ スケジューリングは、サイクルがアセット (CPU 時間) を受け取り、インタラクションが終了するか、保留中の状態にプッシュされるまでそれを保持する CPU スケジューリング手順です。
プリエンプティブ プロセスにはコストがかかりますが、ノンプリエンプティブ プロセスにはコストがかかりません。
主要な取り組み
- プリエンプティブ スケジューリングでは、オペレーティング システムが実行中のプロセスに強制的に割り込むことができますが、非プリエンプティブ スケジューリングでは、プロセスが自発的に制御を放棄する必要があります。
- プリエンプティブ スケジューリングは、非プリエンプティブ スケジューリングよりも優れた応答時間とリソース使用率を提供します。
- 非プリエンプティブ スケジューリングは単純ですが、プリエンプティブ スケジューリングよりもシステム パフォーマンスの効率が低下する可能性があります。
プリエンプティブ スケジューリングと非プリエンプティブ スケジューリング
プリエンプティブ スケジューリングでは、優先度の高いタスクが優先度の低いタスクに割り込むことができますが、非プリエンプティブ スケジューリングでは割り込みができません。これはリアルタイム システムで使用されますが、非プリエンプティブ スケジューリングはよりシンプルで予測可能ですが、特定のタスクの待ち時間が長くなる可能性があります。
プリエンプティブ スケジューリングは基本的に、オペレーションがニーズに応じて割り当てられる戦略です。
サイクルが実行中の状態から準備済みの状態、または準備済みの状態から保留に変わるときに使用されます。 プリエンプティブ スケジューリングでは、操作を簡単に中断できます。
非プリエンプティブ スケジューリングでは、CPU が特定の対話に割り当てられています。 次の操作に進むには、CPU に割り当てられた操作を終了する必要があります。
さまざまなハードウェア ステージで利用できる唯一の手法です。 ノンプリエンプティブ スケジューリングは、オペレータがスタンバイ状態に入るか終了したときに発生します。
比較表
比較のパラメータ | プリエンプティブ スケジューリング | 非プリエンプティブ スケジューリング |
---|---|---|
柔軟性 | 柔軟性があります。 | 柔軟性がありません。 |
費用 | コストのかかるものです。 | 費用はかかりません。 |
アルゴリズム | オーバーヘッドスイッチングのアルゴリズムを持っています。 | オーバーヘッド スイッチング用のそのようなアルゴリズムはありません。 |
中断 | プロセスは簡単に中断できます。 | プロセスを中断することはできません。 |
CPU使用率 | もっと効率的 | 効率が悪い |
プリエンプティブ スケジューリングとは
CPU が非アクティブ状態のどの時点でも、CPU にサイクルを分配するのは、CPU スケジューラの機能です。 CPU スケジューラは、準備された行からサイクルを選択し、対話を CPU に割り当てます。
この種の計画では、アセット (CPU サイクル) は、限られた時間だけ動作するように指定されています。 操作は、実行中または実行中に中断することができます。
事前計画では、準備したラインに必要性の高いサイクルが現れた場合、必要性の低い作業を止めて、必要性の高い作業を終わらせましょう。
最も注目すべきニーズがあるサイクルが現れる可能性が低いと仮定すると、この操作は操作全体が完了するまで保持されません。
何をするかではなく、サイクルを中断してプロセスを安定させ、優先度の高いそのプロセスの操作を開始します。
これにより、他のサイクルよりも優先度の高いサイクルが終了し、操作が終了すると、次のサイクルが開始されます。
したがって、これらの線に沿って、アクセス可能な線にある操作のすべてが実行される理想的な機会を取得します。
非プリエンプティブ スケジューリングとは
プロセスが終了するか、進行中から待機状態に変わるときに発生するこの種の CPU 操作は、ノンプリエンプティブ スケジューリングと呼ばれます。
このタイプのスケジューリングは、ある状態から別の状態への操作が終了したときに適用されます。
このタイプのプロセスでは、プリエンプティブのように操作を中断する機能がないため、プロセスが開始されると、中断することなく終了します。
これは、Non-Preemptive Scheduling では途中で動作を中断する機能がないため、最初の動作が終了してから待機する必要があるためです。
すべてのことを考慮して、サイクルがその操作を完了するまで保持し、それが終了すると、他の操作に転送されます。
さまざまなハードウェア ステージで利用できる唯一の戦略。 これは、予防スケジューリングなどの特定の機器が必要であるという理由によるものです。
Non-Preemptive Scheduling では、CPU が次の操作が転送されるまで待機する必要があるため、オーバーヘッド操作を切り替えるアルゴリズムはありません。
中断できないため、ノンプリエンプティブ スケジューリングは、プリエンプティブ スケジューリングと比較して柔軟性に欠けます。
プリエンプティブ スケジューリングと非プリエンプティブ スケジューリングの主な違い オペレーティング システムで
- プリエンプティブ スケジューリングでは、プロセスを簡単に中断できますが、ノンプリエンプティブ スケジューリングでは、進行中のサイクルを最初に終了してから次のサイクルに進む必要があります。
- プリエンプティブ スケジューリングでは、複数の操作をスケジュールする必要があるため、プロセスにオーバーヘッドがありますが、ノンプリエンプティブ スケジューリングでは、プロセス間の中断に対する機能を提供しないため、そのようなことはありません。
- プリエンプティブ スケジューリングは、そうでないノンプリエンプティブ スケジューリングと比較して、本質的に柔軟です (つまり、簡単に変更できます)。
- Preemptive Scheduling では、優先度の高いプロセスが最初に与えられますが、Non-Preemptive Scheduling では、進行中の操作が終了してから次の操作に進む必要があります。
- プリエンプティブ スケジューリングは、支払いが必要な操作を実行するのに費用対効果が高く、ノンプリエンプティブ スケジューリングの場合は完全にコストがかかりません。