|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--Scheduler
A Scheduler schedules jobs seeking service from a Device. The class Scheduler itself is "abstract", meaning that there are no instance of Scheduler, only of its subclasses. This simulation has two Schedulers: DiskScheduler for scheduling the disk and RRScheduler for scheduling the CPU. As part of the assignment, students will write other schedulers for the CPU. The base class takes care of maintaining statistics on queue lengths. The subclasses do all the actual work.
DiskScheduler
,
RRScheduler
Field Summary | |
protected int |
baseQuantum
A baseline quantum to be used by schedulers that require it. |
Constructor Summary | |
Scheduler()
|
Method Summary | |
abstract boolean |
add(Job newJob,
Job currentJob)
A new job has just requested service for the device. |
void |
endBurst(Job job)
This method is called when a job finishes a burst. |
int |
getBaseQuantum()
Retrieve the value of the base quantum |
int |
getQuantum(Job currentJob)
Get the value of the quantum for a specific job. |
abstract void |
printQueue()
For debugging: print the queue of waiting jobs |
void |
printStats()
Print statistics about the history of this queue. |
protected void |
queueChanged(int amount)
This method should be called by a subclass whenever the queue length changes. |
abstract Job |
remove()
Retrieve (and remove) the next job to be served. |
abstract boolean |
reschedule(Job j)
This method is called when there is a clock interrupt. |
void |
setBaseQuantum(int quantum)
Method to set the value of the baseQuantum |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Field Detail |
protected int baseQuantum
Constructor Detail |
public Scheduler()
Method Detail |
public void setBaseQuantum(int quantum)
quantum
- public int getBaseQuantum()
public int getQuantum(Job currentJob)
currentJob
- the current job on the cpupublic abstract boolean add(Job newJob, Job currentJob)
newJob
- the job newly awaiting service for the device.currentJob
- the job currently using the device, if any (may be
null).public abstract Job remove()
public abstract boolean reschedule(Job j)
j
- the job currently being serviced by the corresponding device.public void endBurst(Job job)
job
- the job that just finished its burst.public abstract void printQueue()
protected void queueChanged(int amount)
public void printStats()
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |