/
NikolayIvkin
/
TheAlgorithms
Обзор
Документация
Войти
/
NikolayIvkin
/
TheAlgorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/thealgorithms/scheduling/FCFSScheduling.java
47 строк
1 KB
Piotr Idzik
style: include `LII_LIST_INDEXED_ITERATING` (#5190)
28 май 2024, 22:06
Не верифицирован
28 май 2024, 22:06
d2bfb10
Код
Авторство
О чём код?
package com.thealgorithms.scheduling; import com.thealgorithms.devutils.entities.ProcessDetails; import java.util.List; /** * Non-pre-emptive First Come First Serve scheduling. This can be understood here - * https://www.scaler.com/topics/first-come-first-serve/ */ public class FCFSScheduling { private List<ProcessDetails> processes; FCFSScheduling(final List<ProcessDetails> processes) { this.processes = processes; } public void scheduleProcesses() { evaluateWaitingTime(); evaluateTurnAroundTime(); } private void evaluateWaitingTime() { int processesNumber = processes.size(); if (processesNumber == 0) { return; } int waitingTime = 0; int burstTime = processes.get(0).getBurstTime(); processes.get(0).setWaitingTime(waitingTime); // for the first process, waiting time will be 0. for (int i = 1; i < processesNumber; i++) { processes.get(i).setWaitingTime(waitingTime + burstTime); waitingTime = processes.get(i).getWaitingTime(); burstTime = processes.get(i).getBurstTime(); } } private void evaluateTurnAroundTime() { for (final var process : processes) { process.setTurnAroundTimeTime(process.getBurstTime() + process.getWaitingTime()); } } }