問題:E通じラウンドロビンスケジューリング:2つの異なるソリューション - それはどのように可能ですか?
ファイブバッチジョブAは、コンピュータセンターでほぼ同時刻に到着します。彼らは、10、6、2、4、および8分の実行時間を見積もっています。それらの(外部で決定された)優先度はそれぞれ3,5,2,1,4であり、5が最も高い優先度である。平均プロセスターンアラウンドタイムを決定する。プロセススイッチングオーバーヘッドを無視します。ラウンドロビンスケジューリングでは、システムがマルチプログラミングであり、各ジョブでCPUの公平な共有が得られると仮定します。すべてのジョブは完全にCPUにバインドされています。
溶液#1以下のソリューションはthis pageから来ている:
ラウンドロビンの場合は、最初の10分の間に、各ジョブは CPUの1/5を取得します。 10分の終わりに、Cが終了する。次の8時間の間に、 分、各ジョブはCPUの1/4を取得し、その後時間Dが終了する。 残りの3つのジョブのそれぞれは、6 分、Bが終了するまでCPUの1/3を取得します。 5つの ジョブの仕上げ時間は、平均で22分、10,18,24,28,30です。
溶液#2以下のソリューションは、コーネル大学から来てhereを見つけることができ、かつ問題がにすることにより、正確に同じ形式(このソリューションを、与えられているにもかかわらず、明らかに前のものと異なっています方法は、)私には、より理にかなって:
所要時間は、ジョブ到着し、ジョブ完了の間 を経過する時間の量であることを覚えておいてください。 すべてのジョブが時刻0に到着すると仮定しているので、ターンアラウンドタイムは単純に完了する時刻である になります。 (a)ラウンドロビン:下の表は、各タイムクォンタムでジョブが処理される休憩を示しています( )。 A * は、そのクォンタム中にジョブが完了したことを示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
A B C D E A B C* D E A B D E A B D* E A B E A B* E A E A E* A A*
結果が異なっている:第1に、Cは8分後に終了するのに対し、Cは、例えば、10分後に終了する最初のもので。
どちらが正しいのですか?その理由は何ですか?私は混乱しています..事前に感謝!
量子力学が1分であると(運動のためだけに)仮定できます。私はそれが現実的ではなく、1msecのようなものでなければならないことを知っていますが、計算が簡単になるようにするには、明らかに1分の量子を使用しています。その場合、2番目の解決策は正しいですか?第1の解決法に関しては、なぜ1分量子を扱っていないので、Cは10分後に終了し、3分後または2分後に終了しないのはなぜですか?私が理解するのを助けるためにこの結果を与える公式/推論を私に提供できますか? –
1分のクォンタを仮定すると、2番目の解決策は正しいです(ただし優先度は無視されますが、それは別の話です)。しかし、それは不合理な仮定です。問題がそうでない限り、あなたはそれを作るべきではありません。 CはCPU時間の2分を必要とし、CPUの1/5を取得するため、10分後に終了します。したがって、CPU時間を2分にするには10分必要です。その時点で、すべてのプロセスが2分のCPU時間を取得しており、それぞれに必要なCPU時間を計算できます。その後、別のプロセスが完了するまで1/4になります。等々。 –
この問題は、5つのジョブがほぼ同時に到着すると想定することを明確に述べています。また、ラウンドロビンは定義によって優先順位を扱っていません。しかし、2番目の解決策は、ジョブが実行されて中断されている途中でいくつかの順序を示唆しているようです:AからB、C、D、E、Aなどに戻ります。これは、すべてのジョブが一緒に到着するという事実(秩序が存在しないので)RRは優先度を課していませんか? –