CS452 - Real-Time Programming - Spring 2009

Lecture 32 - History : Cyclic Execution

Real-time Scheduling

Much real-time computing operates in an environment like the following

  1. Groups of sensors that provide polling with fixed periodicity
  2. Sensor input triggers tasks which also run with fixed periodicity

Typical example, a group of sensors that returns

and a set of tasks that

Each time a sensor returns a new datum a scheduler runs

  1. makes ready any task that the data makes ready to run
  2. decides which of the ready tasks to schedule, and
  3. starts it running.

Your kernel can handle problems like this one pretty efficiently,

Cyclic Execution

Let's make a schedule

                                               A                                       A
  AC  BA    A C  A    A  C A    A B CA    A    C    A    AC B A    A C  A    A  C A    B
  |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |
      |                           |                         |                          |
   |          |          |          |          |          |          |          |
________________________________________________________________________________________________________ time

Because the times are integers the pattern repeats after a while.

Make it a little easier

  1. Make the complete pattern short by making sensor periods multiples of one another
  2. Standardize the processing at each point
  3. Minimize the interaction between tasks
  4. Prove some theorems, such as Liu & Layland

Theorems

Important assumptions

Main idea

Main result

Subsidiary result

Is this of any practical value?


More Interesting Cyclic Execution

For example: mobile phone, iPod, digital assistant, etc

An easier design environment

Provide tasks to a dispatcher


Return to: