Class Device
java.lang.Object
|
+----Device
- class Device
- extends Object
A Device can be running or stopped. Once started, it will "interrupt"
at some time in the future.
Since this is a simulation, interrupts are a bit funny:
Each device indicates the simulation time when the interrupt will occur
and Sim.mainLoop() polls the devices, see which one is next to interrupt.
It then advances its current time to the time of the interrupt,
stops the device, and does what the "interrupt handler" for the device
would do.
In the current version of the simulation, the disk, clock, and cpu
devices are all instances of Device. Job arrivals are represented by
a pseudo-device JobArrival, which extends Device.
- See Also:
- JobArrival, mainLoop
-
currentJob
- The current job, if running.
-
name
- The name of the device (for diagnostic output)
-
nextInterruptTime
- When will it next interrupt? (MAX_VALUE if not running)
-
running
- Is the device currently running?
-
startedAt
- When did it last start running? (meaningless if not running)
-
totalTime
- What is the total amount of time it has been running?
-
trace
- Trace of significant events in this device's lifetime
(only if Sim.traceFlag)
-
Device(String)
- Initialize the Device.
-
current()
- Get the current job.
-
isBusy()
- Is the device currently runing?
-
nextInterrupt()
- Retrieve the time when the next interrupt will occur.
-
printStats()
- Print information about this device
-
start(Job, int)
- Start a device running, servicing a job.
-
stop()
- Stop the device.
-
toString()
- For debugging, information about this device.
name
private String name
- The name of the device (for diagnostic output)
trace
private Vector trace
- Trace of significant events in this device's lifetime
(only if Sim.traceFlag)
running
private boolean running
- Is the device currently running?
currentJob
private Job currentJob
- The current job, if running.
nextInterruptTime
private int nextInterruptTime
- When will it next interrupt? (MAX_VALUE if not running)
startedAt
private int startedAt
- When did it last start running? (meaningless if not running)
totalTime
private int totalTime
- What is the total amount of time it has been running?
Device
Device(String name)
- Initialize the Device.
- Parameters:
- name - the name of the device.
current
public Job current()
- Get the current job.
- Returns:
- the current job (null if device is idle)
toString
public String toString()
- For debugging, information about this device.
- Returns:
- the name of this device.
- Overrides:
- toString in class Object
start
public void start(Job j,
int amt)
- Start a device running, servicing a job.
- Parameters:
- j - the job to run
- amt - for generic devices, the amount of time to run the job, in
milliseconds. Specific devices may interpret the argument
differently.
stop
public Job stop()
- Stop the device.
- Returns:
- the job that was being serviced by the device.
nextInterrupt
public final int nextInterrupt()
- Retrieve the time when the next interrupt will occur.
- Returns:
- the time of the completion interrupt (-1 if not running).
isBusy
public boolean isBusy()
- Is the device currently runing?
- Returns:
- true if the device is running .
printStats
public void printStats()
- Print information about this device