ariestamirra

sjf2

May 25th, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.30 KB | None | 0 0
  1. package com.raizal.sjfnonpreemptive;
  2.  
  3. import com.raizal.CpuScheduler;
  4. import com.raizal.Process;
  5. import java.util.ArrayList;
  6.  
  7. public class SJFNonPreemptive extends CpuScheduler {
  8.  
  9.     public Process getSmallestBurstTime(ArrayList<Process> processList) {
  10.         Process result = null;
  11.  
  12.         for (int i = 0; i < processList.size(); i++) {
  13.             if (result == null) {
  14.                 result = processList.get(i);
  15.             } else {
  16.                 if (result.getBurstTime() > processList.get(i).getBurstTime()) {
  17.                     result = processList.get(i);
  18.                 }
  19.             }
  20.         }
  21.  
  22.         return result;
  23.     }
  24.  
  25.     @Override
  26.     protected void execute() {
  27.         time = 0;
  28.         ArrayList<Schedulling.Process> queue;
  29.         while (getRemainingBurstTime() > 0) {
  30.  
  31.             if (getCurrent() != null && (getCurrent().getCurrentBurstTime() <= 0)) {
  32.                 detach();
  33.             }
  34.  
  35.             if (getCurrent() == null) {
  36.                 attach(getSmallestBurstTime(getProcessQueue(null)));
  37.             }
  38.  
  39.             if (getCurrent() != null) {
  40.                 getCurrent().doProcess();
  41.             }
  42.  
  43.             queue = getProcessQueue(getCurrent());
  44.             queueWait(queue);
  45.             time++;
  46.         }
  47.         detach();
  48.  
  49.     }
  50.  
  51. }
Advertisement
Add Comment
Please, Sign In to add comment