Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.raizal.sjfnonpreemptive;
- import com.raizal.CpuScheduler;
- import com.raizal.Process;
- import java.util.ArrayList;
- public class SJFNonPreemptive extends CpuScheduler {
- public Process getSmallestBurstTime(ArrayList<Process> processList) {
- Process result = null;
- for (int i = 0; i < processList.size(); i++) {
- if (result == null) {
- result = processList.get(i);
- } else {
- if (result.getBurstTime() > processList.get(i).getBurstTime()) {
- result = processList.get(i);
- }
- }
- }
- return result;
- }
- @Override
- protected void execute() {
- time = 0;
- ArrayList<Schedulling.Process> queue;
- while (getRemainingBurstTime() > 0) {
- if (getCurrent() != null && (getCurrent().getCurrentBurstTime() <= 0)) {
- detach();
- }
- if (getCurrent() == null) {
- attach(getSmallestBurstTime(getProcessQueue(null)));
- }
- if (getCurrent() != null) {
- getCurrent().doProcess();
- }
- queue = getProcessQueue(getCurrent());
- queueWait(queue);
- time++;
- }
- detach();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment