In computing and communication systems, a work-conserving scheduler is a
scheduler
A schedule (, ) or a timetable, as a basic time-management tool, consists of a list of times at which possible tasks, events, or actions are intended to take place, or of a sequence of events in the chronological order in which such things ...
that always tries to keep the scheduled resource(s) busy, if there are submitted jobs ready to be scheduled. In contrast, a non-work-conserving scheduler is a scheduler that, in some cases, may leave the scheduled resource(s)
idle despite the presence of jobs ready to be scheduled.
For example, when dealing with
networking and packet scheduling, a work-conserving scheduler leaves the channel idle only when there are no packets to transmit. In contrast, a non-work-conserving scheduler might leave the channel idle with
packets still pending
transmission.
Similarly, when referring to
CPU scheduling, i.e.
threads or processes scheduled over one or more available
processors or
cores, a work-conserving scheduler ensures that processors/cores are not idle if there are processes/threads ready for
execution
Capital punishment, also known as the death penalty and formerly called judicial homicide, is the state-sanctioned killing of a person as punishment for actual or supposed misconduct. The sentence ordering that an offender be punished in ...
.
Kleinrock's Conservation Law
Work-conserving schedulers are also notable for obeying Kleinrock's Conservation Law.
In the context where we have
connections with Poisson-distributed arrival rates
packets per unit time each competing for scheduling time,
Leonard Kleinrock
Leonard Kleinrock (born June 13, 1934) is an American computer scientist and Internet pioneer. He is Distinguished Professor Emeritus of Computer Science at UCLA's Henry Samueli School of Engineering and Applied Science. Kleinrock made several ...
established the following conservation law:
where
*
: The mean packet rate of connection
in packets per unit time.
*
: The number of packets of connection
that the system overall could transmit per unit time, in units of packets. This can vary between flows if flows have differently sized packets.
*
: The link utilization contributed by a particular flow.
*
: The expected time a packet from connection
sits in a buffer before the scheduler serves it in units of time.
*
: A constant - the expected time to clear out all buffered packets from all flows at any given point in time if they are transmitted at maximum service rate with no breaks. To understand why, observe that
. Notice that
is the expected number of buffered packets from flow
, and therefore the expected time to clear them from the buffer is this over the service rate
.
(Some sources use
to mean the time to service a particular packet with units of unit time per packet, and use
. The equation is the same, the only difference being their
is the reciprocal of the one presented above.)
Comparison to Non-Work-Conserving Schedulers
Non-work-conserving schedulers are sometimes useful to enhance
predictability
Predictability is the degree to which a correct prediction or forecast of a system's state can be made, either qualitatively or quantitatively.
Predictability and causality
Causal determinism has a strong relationship with predictability. Perfec ...
and reduce termination jitter for the activities carried out by a computing and communication system. In
multi-processor systems they're useful to enhance performance in some scenarios.
J. C. Sáez, J. I. Gomez and M. Prieto, "Improving Priority Enforcement via Non-Work-Conserving Scheduling," Parallel Processing, 2008. ICPP '08. 37th International Conference on, Portland, OR, 2008, pp. 99-106.
Sometimes, a non-work-conserving scheduler may be useful to enhance stability of a system; For example, a process scheduler may choose to keep processes off of the run queue if there were concern that the sum of the working sets of all of the runnable processes would exceed available memory and lead to non-linear page thrashing overhead. Limiting the run queue in this manner might lead to under-utilization of available processors (and hence be non-work-conserving) with the goal of avoiding situations where the system is unusable due to thrashing.
References
{{Reflist, 30em
Job scheduling