Windows XPのスケジューリングアルゴリズム


2

Windows XPに実装されているスケジューリングアルゴリズムは誰ですか?ULEアルゴリズムをインストール/使用する可能性はありますか?違うと思う。

ありがとうございました。

回答:


2

私の知る限り、Windowsの異なるスケジューリングアルゴリズムを変更(インストール)することはできません。設計時に実装されます。また、Windows NTベースのOSでは、スケジューリングアルゴリズムとしてマルチレベルフィードバックキューを使用していることも読んでいます。

マルチレベルフィードバックキューは、スケジューリングアルゴリズムです。マルチモードシステムの次の設計要件を満たすことを目的としています。

  1. 短い仕事を優先します。
  2. I / Oバウンドプロセスを優先します。
  3. プロセスの性質をすばやく確立し、それに応じてプロセスをスケジュールします。

複数のFIFOキューが使用され、操作は次のとおりです。

  1. 新しいプロセスは、最上位のFIFOキューの最後に配置されます。
  2. ある段階で、プロセスはキューの先頭に到達し、CPUが割り当てられます。
  3. プロセスが完了すると、システムを終了します。
  4. プロセスが制御を自発的に放棄した場合、キューイングネットワークから出て、プロセスの準備が整うと、同じキューレベルでシステムに入ります。
  5. プロセスがすべてのクォンタム時間を使用する場合、それは横取りされ、次の下位レベルのキューの最後に配置されます。
  6. これは、プロセスが完了するか、基本レベルのキューに到達するまで続きます。

    • 基本レベルのキューでは、プロセスは完了してシステムを離れるまでラウンドロビン方式で循環します。
    • 必要に応じて、プロセスがI / Oをブロックすると、1レベル「促進」され、次に高いキューの最後に配置されます。これにより、I / Oにバインドされたプロセスがスケジューラによって優先され、プロセスがベースレベルキューを「エスケープ」できます。

マルチレベルフィードバックキューでは、プロセスは、特定のキューレベルで完了する1回のチャンスが与えられた後、下位レベルのキューに強制されます。


これは、Windows NTファミリスケジューラの正しい説明ではありません。ステップ1で、「最上位FIFOキュー」を「現在の優先順位のキュー」に変更します。ステップ6では、「基本レベルのキュー」を「基本優先度のキュー」に変更します(通常、システム内の最下位レベルのキューではありません)。また、I / O完了のプロモーションは、I / Oデバイスに応じてレベルの数が異なります。そして、全体を通して「プロセス」を「スレッド」に変更します。もっとある; Windows Internalsブックを参照してください。
ジェイミーハンラハン

XPを使用すると、ラウンドロビンの動作(マルチレベルフィードバックキューなし)が発生しました。単一のCPU集中タスクがシステムを停止させます。SMPにマルチレベルフィードバックキューを追加し、マルチコアを使用しているかどうかに応じて2つの異なるカーネルを使用したことをどこかで読んだと思います。これは、Microsoftがマルチタスクを改善するためにデュエルコアシステムが必要であると言った理由を説明します(Unixで使用されていた基本的なパフォーマンスを得るために必要でした)。この優れたスケジューラは、シングルコアでも有効になったと思います。
ctrl-alt-delor

@richardいいえ。NT3.1以降、マルチレベル(32の優先度レベル)になっています。
ジェイミーハンラハン

プロセスがCPUを占有しようとすると、パフォーマンスは依然としてひどいものになります(CPUコアを1つ、またはコアごとに1つの占有を想定)。
ctrl-alt-delor
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.