start a page to collect technical notes about Scheduler and Jobs (Backend)
Signed-off-by: Ichthyostega <prg@ichthyostega.de>
This commit is contained in:
parent
7d66571e54
commit
51b3f0defa
2 changed files with 42 additions and 1 deletions
|
|
@ -1,8 +1,9 @@
|
|||
Technical Documentation: Backend
|
||||
================================
|
||||
|
||||
Eventually, this will have technical documentation for the Backend.
|
||||
Here we collect bits of technical documentation for the Backend.
|
||||
|
||||
For now, we have:
|
||||
|
||||
* link:ConfigLoader.html[Config Loader brainstorming from 2008]
|
||||
* link:scheduler.html[Scheduler and Jobs]
|
||||
|
|
|
|||
40
doc/technical/backend/scheduler.txt
Normal file
40
doc/technical/backend/scheduler.txt
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
Scheduler and Job handling
|
||||
==========================
|
||||
|
||||
The purpose of the _Scheduler_ is to run small self contained _Jobs_
|
||||
ordered by priority and observing specific timing constraints.
|
||||
|
||||
Scheduler implementation ideas
|
||||
------------------------------
|
||||
|
||||
Use multiple priority queues
|
||||
|
||||
- background work
|
||||
- foreground high-priority
|
||||
- soft-realtime actions
|
||||
|
||||
About Jobs
|
||||
----------
|
||||
A job is a closure to run a small and limited action or operation, which
|
||||
in itself _should not block_. Job may depend on each other and on resources
|
||||
to be provided. A job may be conained in multiple queues and may be marked
|
||||
as _canceled_ -- in which case the job function will never run and the job
|
||||
will be discarded on occasion.
|
||||
|
||||
Job States
|
||||
~~~~~~~~~~
|
||||
|
||||
[source,C]
|
||||
--------------
|
||||
enum job_state
|
||||
{
|
||||
done, // already done, nothing to do
|
||||
running, // job is running
|
||||
waiting, // waits for some resource (annother job)
|
||||
rejected, // sorry, cant do that dave, time will run out
|
||||
expired, // time expired
|
||||
aborted // got aborted
|
||||
}
|
||||
--------------
|
||||
|
||||
|
||||
Loading…
Reference in a new issue