プロセススケジューリングアルゴリズムの概要

FCFSは(まず最初に来るサーブ)まず最初に来るのアルゴリズムを果たします。

シンプルなキューイングアルゴリズムは、その後、ラインの端部のみが待って、待ち行列を維持します。

ノンプリエンプティブ。

短所:CPU集約型のプロセスは、時間を実行しているだけでは1msが必要ですが、前に5Sを読むための集中的なIOのプロセスがある次のような無愛想CPU集中型プロセス、スマート十分ではありません。CPU集中型のプロセスが唯一の1msを実行する必要がありますが、実行するために、完全な5Sのを待たなければならない場合であっても!

 

 

SJF(最初の最短の仕事)最初の最短の仕事:

このアルゴリズムは、我々は、各プロセスの実行に必要な時間を予測できることを前提としています。たとえば、5つのプロセスがあり、それぞれの実行時間がある:1,3,2,5,1。

1,1,2,3,5:このアルゴリズム名は、その実行順序ことを、最初の実行を取るために必要な最短時間を実行しているプロセスを示唆しています。実際には、貪欲アルゴリズム方法インチ

SJFスケジューリングは(貪欲)、最適なスケジュールですが、問題は、実行時間を予測する方法ですか?だから、実際には、このアルゴリズムは、比較として、本当に達成できません。

ノンプリエンプティブ。

 

SJFアルゴリズムとバリアント:最短残り時間優先。残り動作時間を選択して、最小限のスケジューリングプロセスであるので、アルゴリズムがされる先取り

 

RR(ラウンドロビン)ラウンドロビンスケジューリング:

各プロセスは、タイムスロットが割り当てられ、一般的に20〜50ミリ秒です。あなたが終了し、実行上のタイムスライスが不足しない場合は、各プロセスにのみ、タイムスライスの時間を使うことができますが、直接、次のプロセスをスケジュールすることができ、完成されたタイムスライス操作が不足していない場合、システムがチームに戻って処理します。尾。

スライス選択時間があるため、コンテキストスイッチへの切り替えの過程において、必要とされます。コンテキストは、私たちは、スイッチングプロセスにあまりにも多くの時間を費やしたので、非常に悪いとなり、タイムスロット、ラウンドロビン・スケジューリング効率の小さな数よりも時間を切り替えた場合。

システムは、自動的にタイム・スライスが完了した後に次の処理に切り替えるので、RRスケジューリング・アルゴリズムである先取り。

 

優先度スケジューリング:

考えてみましょうRRスケジューリングは、それはすべてのプロセスが「等しい。」の前に言いました しかし、実際にはそうではない、人々はランクやグレードを持って、プロセスが重要な重要ではないに分けることができます。このような前景のインタラクティブなプロセスとして非常に重要かつ迅速に結果を返す必要があります。背景データの保守プロセス場合は、上、後に重要ではありません。

実装後のプロセスの私達の優先度スケジューリングの優先度、各プロセスの優先順位の低いプロセスの再スケジューリングは優先度の高いプロセスのために、優先度レベル(通常は整数)を追加し、我々はそう。仕事が利きIOのハードウェアである後IO集約型のプロセスと同じように、明らかに私たちは高い優先度を設定する必要があり、すべての後に、このようなプロセスは、CPU時間を少し取る必要があります。私たちは、優先スケジューリングIO集約型のプロセスを与える必要がありますので、その時間を実行しているのは少し後に、IO集約型のプロセスは、もは​​やCPUを必要としません。したがって、優先順位は、IO集中型のプロセスよりも低いCPU集約的なプロセスであるべきです。

我々は(例えば2など)優先度の高いプロセスを追加し続ける場合は、そのプロセスは、それが実行されたことがない優先度の高いプロセスをつかむになっているので、我々は優先順位1を持つ前に、これは確かです。しかし、そこに、このような質問がありますノーアラブ。そのため、優先順位が固定されてはならない待機時間が長くなるにつれて、例えば、我々は、要因を決定待ち時間に参加することができ、私たちは徐々に、このような遅れ、最終的に処理が実行されるように、その優先順位を上げます。

優先スケジューリングアルゴリズムは、待ち時間のスケジューリング係数が実際に参加する優先度の高い応答率スケジューリングアルゴリズム:「(待ち時間プロセス実行時間+工程)応答比= /プロセスの実行時間を、」応答率スケジューリングを得るために、この式に従って。同じ待ち時間で高い応答、最初のアルゴリズムよりも短いジョブ実行時間、より高い応答率、待ち時間が優先度よりも大きくなるように、応答増大が増加する一方、タスク優先度セグメントを満たすには、防止することができます飢餓。利点は、両方の操作の長さは、応答の欠点は、バッチシステムよりもかなり高価である計算することです。

プリエンプション。

 

 

マルチレベルキュースケジューリング:

複数のキューを達成するために、内部のスケジューリングアルゴリズム、キュー1各プロセスがタイムスライスを実行することができ、各プロセスは、2キュー2、キュー3の各処理は4を実行できる実行することができ、各プロセスは、キュー4から8を実行することができ2、というように。

n個のキューがあると仮定し、その後、最初のn-1はFCFSスケジューリングキューです、最後のキューは、RRが予定されています。

実行キュー2にキュー、タイムスライスに参加するために、プロセス100枚のタイムスライスを実行する必要のために。さらに2つのタイムスライスした後、実行キュー3に。最終的に、我々は1 + 2 + 4 + 8 + 16 + 32 + 64に必要プロセスは7つのコンテキストの合計切り替えます。我々は完全な100回を取る上で述べたRRアルゴリズムを使用している場合は!

異なるキューの場合、プロセスがあり、優先度の高いキュー場合は、優先順位の高いプライオリティキュー、二番目に高いプライオリティキューの後など、その後の状況を空にします。

このスケジューリングアルゴリズムは、長いコースとショートコースの間の良好なバランスをすることができます。

手順は次のとおりです。

キュー待ちを入力するプロセスをスケジュールすることで1は、最初は、最も優先度の高いQ1待ちを入力します。
2、第1のスケジューリングプロセスの優先度の高いキュー。キュー内で優先度の高いには、スケジューリング処理、処理時間優先キュースケジューラを持っていない場合。たとえば:Q1、Q2、Q3の3つのキュー、Q2での発送にQ1には待ち時間がない場合、プロセスは、唯一、同じトークンは、時空間スケジューリングQ3のみがQ1を行く場合は、Q2です。
図3に示すように、各プロセスの同じキュー、FCFSに応じてタイムスロットのスケジューリング割当。タイムスライスが排出されるときに時間スライスキューQ1はN、次にQ1ジョブはタイム・スライスNの後に完了していない場合、プロセスは、キューQ2に待機に進み、Q2ジョブがまだ完了していないされているような、次に進んできました完了するまで、待ち行列のステージです。
4、タイムスライスのラウンドロビンスケジューリング割り当てに従ってそれぞれQNプロセスにおけるキューの末尾。
5、実行時に優先度の低いキューの過程で、彼らはすぐに現在のキューの実行中のプロセスの終了にチームの背中を置く必要があり、新しいジョブが到着するがある場合、優先度の高いプロセスに配布プロセッサ。言い換えれば、最初の1〜I-1のキューが空になっているだけで任意の時間は、実装プロセスは、(先制)、i番目のキューに移動します。現在のキューにプロセスを再実行して、スライスしか割り当てられた最後の時間が終了していない場合には、特別なノート、もはやキューに対応するフルタイムスライスを割り当てられません。

プリエンプション。

おすすめ

転載: www.cnblogs.com/FdWzy/p/12556498.html