Jump to content

Fixed-priority pre-emptive scheduling

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Tim Starling (talk | contribs) at 08:52, 23 September 2009 (fix cite). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Fixed priority pre-emptive scheduling is a scheduling system commonly used in real-time systems. With fixed priority pre-emptive scheduling, the scheduler ensures that at any given time, the processor executes the highest priority task of all those tasks that are currently ready to execute.

The pre-emptive scheduler has a clock interrupt task that can provide the scheduler with options to switch after the task has had a given period --- the time slice. This scheduler system has the advantage of making sure no task hogs the processor for any time longer than the time slice. Most RTOS’s have pre-emptive schedulers. Also turning off Time Slicing effectively gives you the non- pre-emptive RTOS.

Pre-emptive scheduling is often differentiated with cooperative scheduling, in which a task can run continuously from start to end without being preempted by other tasks. To have a task switch, the task must explicitly call the scheduler. Cooperative scheduling is used in a few RTOS such as Salvo, or TinyOS. Fixed-priority scheduling with deferred preemption (FPDS) is a middle ground between fixed-priority pre-emptive scheduling and fixed-priority non-preemptive scheduling.[1]

References

  1. ^ Bergsma, Mark (10 June 2009). "Extending RTAI/Linux with Fixed-Priority Scheduling with Deferred Preemption" (PDF). OSPERT. Retrieved 8 July 2009. {{cite journal}}: Cite journal requires |journal= (help)