T i - Homepages

advertisement
3.2 Rate Monotonic Analysis

Assumptions
–
–
–
–
–
1
A1. No nonpreemptible parts in a task, and
negligible preemption cost
A2. Resource constraint on CPU time only
A3. No precedence constraints among tasks
A4. All tasks periodic
A5. Relative deadline = period
Spring 2002
Real-Time Systems (Shin)
Rate-Monotonic Scheduling(RMS)

Overview
–
rate monotonic priority

–
–
the higher rate, the higher priority
schedulability guaranteed if utilization rate is
below a certain limit
for feasible schedules
 fi

2
= 1/Ti : frequency (=rate)
ci or Ci : execution time
n
c
i 1
i
fi 1
Spring 2002
Real-Time Systems (Shin)
(continued)
–
If the total utilization rate has least upper bound n(21/n - 1)
where n = #tasks, there exists a feasible rate monotonic
schedule. That is,
n
c f
i i


–
 n(2  1)  U (n)
i 1
U(1) = 1.0, U(2) = 0.828, U(3) = 0.779, U(∞) = ln2
only sufficient condition
priority inversion problem

3
1
n
if a more critical task has a longer period
Spring 2002
Real-Time Systems (Shin)
Rate Monotonic Analysis(RMA)
Basic theory with periodic tasks

Introduction
–
Rate monotonic analysis(RMA)






4
a method for analyzing sets of real-time tasks
based on rate monotonic scheduling theory
analytic formulas to determine schedulability
framework for reasoning about system timing behavior
separation of timing and functional concerns
provides an engineering basis for designing real-time
systems
Spring 2002
Real-Time Systems (Shin)
(continued)
–
Basic theory applies only to independent, periodic
tasks, but has been extended to address:



–
Why are deadline missed?



5
priority inversion
task interactions
aperiodic tasks
preemption
execution
blocking
Spring 2002
Real-Time Systems (Shin)
A Sample Problem
Periodics
Servers
Aperiodics
Emergency
100 msec
50 msec
1
20 msec
Data Server
5 msec
2 msec
150 msec
20 msec
Deadline 6 msec
after arrival
2
40 msec
Comm Server
350 msec
10 msec
10 msec
3
Routine
40 msec
2 msec
100 msec
Desired response
4 msec average
2’s deadline is 20 msec before the end of each period
6
Spring 2002
Real-Time Systems (Shin)

Periodic tasks
–
–

task’s CPU utilization Ui = Ci/Ti
total CPU utilization U = Ui + U2 + … + Un
Utilization Bound(UB) Test
–
A set of n independent periodic tasks scheduled by the rate
monotonic algorithm will always meet its deadlines, for all
1
task phasings, if
Cn
C1 C2

 ...
 U (n)  n(2 n  1)
T1 T2
Tn
–
7
for harmonic task sets, the utilization bound is U(n) = 1.00
for all n.
Spring 2002
Real-Time Systems (Shin)

Sample Problem: Applying UB Test
C T
U
Task 1 20 100 0.200
Task 2 40 150 0.267
Task 3 100 350 0.286
–
Total utilization:
0.200 + 0.267 + 0.286 = 0.753 < U(3) = 0.779
–
8
The periodic tasks in the sample problem are schedulable
according to the UB test.
Spring 2002
Real-Time Systems (Shin)
Timeline for Sample Problem
0
100
200
300
400
1
2
3
Scheduling Points
9
(scheduling point: a point in time when new work arrives
worst-case phasing: all tasks are ready to execute at t=0)
Spring 2002
Real-Time Systems (Shin)

10
Exercise: Applying the UB Test
Given:
Task
C
T
1
4
τ 1
2
6
τ 2
1
10
τ 3
U
a. What is utilization for each task?
b. Is the task set schedulable?
c. Draw the timeline.
d. What is the total
if C3=2?
Springutilization
2002
Real-Time Systems (Shin)

Extension of UB test
–
UB test has three possible outcomes.



–
–
11
0 ≤ U ≤ U(n)  success
U(n) < U ≤ 1.00  inconclusive
1.00 < U  overloaded
UB test is conservative
A more precise test can be applied.
Spring 2002
Real-Time Systems (Shin)

