Вы находитесь на странице: 1из 22

A presentation for

Brian Evans’
Embedded Software Class

By Nate Forman
Liaison Technology Inc.
For Real-Time Scheduling 3/30/2000
Agenda

• Introduction
• Anatomy of a Task
• Rate Monotonic
Principles and Tests
• Extended Rate Monotonic
Analysis
• Demonstration
• Mars Pathfinder Mission

3/2000 Rate Monotonic Analysis, Nate Forman


Introduction

• Rate Monotonic refers to assigning priorities as a monotonic


function of the rate (frequency of occurrence) of those
processes.

• Rate Monotonic Scheduling (RMS) can be accomplished


based upon rate monotonic principles.

• Rate Monotonic Analysis (RMA) can be performed statically


on any hard real-time system concept to decide if the system
is schedulable.

3/2000 Rate Monotonic Analysis, Nate Forman


Anatomy of a Task

t1

t2

t3
time

Task Execution Time (C) End Of Period (T = Period Length)

3/2000 Rate Monotonic Analysis, Nate Forman


Rate Monotonic Assumptions

• All tasks are periodic

• Task switching is instantaneous

• Tasks account for all processor execution time

• Tasks become ready to execute precisely at the


beginning of their periods and relinquish the CPU only
when execution is complete

3/2000 Rate Monotonic Analysis, Nate Forman


Rate Monotonic Assumptions (2)

• Task interactions are not allowed

• Task deadlines are always at the end of the period

• Tasks with shorter periods are assigned higher priorities;


no other criteria are considered for priority assignment

• Task execution is always consistent with rate monotonic


priority: a lower priority task never executes when a
higher priority task is ready

3/2000 Rate Monotonic Analysis, Nate Forman


Utilization Bound (UB) Test

Ci
Processor Utilization for a task, i Ui =
Ti
1
n
Utilization Bound for n tasks U(n) = n(2 - 1)

Results:
• If S Ui ≤ U(n) then the set of tasks is schedulable.
• If S Ui > 1 then the set of tasks is unschedulable.
• If U(n) < S Ui ≤ 1 then the test is inconclusive.

3/2000 Rate Monotonic Analysis, Nate Forman


UB Test Example
Execution Time
Task Period (T)
(C)
t1 40 100
t2 40 150
t3 100 350

U1 = 40 / 100 = 0.4 U(3) = 3(21/3 – 1) = 0.779

U2 = 40 / 150 = 0.267 Result:


U1+2 = 0.667, schedulable.
U3 = 100 / 350 = 0.286
However, 0.779 < 0.953 < 1
Utotal = 0.953 Therefore, inconclusive for t3.
3/2000 Rate Monotonic Analysis, Nate Forman
Response Time (RT) Test

Theorem: If a task meets its first deadline with worst-case task


phasing, that deadline will always be met.

For the response time for task i, find the least fixed-point of the
following recurrence:

an
a0 = S Cj an+1 = Ci + S Cj
j  H + {i} jH
Tj

where H is the set of tasks with higher priority than task i.

3/2000 Rate Monotonic Analysis, Nate Forman


RT Test Example
Execution Time
Task Period (T)
(C)
t1 40 100
t2 40 150
t3 100 350

a0 = S Cj = 40 + 40 + 100 = 180
j  H + {i}
a2 = a3 = 300
180
a1 = C3 + S Cj = 100 + (2 * 40) + (2 * 40) = 260
Tj
300 < t3 = 350
jH

260
a2 = C3 + S Cj = 100 + (3 * 40) + (2 * 40) = 300
jH Tj t3 is schedulable.
300
a3 = C3 + S Cj = 100 + (3 * 40) + (2 * 40) = 300
jH Tj

3/2000 Rate Monotonic Analysis, Nate Forman


Extensions to RMA

• Aperiodic task handling

• Preperiod task deadlines (Di = deadline for task i)

• Nonzero task switching times (S = task switch time)

• Interrupt handling for top-priority tasks

• Task blocking and interaction through shared resources


(Bi = blocking time for task i)

3/2000 Rate Monotonic Analysis, Nate Forman


Sporadic Servers

• A conceptual task that uses its execution budget


handling incoming aperiodic tasks

• Its execution budget is only replenished after a period


where it is completely consumed instead of after every
period’s end.

• Avoids deferred execution effect and reduces aperiodic


tasks to the same model as periodic tasks

3/2000 Rate Monotonic Analysis, Nate Forman


