クラスのラウンドロビンスケジューラを作成する必要があります。最初にList<int>
、プロセスID、到着時間、および処理時間を表す3つのリストを作成しました。到着時間で並べ替えました。プロセスには固定クォンタムが割り当てられており(4としてハードコーディングしています)、プロセスにRRを適用して、各プロセスのシーケンス順序と残り時間をtextBox
フォームに表示します。
ここで1つのアプローチを見つけましたが、それはJavaにあります: https ://stackoverflow.com/questions/7544452/round-robin-cpu-scheduling-java-threads
リンクに示されているように、3つのリストをオブジェクトリストに変換しようとしましたが、基本的には、これまでのところ、プロセスを表すオブジェクトのリストを作成することに成功しました。各オブジェクトにはprocessname
、、、が格納されます。これは、と呼ばれるクラスによって表されます。arrivaltime
bursttime
PCB
これで、いくつかのプロセスを追加するためのリストを作成しました。
public List<pcb> list = new List<pcb>(); // In place of ArrayList used in the
// example code in the link.
//For loop runs in which above 3 parameters are assigned values & then they're
// added to list:
PCB pcb = new PCB(processname1, arrivaltime1, bursttime1);
list.Add(pcb);
しかし、アイテムを見つけて操作するために、リストの各値を検索するにはどうすればよいですか?bursttime
アクセスしprocessname="P1"
て4ずつデクリメントしたいとしますか?
これはC#では間違ったデータ構造ですか?