schedulers
John B. Nagle
jbn at wdl1.UUCP
Tue Oct 23 07:09:48 AEST 1984
Having spent a few years tuning up schedulers for big Univac mainframes
before coming to Unix, I can point out some of the issues that have been
missed here.
One way to do scheduling is that each process has at any moment
a priority and a quantum. The priority determines who runs next; the
quantum determines how long they keep control before giving it up to the
next process at the same priority. The combination of the two determines
machine share. One typical approach is that each time a process exceeds its
quantum, it drops one notch in priority and its quantum doubles. Whenever
a process returns from a long voluntary wait (typically terminal input)
it gets a high priority and a small quantum. Thus, immediately after
data from the user becomes available, a process is entitled to a small
amount of CPU time. This strategy improves editor performance considerably
over more naive strategies, and is difficult to abuse, because high priority
does not increase machine share, just responsiveness.
This is old technology; Corbato's original paper on scheduling from
Project MAC (MIT, circa 1965) describes this.
More information about the Comp.unix.wizards
mailing list