Priority Inversion

• A high priority task is ready to execute, but a lower


priority task continues execution because it holds a lock
on a shared resource that the high priority task needs.

• Unbounded priority inversion occurs when a system


allows tasks with lower priority than the blocked task to
preempt the blocking task.

3/2000 Rate Monotonic Analysis, Nate Forman


Priority Inversion (2)

• To successfully share resources, a system needs two


properties: freedom from mutual deadlock, and bounded
priority inversion.

• The combination of priority inheritance and the priority


ceiling protocol guarantee the above properties.

Priority Inheritance: When a task blocks the execution


of other, higher priority tasks, it executes at the highest
priority of all of the tasks it blocks.

3/2000 Rate Monotonic Analysis, Nate Forman


Priority Ceiling Protocol

• Priority Ceiling: of a binary semaphore is the highest


priority of all of the tasks that may lock it.

• A task attempting to a execute critical section is blocked


unless its priority is higher than the priority ceilings of
all of the locked semaphores in the system.

• The task holding the lock on the highest priority ceiling


semaphore inherits the priorities of tasks blocked in this
way.

3/2000 Rate Monotonic Analysis, Nate Forman


Extended UB Test

for Di = Di / Ti, redefine utilization bound:

n ((2Di)1/n – 1) + 1 – Di, 0.5 < Di ≤ 1


U(n, Di) =
Di, Di ≤ 0.5

3/2000 Rate Monotonic Analysis, Nate Forman


Extended UB Test (2)

Updated processor utilization:

Cj + 2S Ci + 2S Bi 1
fi = S + + + S (Ck + 2S)
j  Hn Tj Ti Ti Ti k  H1

where Hn is the set of higher priority tasks that can preempt task i
more than once (shorter periods) and H1 are higher priority tasks
that can preempt task i only once (longer periods)

Compare each fi to its utilization bound, U(n, Di). The results can
be interpreted as before.

3/2000 Rate Monotonic Analysis, Nate Forman


Extended RT Test

Theorem: If a task meets its first deadline with worst-case task


phasing, that deadline will always be met.

The above theorem still stands although the deadline is Di instead


of Ti. For the response time find the least fixed-point of the
recurrence below:

a0 = Bi + S (Cj + 2S)
j  H + {i}

an
an+1 = Bi + Ci + 2S + S (Cj + 2S)
jH
Tj

where H is the set of tasks with higher priority than task i.

3/2000 Rate Monotonic Analysis, Nate Forman


What really happened on Mars?
(the first time)

• Two tasks were critical for controlling communication on


the lander’s communication bus, the scheduler task
(bc_sched) and the distribution task (bc_dist).
• Each of these tasks checked each cycle to be sure that the
other had run successfully.
time = 0.125 s

bc_sched

bc_dist

bus active

3/2000 Rate Monotonic Analysis, Nate Forman


Mars Pathfinder: The Problem

• bc_dist was blocked by a much lower priority meteorological


science task (ASI/MET)

• ASI/MET was preempted by several medium priority


processes such as accelerometers and radar altimeters.

• bc_sched started and discovered that bc_dist had not


completed. Under these circumstances, bc_sched reacted by
reinitializing the lander’s hardware and software and
terminating all ground command activities.

3/2000 Rate Monotonic Analysis, Nate Forman


Mars Pathfinder: Resolution

• “Faster, better, cheaper” had NASA and JPL using “shrink-


wrap” hardware (IBM RS6000) and software (Wind River
vxWorks RTOS).

• Logging designed into vxWorks enabled NASA and Wind


River to reproduce the failure on Earth. This reproduction
made the priority inversion obvious.

• NASA patched the lander’s software to enable priority


inheritance.

3/2000 Rate Monotonic Analysis, Nate Forman


Resources
• www.sei.cmu.edu: Software Engineering Institute, technical
reports and presentations on rate monotonic analysis

• www.jpl.nasa.gov: NASA Jet Propulsion Laboratory,


information about Mars missions, pictures

• “Guaranteeing Real-Time Performance Using RMA,” The


Embedded Systems Conference, R. Obenza & G. Mendal

• research.microsoft.com: letter by Glenn Reeves of JPL


about Mars Pathfinder mission

•http://www.ece.utexas.edu/~bevans/courses/ee382c/projects/
fall99/ -- The RMADriver Application
3/2000 Rate Monotonic Analysis, Nate Forman

Вам также может понравиться