In one embodiment, a method, system, and apparatus provide prioritized,
fair, and weighted task scheduling for a shared execution queue. New
tasks are prioritized according to their processing requirements and held
in one or more queues according to their priority levels. Tasks are
retrieved from each queue in a fair and weighted manner according to the
priority level of each queue. In one embodiment, tasks of approximately
equal total processing requirements/time are retrieved from each storage
queue in a given task retrieval cycle.