Wednesday, April 24, 2013

Static vs Dynamic Scheduling

A static schedule is some kind of list containing the order of the processes and the durations in which they are scheduled. For example, a simple communicating device could have the following static schedule in pseudo-code:

repeat forever:
   execute task 1 for 10 ms
   execute task 2 for 20 ms
   execute task 1 for 5 ms
   execute task 3 for 15 ms
This is a static schedule. It's just like the bus schedule: Task three is executed for 15 ms every 50 ms. The schedule never changes, even if task 1 has nothing to do and task 2 is missing its deadlines.

On the other hand, when performing dynamic scheduling, whenever the scheduler decides which task to execute next (and for how long), it looks at a list of tasks requesting the processor at that point in time and then decides which to use next. Examples are the "earliest-deadline first" scheduler. Here, the schedule changes if some task has nothing to do and does not request resources.

Reference :

No comments:

Post a Comment