0

問題:E通じラウンドロビンスケジューリング:すべてのジョブが同時に到着するとどうなりますか?

ファイブバッチジョブ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です。

次のソリューションが異なっているコーネル大学here、から来ている(そしてこの1つは私に多くの意味があります)溶液#2

ターンアラウンドタイムは、時間の量であることを忘れないでくださいジョブが到着してジョブが完了するまでの間に が経過しています。 すべてのジョブが時刻0に到着したと仮定しているので、ターンアラウンドタイムは単に完了するまでの時間である になります。 (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* 

結果は異なっている:最初のCで二番目にCは8分後に終了するのに対し、例えば、10分後に終了します。

どちらが正しいのですか?その理由は何ですか?私は混乱しています..事前に感謝!

+2

*宿題*タグを質問に追加してください。 – thb

答えて

1

Q1:「公正な分配」という要件は、実行中のプロセス間で時間が均等に分かれていると判断できるため、特定の順序は問題にならないと考えています。特定の順序で導入された任意のバリエーションがあまりにも小さいので量子力が非常に低いと考えることもできます。

Q2:以上のことから、時間を均等に分割すると、すべてのプロセスが2分かかるため、Cが実行されます。

+0

についてQ2 ..すべてのプロセスが2分を持っていて、Cが2分(8分後)になってからではなく、Cが完了するのはなぜですか?すべてのプロセスが2分すべてが順番に次々に起こっていて、Cがリストの最後にあるかのように聞こえます。 –

+1

@ user1073400:1つのMICROSECONDの量子を想像してください。どのような順序であっても、時間がかなり分かれば、他のすべてのプロセスが2回(MICROSECOND)から2分間実行された後にCが終了します。 –

+0

私はまだなぜそれを理解していない。私はコーネル大学からオンラインで別の解決策を見つけました。これは私にとって理にかなっていて、元の投稿の最後に追加しました。見て、あなたの考えを教えてください。 –

関連する問題