ABSTRACT

There are two main approaches to the allocation o f time to a task when running several tasks on a single CPU. One approach, referred to as cyclic scheduling, allocates the CPU to a task in turn. The task uses the CPU for as long as it wishes. When it no longer requires i t the scheduler allocates it to the next task in the list. This is a very simple strategy which is highly efficient in that i t m i n i ­ mizes the time lost in switching between tasks. I t is an effective strategy for small embedded systems for which the execution times for each task run are carefully calculated (often by counting the number o f machine instruction cycles for the task) and for which the software is carefully divided into appropriate task segments. In general this approach is too restrictive since it requires that the task units have similar execution times. I t is also difficult to deal wi th random events using this method.