Реализация следующего кода планирования RoundRobin - PullRequest
0 голосов
/ 04 декабря 2011

Я должен сделать планировщик Round Robin для класса.Первоначально я создал 3 List<int> списки для представления идентификаторов процессов, времени их поступления и времени обработки.Я отсортировал их по времени прибытия.Процессам присваивается фиксированный квант (я жестко закодировал это как 4), и теперь я хочу применить к ним RR и отобразить порядок последовательности каждого процесса и их оставшееся время в textBox на форме.

Я нашел один подход здесь, но он в java: https://stackoverflow.com/questions/7544452/round-robin-cpu-scheduling-java-threads

Я попытался преобразовать мои три списка в списки объектов, как показано в ссылке, но в основном, пока мне удалось создатьсписок объектов, которые представляют процессы.В каждом объекте хранятся 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 #?

1 Ответ

0 голосов
/ 04 декабря 2011
// To access the value:
int bursttime1 = list.FirstOrDefault(x => x.processname == "P1").bursttime;
// To change it:
list.FirstOrDefault(x => x.processname == "P1").bursttime -= 4;

Если вы предпочитаете перебирать список:

foreach (PCB pcb in list) {
    if (pcb.processname == "P1") {
        pcb.bursttime -= 4;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...