* Remove a procedural layer in the scheduler clock code by having
kern_clock call the usched scheduler clock function directly.
* Move p_estcpu to scheduler-specific code.
* Have kern_synch's one-second timer call into the scheduler instead of
trying to figure it out itself.
* Decay p_estcpu whenever a user process is scheduled as well as once
per second, leading to (hopefully) better performance under load and
better handling of adverse conditions (a nice +20 process running in the
face of a nice -20 process).
* No longer assume that one second has elapsed in the one-second callback.
Instead calculate the elapsed time on a per-process basis. This should
reduce instances of batch processes 'glitching' interactive processes.
* Remove the old round-robin code and instead just have the scheduler
figure it out internally in the scheduler clock function.
* Revamp the scheduler algorithms, making everything #define constant
driven. Retain the NICE-based base-priority and decay algorithms but
narrow the decay range from the process nice value. Retain the child
estcpu inheritance algorithm.
Feedback-provided-by: walt <wa1ter@myrealbox.com>
14 files changed: