A scheduler is responsible for managing the resource allocation to the tasks and it is based on the scheduling algorithms. A scheduler produces a valid schedules should obey these rules
- Every process is assigned to atmost one job at a time
- Every job is assigned to atmost one processor at a time
- No job is scheduled before its release time
- Depending on the scheduling algorithms used, the total amount of processor time assigned to every job is equal to its actual execution time
- All the precedence and resource usage constraints are satisfied.
All tasks of valid schedule meets deadlines, then the schedule is said to be feasible
Every feasible schedule is said to be optimal, if there exists a scheduling algorithm which does not schedule a particular task set, then no other scheduling algorithm can schedule that task set feasibly.
Eg. The optimal static scheduling policy is Rate Monotonic Algorithm (RMA)
The Optimal dynamic Scheduling Policy is Preemptive Earliest Deadline First (EDF)