Schedulability: CT Test
–
Theorem

–
For a set of independent, periodic tasks, if each task meets its
first deadline, with worst-case task phasing, the deadline will
always be met.
Completion Time Test
Let Wi = completion time
of taski. Wi may be computed by the

W
i (n)
following
iterative
formula:
W (n  1)  C 
C where W (0)  0

i
12

i

j i
 Tj


j
i
Task i is schedulable if its completion time is before its
Spring 2002
Real-Time Systems (Shin)
deadline. That is, Wi ≤ Ti

Example: Applying CT Test
–
–
Taking the sample problem, we increase the
compute time of T1 from 20 to 40. Is the task set
still schedulable?
Utilization of first two tasks: 0.667 < U(2) = 0.828

–
Utilization of all three tasks: 0.953 > U(3) = 0.779


13
first two tasks are schedulable by utilization bound test
utilization bound test is inconclusive
need to apply completion time test
Spring 2002
Real-Time Systems (Shin)
–
14
(continued)
0
W3 (1CT
) test
C3 todetermine
 100
Use
3 meets its first
 C j  ifC3task
deadline
j 3  T j 
100
W3 (2)  C3   
C j
j 3  T j 
100
100
 100 
(40)  
(40)  180


100
150
180
180
W3 (3)  100 
(40)  
(40)  260


100
150
Spring 2002
Real-Time Systems (Shin)
W3 (3)  260
 260
 260
(continued)
W3 (4)  100 
(
40
)

(
40
)

300



100
150




 300
 300
W3 (4)  100 
(40)  
(40)  300  Done!


 100
 150
W3  300  T3  350
Task 3 is schedulable using CT test.
15
Spring 2002
Real-Time Systems (Shin)
Example : Using Schedulability Points
0
100
200
300
400
1
2
3
Scheduling Points
16
Spring 2002
Real-Time Systems (Shin)

Exercise: Applying CT Test
Task τ1: C1 = 1
Task τ2: C2 = 1
Task τ3: C3 = 1
17
T1 = 4
T2 = 4
T3 = 4
a. Apply UB test.
b. Draw timeline.
c. Apply CT test.
Spring 2002
Real-Time Systems (Shin)

Summary
–
–
–
Utilization bound test is simple but conservative
Completion time test is more exact but also more
complicated
To this point, UB and CT tests share the same limitations.







18
all tasks run on a single processor
all tasks periodic and noninteracting
deadlines always at the end of the period
no interrupts
rate monotonic priorities assigned
zero context switch overhead
tasks do not suspend themselves
Spring 2002
Real-Time Systems (Shin)
Rate Monotonic Analysis(RMA)
Extensions to basic theory

Extending the schedulability tests
–
–
–

Task interactions
–
19
nonzero task switching times
preperiod deadlines
priority inversion (blocking)
synchronization(mutual exclusion) is required
Spring 2002
Real-Time Systems (Shin)

Integrating task switching times and
preperiod deadlines
–
Task switching time can be modeled as execution
time

–
Preperiod deadline can be modeled as “dormant
time”

20
for task switching time S, Ui = (Ci+2S)/Ti instead of Ui =
Ci/Ti
for preperiod deadline D, Ui = (Ci+D)/Ti applied for
schedulability test on τi only
C
D
T
T
Spring 2002
time
Real-Time Systems (Shin)

Example for task switching and preperiod deadline
–
1
21
applying
(C the2SUB
) Test to the sample problem
1
T1
 U (1)
2
(C1  2S ) (C2  2S  D2 )

 U (2)
T1
T2
3
(C1  2S ) (C2  2S ) (C3  2S )


 U (3)
T1
T2
T3
Spring 2002
Real-Time Systems (Shin)

Schedulability with interrupts
–
Interrupt processing can be inconsistent with rate monotonic
priority assignment


–
Effects of interrupt processing must be taken into account in
schedulability model.

