The TANDEM Guardian scheduler is also similar:
Priorities range from 0 to 299
200-299 are "system" priorities (only OS processes run this high:
disk processes, osimage, etc...)
0-199 are "userspace" priorities
A process gives up (ends) it's time slice if:
it blocks
- or -
it runs out of time. (I don't remember the slice duration...:(
Priority determines the order and how fast it gets a slice.
*NIFTY FEATURE*
If a process runs thru several slices *without blocking* then the
priority is decreased by one. This means that processes that loop tend
to go to priority of 0. This helps keep up "user responsiveness".
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^
If you don't have a "special" program to assign priorities, then all
processes get either the default priority (130 or 150 I think) or it
can be assigned manually. (An example is $CMON).
I believe that there are multiple run queues, but I'm not sure.
Unfortunately, I've never seen the source code or read an "official"
spec. for the scheduler.
-- The Doctor What: Guru of the Gods http://www.gerf.org/~docwhat/ docwhat@gerf.org (finger docwhat@gerf.org for PGP key) PGPkey Fingerprint: EA 4C 8C FC 5C F0 14 78 9C 02 B9 A1 83 54 7C 8D