import java.io.IOException; import java.lang.*; import org.javasim.*; public class Job extends SimulationProcess { public void run () { full = false; ResponseTime = 0.0; ArrivalTime = Scheduler.currentTime(); full=(MachineShop.Q.QueueSize()>=MachineShop.QueueCapacity); try{ if (!full) { MachineShop.TotalJobs++; if (!MachineShop.Q.Reserve(this)) passivate(); hold(MachineShop.ServiceTime.getNumber()); car2 =(Job)MachineShop.Q.Liberate(); if (!(car2==null)) car2.activate(); ResponseTime = Scheduler.currentTime() - ArrivalTime; MachineShop.TotalResponseTime += ResponseTime; MachineShop.ProcessedJobs++; } else { MachineShop.LostJobs++; } terminate(); } catch (SimulationException e){} catch (RestartException e){} catch (IOException e){} } public void finished () { } private double ResponseTime; private double ArrivalTime; private boolean full; public Job car2; };