22
interrupt handler executes with high priority despite its period
interrupt processing may delay execution of tasks with higher
rate monotonic priority (shorter periods)
higher priority tasks regard the interrupt as blocking factor.
(source of priority inversion)
Spring 2002
Real-Time Systems (Shin)

Priority inversion
–
–
–
23
Delay to a task’s execution caused by
interference from lower-priority tasks is known as
priority inversion.
Priority inversion is modeled by blocking time.
Identifying, modeling and reducing sources of
priority inversion is central to schedulability
analysis.
Spring 2002
Real-Time Systems (Shin)

Sources of priority inversion
non-preemptable regions of code
– interrupts
– non-unique priorities for some tasks
(if there are not enough priority levels)
– non-rate-monotonic assignment of task priorities
– FIFO queues
– synchronization and mutual exclusion
–
24
Spring 2002
Real-Time Systems (Shin)

Accounting for priority inversion
–
Recall that task schedulability is affected by:



–
25
preemption: potentially many times per period
execution: once per period
blocking: at most once per period for each source
The schedulability formulas are modified to add a
“blocking” or “priority inversion” term to account
for inversion effects.
Spring 2002
Real-Time Systems (Shin)
Adding blocking time to schedulability test
0
1
100
For 1
I
0
100
200
1
For 2
2
I
0
100
200
300
400
1
2
Interrupt
I
I
For 4
4
26
Spring 2002
Real-Time Systems (Shin)

UB test with blocking
–
Cn
C1 C2priority inversion,
Before considering
we simply tested the


...


U
( n)
total utilization
for
n
tasks:
T T
T
1
–
–
n
Now we must test each task for schedulability.
k 1general schedulability test is:
The
C C
B
T
i 1
27
2
i
i

k
Tk

k
Tk
Spring 2002
 U (n) , k  1, 2, ..., n
Real-Time Systems (Shin)

CT test with blocking
–
–
A set of periodic tasks, scheduled according to the rate
monotonic policy, is schedulable if each task meets its first
deadline.
That is, if completion time of each task, Wi, is less than or
Wi (k ) 
equal to its deadline.
Wi (k  1)  Bi  Ci   
Cj
j i  T j

blocking execution preemption
28
Spring 2002
Real-Time Systems (Shin)

Exercise: Schedulability with priority
inversion
Tasks C
T
D
U
B
Given: (where
1 τ3 is4 nonpreemptive
0.250)
τ
τ
τ
29
1
2
3
2
1
6
10
1
0.334
0.100
a. fill in column B
b. construct a schedulability model
c. which tasks are
schedulable?
Spring
2002
Real-Time Systems (Shin)

Synchronization problem
–
–
analyze the effects of task interactions on
schedulability
in this discussion

30
synchronization = mutual exclusion
Spring 2002
Real-Time Systems (Shin)
Sample Problem : Synchronization
Periodics
Servers
100 msec
Aperiodics
Emergency
50 msec
1
20 msec
Data Server
5 msec
2 msec
150 msec
2
20 msec
40 msec
Comm Server
350 msec
10 msec
10 msec
3
Deadline 6 msec
after arrival
Routine
40 msec
2 msec
100 msec
Desired response
4 msec average
2’s deadline is 20 msec before the end of each period.
31
Spring 2002
Real-Time Systems (Shin)
Synchronization Model
Legend
Critical section
Executing
1:{…P(S)…V(S)…}
3:{…P(S)…V(S)…}
attempts to lock S (blocked)
Blocked
S locked
B
S unlocked
τ1(H)
τ2(M)
S locked
S unlocked
τ3(L)
32
Time
Spring 2002
Real-Time Systems (Shin)
Priority Inversion in Synchronization
Legend
1:{…P(S1)…V(S1)…}
3:{…P(S1)…V(S1)…}
Executing
S1 locked
attempts to lock S1 (blocked)
τ1(H)
τ2(M)
S1 locked
S1 unlocked
Blocked
B
S1 locked
S1 unlocked
τ3(L)
33
Time
Spring 2002
Real-Time Systems (Shin)
B

Synchronization protocols
–
–
–
–

