読者です 読者をやめる 読者になる 読者になる

No Caffeine, No Life

プログラミング(主にPython)

Aizu Online Judge: キュー

キュー

名前 namei と必要な処理時間 timei を持つ n 個のプロセスが順番に一列に並んでいます。ラウンドロビンスケジューリングと呼ばれる処理方法では、CPU がプロセスを順番に処理します。各プロセスは最大 q ms(これをクオンタムと呼びます)だけ処理が実行されます。q ms だけ処理を行っても、まだそのプロセスが完了しなければ、そのプロセスは列の最後尾に移動し、CPU は次のプロセスに割り当てられます。例えば、クオンタムを 100 msとし、次のようなプロセスキューを考えます。
 
A(150) - B(80) - C(200) - D(200)
 
 
まずプロセス A が 100 ms だけ処理され残りの必要時間 50 ms を保持しキューの末尾に移動します。
 
B(80) - C(200) - D(200) - A(50)
 
 
次にプロセス B が 80 ms だけ処理され、時刻 180 ms で終了し、キューから削除されます。
 
C(200) - D(200) - A(50)
 
 
次にプロセス C が 100 ms だけ処理され、残りの必要時間 100 ms を保持し列の末尾に移動します。
 
D(200) - A(50) - C(100)
 
 
このように、全てのプロセスが終了するまで処理を繰り返します。
 
ラウンドロビンスケジューリングをシミュレートするプログラムを作成してください。

 そのまま書いてあげる:

 

広告を非表示にする