Я изо всех сил пытаюсь визуализировать простую программу планирования Round Robin, которая находит среднее время ожидания для фиксированного числа процессов, которые прибывают на сервер. Предполагается, что мне дан массив времен прихода, пакетов и квантового времени (фиксированное время для обслуживания каждого процесса), который сортируется в порядке возрастания времени прихода.
public float roundRobin (int n, int[] arrivalTimes, int[] runTimes, int quantumTime) {
Queue<Integer> queue = new LinkedList<>(Arrays.asList(runTimes));
int waitingTime = 0;
while (!queue.isEmpty()) {
int currentProcess = queue.poll();
if (currentProcess > quantumTime) {
int remaining = currentProcess - quantumTime;
waitingTime += remaining;
queue.add(remaining );
}
}
return (float)waitingTime/n;
}
Приведенный выше код не выдает правильное среднее время ожидания, когда я пытаюсь запустить его с примерами входов, которые я нашел в Интернете. Может ли кто-нибудь подсказать мне, что я делаю неправильно и как правильно реализовать свой результат? Любая помощь будет высоко ценится!