ariestamirra

sjfpremp

May 19th, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.41 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 SJFPreemptive 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 || getCurrent() != getSmallestBurstTime(getProcessQueue(null)))) {
  36.                 detach();
  37.             }
  38.  
  39.             if (getCurrent() == null) {
  40.                 attach(getSmallestBurstTime(getProcessQueue(null)));
  41.             }
  42.  
  43.             if (getCurrent() != null) {
  44.                 getCurrent().doProcess();
  45.             }
  46.  
  47.             queue = getProcessQueue(getCurrent());
  48.             queueWait(queue);
  49.             time++;
  50.         }
  51.         detach();
  52.  
  53.     }
  54.  
  55. }
Advertisement
Add Comment
Please, Sign In to add comment