34
no preemption
highest locker’s priority
basic priority inheritance
priority ceiling
Each protocol prevents unbounded priority
inversion
Spring 2002
Real-Time Systems (Shin)
Nonpreemption Protocol
Legend
2:{…P(S1)…V(S1)…}
4:{…P(S1)…V(S1)…}
Ready
S1 locked
Executing
Blocked
B
τ1(H)
Ready
τ2
Ready
τ3
S1 locked
S1 unlocked
τ4(L)
Time
35
Spring 2002
Real-Time Systems (Shin)
B
Highest Locker’s Priority Protocol
2:{…P(S1)…V(S1)…}
4:{…P(S1)…V(S1)…}
Legend
S1 locked
Executing
Blocked
τ1(H)
Ready
τ2
B
B
Ready
τ3
S1 locked
S1 unlocked
τ4(L)
Time
36
Spring 2002
Real-Time Systems (Shin)
B
Basic Inheritance Protocol (BIP)
2:{…P(S1)…V(S1)…}
4:{…P(S1)…V(S1)…}
Legend
S1 locked
Executing
Blocked
τ1(H)
Attempts to lock S1
S1 locked
S1 unlocked
Ready
B
τ2
Ready
τ3
S1 locked
S1 unlocked
τ4(L)
Time
37
Spring 2002
Real-Time Systems (Shin)
B
Priority Ceiling Protocol (PCP)
2:{…P(S1)…V(S1)…}
4:{…P(S1)…V(S1)…}
Legend
S1 locked
Executing
Blocked
τ1(H)
Attempts to lock S1
S1 locked
S1 unlocked
Ready
B
τ2
Ready
τ3
S1 locked
S1 unlocked
τ4(L)
Time
38
Spring 2002
Real-Time Systems (Shin)
B

Priority ceiling
–
priority ceiling of a semaphore S


–
simply the priority of the highest priority task that may lock
semaphore S
“system” ceiling: the maximum ceiling of all semaphores
currently locked by other tasks
the idea behind PCP
τ (high)
 to create a total
priority ordering of executing and suspended
critical sections
τ (low)
S
priority ceiling of semaphore S is the priority of τ (high)
39
Spring 2002
Real-Time Systems (Shin)

Priority ceililng protocol(PCP) rules
–
–
–
Preemption: A task with a higher execution priority
always preempts tasks with lower execution
priorities.
Ceiling: A task cannot enter its critical section
unless its priority is higher than the system ceiling.
Inheritance: A lower priority task that blocks a
higher priority task Th inherits the priority of task Th.
[When there is only one semaphore, PCP works just like
BIP.]
40
Spring 2002
Real-Time Systems (Shin)

PCP rules - revisited
–
1. when T wants to enter the c. s.


–
2. while running inside the c. s.

–
can preempt a lower priority task
4. when T completes execution normally

41
always inherits highest priority among the blocked
3. When T does not want to enter the c. s.

