パーソナルコンピューター、サーバー、およびその他の種類のインタラクティブシステムで使用される一般的なスケジューリングアルゴリズムを実装
各プロセスには、「量子」と呼ばれる時間間隔が割り当てられ、その間に実行が許可されます。量子プロセスを終了した後、ブロックされ、キューの終わりに配置されました。スケジューラは、すべてのプロセスが同様に重要であるという暗黙の仮定を行います。ラウンドロビンの興味深い問題は、量子の長さです。量子の設定が短すぎると、プロセススイッチが多すぎてCPUの効率が低下します。しかし、長すぎると、短いインタラクティブリクエストに対する反応が悪くなる可能性があります。
各プロセスには優先度が割り当てられ、最優先度の高い実行可能なrpocessが実行されます。優先度の高いプロセスが無限に実行されるのを防ぐために、スケジューラは、各クロックティックまたはその他の時間間隔で現在実行されているプロセスの優先度を減らす可能性があります。このアクションにより、優先度が次に最高のプロセスの優先度を下回ると、プロセススイッチが発生します。優先順位は、静的または動的に処理するために割り当てることができます。プロセスを優先calにグループ化し、クラス間で優先度のスケジューリングを使用することはしばしば便利ですが、クラス内のラウンドロビンスケジューリングは、優先度の低いタスクが永遠に待つことができる無期限のブロッキングまたは飢vの問題を抱えています。この問題の一般的な解決策の1つは、老化することです。この問題では、ジョブの優先順位が長くなるほど、待機しています。このスキームの下で、低優先順位の仕事は最終的にその優先順位を時間とともに高くすることになります。
プロセスを分類できる場合、複数の別々のキューを確立でき、それぞれがそのタイプのジョブに最も適したスケジューリングアルゴリズムを実装します。スケジューリングもキュー間で行う必要があります。これは、他のキューに関連する時間を取得するために1つのキューをスケジュールすることです。一般的なオプションは優先順位とラウンドロビンです。プロセスは、キューを切り替えたり、キューを終了したり、キューを入力したりすることはできません。
このスケジューリングは、マルチレベルキューのスケジューリングに似ていますが、これらの理由でジョブをあるキューから別のキューに移動できることを除きます。 - プロセスが熟成されている場合、そのプロセスは長い間待っていました
このスケジューリングは最短のプロセスを実行し、過去の動作に基づいてどのプロセスが最も短いかを計算します。計算は単純で、現在の推定値に新しい値を追加し、合計を2だけ除算します。現在の測定値の加重平均と前の推定値を取得することにより、シリーズの次の値を推定する手法は、老化と呼ばれることもあります。
nプロセスが実行されていると、すべてが等しく、それぞれがCPUサイクルの1/nを取得する必要があります。システムは、各プロセスが作成以来持っているCPUの量を追跡する必要があります。その後、各プロセスには実際のCPU時間の比率が付いているCPUの量を計算します。次に、アルゴリズムは、その比率が最も近い競合他社の比率を上回るまで、最低の配給でプロセスを実行します
アイデアは、CPU時間などのシステムリソースのプロセスの宝くじチケットを提供することです。スケジューリングの決定を下す必要がある場合、宝くじのチケットがランダムに選択され、そのチケットを保持するプロセスがリソースを取得します。より重要なプロセスには、勝利のIDDを増やすために、追加のチケットを提供できます。チケットの分数Fを保持するプロセスは、問題のリソースの分数Fを取得します。 Coorporation Processは、必要に応じてチケットを交換する場合があります