ariestamirra

sjfnonpremp

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