–
its priority must be higher than system ceiling
when exiting, wake up the highest priority task among the
blocked
if there are many tasks of same priority ready for execution,
schedule the task blocking other tasks
Spring 2002
Real-Time Systems (Shin)
PCP
Example
J0 = { …, P(S0), …, V(S0), … }
J1 = { …, P(S1), …, P(S2), …, V(S2), …, V(S1), … }
J2 = { …, P(S2), …, P(S1), …, V(S1), …, V(S2), … }
Critical section guarded by
S0
S0 locked
S1
S2
S0 unlocked
J0
S1 locked
Blocked by J2
S2 locked S2 unlocked
S1 unlocked
(attempt to
lock S1)
J1
S1 unlocked
S1 locked
S2 unlocked
S2 locked
J2
t0
42
t1
t2
t3
t4
t5
t6
Spring 2002
t7
t8
t9
t10 t11 t12 t13
time
Real-Time Systems (Shin)
PCP
Example
J0 = { …, P(S0), …, V(S0), …, P(S1), …, V(S1), ... }
J1 = { …, P(S2), …, V(S2), … }
J2 = { …, P(S2), …, P(S1), …, V(S1), …, V(S2), … }
Critical section guarded by
S0
S1
S2
S0 unlocked S1 locked
S1 unlocked
S0 locked
J0
blocked by J2
(attempt to lock S1)
(attempt to lock S0)
blocked by J2
S2 locked
S2 unlocked
J1
S2 locked
S1 locked
S1 unlocked
S2 unlocked
J2
t0
43
t1
t2
t3
t4
t5
t6
Spring 2002
t7
t8
t9
t10 t11 t12 t13 t14
time
Real-Time Systems (Shin)
Example Of Chained Blocking (BIP)
1:{…P(S1)…P(S2)…V(S2)...V(S1)…}
2:{…P(S1)…V(S1)…}
3:{…P(S2)…V(S2)…}
Legend
S1 locked
S2 locked
Blocked
Attempts to lock S1 (blocked)
τ1(H)
τ2(M)
B
B
S1 locked
B
Attempts to lock S2 (blocked)
B
S1 unlocked
S2 locked
S2 unlocked
τ3(L)
Time
44
Spring 2002
Real-Time Systems (Shin)
Blocked At Most Once (PCP)
1:{…P(S1)…P(S2)…V(S2)...V(S1)…}
2:{…P(S1)…V(S1)…}
3:{…P(S2)…V(S2)…}
Legend
S1 locked
S2 locked
S1 locked S2 unlocked
S1 locked
Ceiling
S1 unlocked
Attempts to lock S1 (blocked)
τ1(H)
Attempts to lock S1 (blocked)
S1 locked
S1 unlocked
τ2(M)
S2 locked
S2 unlocked
τ3(L)
Time
45
Spring 2002
Real-Time Systems (Shin)
Deadlock: Using BIP
Legend
1:{…P(S1)…P(S2)…V(S2)...V(S1)…}
2:{…P(S2)…P(S1)…V(S1)...V(S2)…}
S1 locked
S2 locked
Blocked
B
attempts to lock S2 (blocked)
locks S1
τ1(H)
B
S2 locked
Attempts to lock S1 (blocked)
τ2(M)
Time
46
Spring 2002
Real-Time Systems (Shin)
Deadlock Avoidance: Using PCP
1:{…P(S1)…P(S2)…V(S2)...V(S1)…}
2:{…P(S2)…P(S1)…V(S1)...V(S2)…}
Legend
S1 locked
S2 locked
Ceiling
B
locks S2
attempts to lock S1 (blocked)
locks S1
τ1(H)
locks S2
locks S1
unlocks S1 unlocks S2
τ2(M)
Time
47
Spring 2002
Real-Time Systems (Shin)

Summary of synchronization protocols
–
No preemption

–
Highest locker’s priority

–
when a lower priority task blocks the execution of a higher
priority task, it inherits the priority of the task it blocks
Priority ceiling

48
execute critical sections with the priority of the highest priority
task that may lock the semaphore
Priority inheritance

–
do not allow preemption during execution of critical sections
priority inheritance plus priority ceiling rule for locking
semaphores
Spring 2002
Real-Time Systems (Shin)
Bounded
(continued)
Blocked at Deadlock
priority
 Summary
most once aviodance
Protocol of synchronization protocols
inversion
Nonpremptible
Yes1
Yes1
Yes
critical sections
Highest locker’s
Yes1
Yes1
Yes
priority
No
No
Yes
Basic inheritance
Yes
Yes2
Yes
Priority ceiling
1 Only if tasks do not suspend within critical sections
2 PCP is not affected if tasks suspend within critical sections.
49
Spring 2002
Real-Time Systems (Shin)

C
T
D
B
Sample Problem: Using BIP
T1
20 100
30
T2
40
150
T3
100
350
20
10
D: preperiod deadline
50
Spring 2002
Real-Time Systems (Shin)
Schedulability model using BIP
C1

T1
C1

T1
C1

T1
51


B1

T1


100
C2  D2

T2
C2
20
U (1)

C3
B2

T2
 
 

T
T
2

U (2)
3

100

0.50  1.0
 20

20
  

100
Spring 2002
30
10
   

20
100
U (3)

40
150
0.667  0.828
150
40
100
150
350
0.753  0.779
Real-Time Systems (Shin)
Download