優先度プリエンプティブスケジューリングを使用する場合、優先度が高いほど、優先度は低いがバースト時間が短いプロセスになりますか?
たとえば、私が持っていた場合:
Arrival Time Burst Time Priority
P1 0 5 3
P2 2 6 1
P3 3 3 2
ガントチャートは次のようになりますか?
| P1 | P2 | P3 | P1 |
0 2 8 11 16
Priority Scheduling常に、現在実行可能な最高の優先度を持つプロセスを選択します。現在優先度が最も高いプロセスが複数ある場合は、これらのプロセスから選択するために2番目のスケジューリングアルゴリズムが必要です。 非プリエンプティブ優先スケジューリング実行中のプロセスが作業を終了した場合、または(自発的に)スケジューラーに譲った場合にのみ、実行する新しいプロセスを選択します。
Preemptive Priority Schedulingは同じアルゴリズムですが、現在実行中のプロセスよりも優先度の高い新しいプロセスが到着すると、すぐに選択されます。新しいプロセスは、現在実行中のプロセスが終了するか、譲歩するまで待つ必要はありません。
サンプルでは、プリエンプティブ優先度スケジューリングのガントチャートで、3が最高で、1が最低の優先度のようになります。
| P1 | P3 | P2 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| p1 | p2 | p3 | p1 |
0....2....8....11...14
1を最優先します。
|p1 |p2 |p3 |p1 |
0 2 8 11 14
新しく到着したプロセスの優先度が現在実行中のプロセスの優先度よりも高い場合、プリエンプティブアプローチがプリエンプションするためです。