25 lines
871 B
Text
25 lines
871 B
Text
The Scheduler
|
|
-------------
|
|
:Author: CehTeh
|
|
:Date: 6/2007
|
|
|
|
//MENU: label Scheduler
|
|
|
|
Scheduling is done with two priority queues, one for high priority jobs and one for low priority jobs.
|
|
These priority queues are ordered by absolute time values plus some job specific identified.
|
|
|
|
There are following (non exhaustive) kinds of jobs:
|
|
|
|
* started job
|
|
* job to be canceled
|
|
* unscheduled job
|
|
* dependency providing jobs
|
|
|
|
Jobs implement a kind of future. We try hard to avoid any blocking waits.
|
|
The Job scheduler runs singlethreaded. Its only task is to schedule and delegate jobs to worker threads,
|
|
by itself it will never do any extensive processing.
|
|
|
|
Each job has an pre configured behaviour for the case of failure or deadline miss.
|
|
Any canceling and expireing jobs gets noted in *Statistics* to adjust performance and timings
|
|
for optimal performance and I/O throughput.
|
|
|