Uses a priority queue to determine which jobs can be completed depending on the number of available CPU's.