1. タイムスライス回転アルゴリズム (RR)
1. アルゴリズムのアイデア: タイム スライス ローテーション アルゴリズム (RR)
各プロセスが一定の時間間隔内に応答を取得できるように、各プロセスを順番に公平に処理します。
2. アルゴリズム ルール:
各プロセスがレディキューに到着した順序に従って、各プロセスは順番にタイムスライスを実行できます。
プロセスがタイム スライス内に実行されなかった場合、プロセッサは剥奪され、プロセスはレディ キューの最後に再度キューに入れられます。
3. 適用条件:
プロセスのスケジューリングに使用できます。
4. 先制的ですか?
プロセスがタイム スライス内に実行を完了できない場合、プロセッサを使用する権利が強制的に剥奪されるため、タイム スライス ラウンドロビン スケジューリング アルゴリズムはプリエンプティブ アルゴリズムです。クロック割り込みは、タイム スライスが到着したことを CPU に通知するために、クロック デバイスによって発行されます。
5. メリットとデメリット
利点: 公正、応答が速く、タイムシェアリング オペレーティング システムに適しています。
デメリット:タスクの緊急性が判断できず、プロセスの切り替えが必要となり、消費量が多くなる。
2. 高応答率優先アルゴリズム (HRRN)
1. アルゴリズムの考え方:高応答率優先スケジューリングアルゴリズム(Highest Response Ratio Next、HRRN)
ジョブまたはプロセスの待ち時間とサービスに必要な時間を組み合わせて検討してください。
2. アルゴリズム ルール:
各スケジューリングの前に、各ジョブまたはプロセスの応答率 (優先度) が計算され、応答率が最も高いジョブまたはプロセスが選択されて処理されます。
応答率(Rp)=(待ち時間+サービス所要時間)/サービス所要時間=応答時間/サービス所要時間
3. 適用条件:
ジョブのスケジューリングまたはプロセスのスケジューリングに使用可能
4. 長所と短所:
メリット:待ち時間と実行時間を総合的に考慮し、良い妥協点が得られる。
欠点: 各スケジューリングの前に応答率を計算する必要があるため、システムのオーバーヘッドが増加します。
注: 飢餓を引き起こすことはありません。
練習問題(分かりやすいように質問をしてみます)
考え方:応答率(Rp)=ジョブ所要時間/ジョブ処理時間=1+(待ち時間/処理時間)
ジョブ待ち時間=前のジョブの完了時間-前のジョブの完了時間次のジョブ 投入時間 (投入時間は開始時間と等しくない)
例 次の表でジョブのスケジューリング順序を検索し、平均所要時間 (単位: 時間) の
スケジューリング順序を求めます: 1324
ジョブ 1 が最初に実行され、
ジョブ 1 の終了後、他のジョブの応答率に基づいて実行順序が決定されます。
ジョブ 2 の応答率: 1+(10.0-8.3)/0.5=4.4
ジョブ 3 の応答率: 1+(10.0-8.5)/0.1=16
割り当て 4 の応答率: 1+(10.0-9.0)/0.4=3.5
ジョブ 3 の応答率が最も高いため、ジョブ 3 を実行します。
注: 所要時間 = 完了時間 - 提出時間 (課題)
応答率の再計算
ジョブ 2 の応答率: 1+(10.1-8.3)/0.5=4.6
割り当て 4 の応答率: 1+(10.1-9.0)/0.4=3.75
ジョブ 2 の応答率が最も高く、ジョブ 2 を
最後に実行し、ジョブ 4 を実行します。
平均所要時間 T=(2.0+2.3+1.6+2.0)/4=1.975 (時間)
3. マルチレベルフィードバックキュースケジューリングアルゴリズム
1. アルゴリズムの考え方: 他のスケジューリング アルゴリズムとのトレードオフ
2. アルゴリズム ルール:
(1) 複数のレディキューを設定します。すべてのレベルのキューの優先順位は高から低まであり、タイム スライスは小さいものから大きいものまであります。
(2) 各キューは FCFS スケジューリング アルゴリズムを採用しています。
(3) キューの優先度に応じたスケジューリング。1~i-1 のキューがすべて空の場合にのみ、i 番目のキューの処理がスケジュールされます。
3. 適用条件:
プロセスのスケジューリングに使用可能
4. 次のように入力します。
プリエンプティブなアルゴリズムです。
5. 長所と短所:
利点: 優先度を使用して緊急性を区別し、リアルタイム OS で実行します
。 欠点: スタベーション (優先度の低いプロセスのスタベーション) が発生する可能性があります。