Upon the arrival of job :if the number of jobs in the active list < P {
add to the active list and
repartition processors according to
}
else add to the inactive queue
Upon the departure of job :if the inactive queue is not empty {
move a job from the inactive queue to the active list
}
now repartition processors according to
Under this scheme at most P jobs can be active at one time. Note, however, that although a job is considered active (under this definition) it may be allocated zero processors by the partitioning scheme. Once a job is added to the active list it is never moved back into the inactive queue. Obvious variations on this algorithm exist. However, during our simulated experiments we found that the inactive queue was almost always empty. Therefore, we have not yet evaluated different techniques for maintaining the active list and the inactive queue.