1

問題 :

A から E までの 5 つのバッチ ジョブがほぼ同時にコンピューター センターに到着します。実行時間は 10 分、6 分、2 分、4 分、8 分と見積もられています。それらの (外部で決定された) 優先順位は、それぞれ 3、5、2、1、および 4 であり、5 が最高の優先順位です。プロセスの平均所要時間を決定します。プロセス切り替えのオーバーヘッドを無視します。ラウンド ロビン スケジューリングでは、システムがマルチプログラミングであり、各ジョブが CPU を公平に配分すると仮定します。すべてのジョブは完全に CPU バウンドです。

解決策 #1次の解決策は、このページからのものです。

ラウンド ロビンの場合、最初の 10 分間、各ジョブは CPU の 1/5 を取得します。10 分が経過した時点で、C が終了します。次の 8 分間、各ジョブは CPU の 1/4 を取得し、その後 D が終了します。次に、残りの 3 つのジョブのそれぞれが、B が終了するまで 6 分間、CPU の 1/3 を取得します。5 つのジョブの終了時間は 10、18、24、28、30 で、平均 22 分です。

解決策 #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 は 10 分後に終了しますが、2 番目の例では C は 8 分後に終了します。

どれが正しいのですか、なぜですか? 私は混乱しています..事前に感謝します!

4

2 に答える 2