0% found this document useful (0 votes)
23 views

Deadline First Algorithm - Dereje

- Earliest Deadline First (EDF) is an important dynamic priority scheduling algorithm where the priority of a job is inversely proportional to its absolute deadline. - EDF has an optimal scheduling bound of U ≤ 1 where U is the total utilization of the task set. It can schedule task sets that fixed priority scheduling cannot. - The document describes the demand bound function analysis technique used to analyze the schedulability of a task set under EDF scheduling. The task set is schedulable if the demand bound function is below the time interval for all intervals up to L*.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Deadline First Algorithm - Dereje

- Earliest Deadline First (EDF) is an important dynamic priority scheduling algorithm where the priority of a job is inversely proportional to its absolute deadline. - EDF has an optimal scheduling bound of U ≤ 1 where U is the total utilization of the task set. It can schedule task sets that fixed priority scheduling cannot. - The document describes the demand bound function analysis technique used to analyze the schedulability of a task set under EDF scheduling. The task set is schedulable if the demand bound function is below the time interval for all intervals up to L*.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 60

Sistemi in tempo reale

Earliest Deadline First


Giuseppe Lipari Scuola Superiore SantAnna Pisa -Italy

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 1/38

Earliest Deadline First


An important class of scheduling algorithms is the class of

dynamic priority algorithms


In dynamic priority algorithms, the priority of a task can change during its
execution Fixed priority algorithms are a sub-class of the more general class of dynamic priority algorithms: the priority of a task does not change.

The most important (and analyzed) dynamic priority algorithm is

Earliest Deadline First (EDF)


The priority of a job (istance) is inversely proportional to its absolute
deadline; In other words, the highest priority job is the one with the earliest deadline; If two tasks have the same absolute deadlines, chose one of the two at random (ties can be broken arbitrarly). The priority is dynamic since it changes for different jobs of the same task.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 2/38

Example: scheduling with RM


We schedule the following task set with FP (RM priority assignment). 1 = (1, 4), 2 = (2, 6), 4 = (3, 8). U = 1 + 2 + 3 = 23
4 6 8 24

The utilization is greter than the bound: there is a deadline miss!


1

Observe that at time 6, even if the deadline of task 3 is very close, the scheduler
decides to schedule task 2 . This is the main reason why 3 misses its deadline!

10

12

14

16

18

20

22

24

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 3/38

Example: scheduling with EDF


Now we schedule the same task set with EDF. 1 = (1, 4), 2 = (2, 6), 4 = (3, 8). U = 1 + 2 + 3 = 23
4 6 8 24

Again, the utilization is very high. However, no deadline miss in the hyperperiod.
1

Observe that at time 6, the problem does not appear, as the earliest deadline job
(the one of 3 ) is executed.

10

12

14

16

18

20

22

24

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 4/38

Schedulability bound with EDF

Given a task set of periodic or sporadic tasks, with relative deadlines equal to periods, the task set is schedulable by EDF if and only if
Theorem
N

U=
i=1

Ci 1 Ti

EDF is an optimal algorithm, in the sense that if a task set if schedulable, then it is schedulable by EDF. In fact, if U > 1 no algorithm can succesfully schedule the task set; if U 1, then the task set is schedulable by EDF (and maybe by other algorithms).
Corollary

In particular, EDF can schedule all task sets that can be scheduled by FP, but
not vice versa.

Notice also that offsets are not relevant!

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 5/38

Advantages of EDF over FP


There is not need to dene priorities Remember that in FP, in case of offsets, there is not an optimal priority
assignment that is valid for all task sets

In general, EDF has less context switches In the previous example, you can try to count the number of context switches
in the rst interval of time: in particular, at time 4 there is no context switch in EDF, while there is one in FP.

Optimality of EDF We can fully utilize the processor, less idle times.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 6/38

Disadvantages of EDF over FP


EDF is not provided by any commercial RTOS, because of some disadvantage Less predictable Looking back at the example, lets compare the response time of task 1 : in
FP is always constant and minimum; in EDF is variable.

Less controllable if we want to reduce the response time of a task, in FP is only sufcient to
give him an higher priority; in EDF we cannot do anything; We have less control over the execution

More implementation overhead FP can be implemented with a very low overhead even on very small
hardware platforms (for example, by using only interrupts); EDF instead requires more overhead to be implemented (we have to keep track of the absolute deadline in a long data structure); There are method to implement the queueing operations in FP in O(1); in EDF, the queueing operations take O(log N), where N is the number of tasks.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 7/38

Domino effect
In case of overhead (U > 1), we can have the domino effect with EDF: it means
that all tasks miss their deadlines.

An example of domino effect is the following;


1 2 3 4

All tasks missed their deadline almost at the same time.

10

12

14

16

18

20

22

24

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 8/38

Domino effect: considerations


FP is more predictable: only lower priority tasks miss their deadlines! In the
previous example, if we use FP:
1 2 3 4

As you can see, while 1 and 2 never miss their deadlines, 3 misses a lot of
deadline, and 4 does not execute!

10

12

14

16

18

20

22

24

However, it may happen that some task never executes in case of high overload,
while EDF is more fair (all tasks are treated in the same way).
edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 9/38

Response time computation


Computing the response time in EDF is very difcult, and we will not present it in
this course. In FP, the response time of a task depends only on its computation time and on the interference of higher priority tasks In EDF, it depends in the parameters of all tasks! If all offset are 0, in FP the maximum response time is found in the rst job of a task, In EDF, the maximum response time is not found in the rst job, but in a later job.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 10/38

Generalization to deadlines different from period


EDF is still optimal when relative deadlines are not equal to the

periods.
However, the schedulability analysis formula become more

complex.
If all relative deadlines are less than or equal to the periods, a rst

trivial (sufcient) test consist in substituting Ti with Di :


N

U =
i=1

Ci 1 Di

In fact, if we consider each task as a sporadic task with interarrival

time Di instead of Ti , we are increasing the utilization, U < U . If it is still less than 1, then the task set is schedulable. If it is larger than 1, then the task set may or may not be schedulable.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 11/38

Demand bound analysis


In the following slides, we present a general methodology for schedulability
analysis of EDF scheduling;

Lets start from the concept of demand function Denition: the demand function for a task i is a function of an interval [t1 , t2 ] that
gives the amount of computation time that must be completed in [t1 , t2 ] for i to be schedulable: cij dfi (t1 , t2 ) = aij t1 dij t2

For the entire task set:


N

df (t1 , t2 ) =
i=0

dfi (t1 , t2 )

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 12/38

Example of demand function


1 = (1, 4, 6), 2 = (2, 6, 8), 3 = (3, 5, 10)
1 2 3

10 12 14 16 18 20 22 24 26 28 30 32

Lets compute df () in certain intervals;

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 13/38

Example of demand function


1 = (1, 4, 6), 2 = (2, 6, 8), 3 = (3, 5, 10)
1 2 3

10 12 14 16 18 20 22 24 26 28 30 32

Lets compute df () in certain intervals; df (7, 22) = 2 C1 + 2 C2 + 1 C3 = 9;

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 13/38

Example of demand function


1 = (1, 4, 6), 2 = (2, 6, 8), 3 = (3, 5, 10)
1 2 3

10 12 14 16 18 20 22 24 26 28 30 32

Lets compute df () in certain intervals; df (7, 22) = 2 C1 + 2 C2 + 1 C3 = 9; df (3, 13) = 1 C1 = 1;

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 13/38

Example of demand function


1 = (1, 4, 6), 2 = (2, 6, 8), 3 = (3, 5, 10)
1 2 3

10 12 14 16 18 20 22 24 26 28 30 32

Lets compute df () in certain intervals; df (7, 22) = 2 C1 + 2 C2 + 1 C3 = 9; df (3, 13) = 1 C1 = 1; df (10, 25) = 2 C1 + 1 C2 + 2 C3 = 7;

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 13/38

Condition for schedulability


Theorem: A task set is schedulable under EDF if and only if:

t1 , t2 > t1

df (t1 , t2 ) t2 t1

In the previous example: df (7, 22) = 9 < 15 OK; df (3, 13) = 1 < 9 OK; df (10, 25) = 7 < 15 OK; ... We should check for an innite number of intervals! We need a a way to simplify the previous condition.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 14/38

Demand bound function


Theorem: For a set of synchronous periodic tasks (i.e. with no

offset),
t1 , t2 > t1 df (t1 , t2 ) df (0, t2 t1 )
In plain words, the worst case demand is found for intervals starting at 0. Denition: Demand Bound function:

dbf (L) = max (df (t, t + L)) = df (0, L).


t

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 15/38

Condition on demand bound


Theorem: A set of synchronous periodic tasks is schedulable by

EDF if and only if:


L dbf (L) < L;
However, the number of intervals is still innite. We need a way to limit the
number of intervals to a nite number.

Theorem: A set if synchronous periodic tasks, with U < 1, is

schedulable by EDF if and only if:


L L

dbf (L) L

U max(Ti Di ) L = 1U

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 16/38

Example of computation of the dbf


1 = (1, 4, 6), 2 = (2, 6, 8), 3 = (3, 5, 10) U = 1/6 + 1/4 + 3/10 = 0.7167, L = 12.64. We must analyze all deadlines in [0, 12], i.e. (3, 5, 6, 10).
1 2 3 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

Lets compute dbf ()

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 17/38

Example of computation of the dbf


1 = (1, 4, 6), 2 = (2, 6, 8), 3 = (3, 5, 10) U = 1/6 + 1/4 + 3/10 = 0.7167, L = 12.64. We must analyze all deadlines in [0, 12], i.e. (3, 5, 6, 10).
1 2 3 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

Lets compute dbf () df (0, 4) = C1 = 1 < 4;

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 17/38

Example of computation of the dbf


1 = (1, 4, 6), 2 = (2, 6, 8), 3 = (3, 5, 10) U = 1/6 + 1/4 + 3/10 = 0.7167, L = 12.64. We must analyze all deadlines in [0, 12], i.e. (3, 5, 6, 10).
1 2 3 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

Lets compute dbf () df (0, 4) = C1 = 1 < 4; df (0, 5) = C1 + C3 = 4 < 5;

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 17/38

Example of computation of the dbf


1 = (1, 4, 6), 2 = (2, 6, 8), 3 = (3, 5, 10) U = 1/6 + 1/4 + 3/10 = 0.7167, L = 12.64. We must analyze all deadlines in [0, 12], i.e. (3, 5, 6, 10).
1 2 3 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

Lets compute dbf () df (0, 4) = C1 = 1 < 4; df (0, 5) = C1 + C3 = 4 < 5; df (0, 6) = C1 + C2 + C3 = 6 6;


edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 17/38

Example of computation of the dbf


1 = (1, 4, 6), 2 = (2, 6, 8), 3 = (3, 5, 10) U = 1/6 + 1/4 + 3/10 = 0.7167, L = 12.64. We must analyze all deadlines in [0, 12], i.e. (3, 5, 6, 10).
1 2 3 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

Lets compute dbf () df (0, 4) = C1 = 1 < 4; df (0, 5) = C1 + C3 = 4 < 5; df (0, 6) = C1 + C2 + C3 = 6 6; df (0, 10) = 2C1 + C2 + C3 = 7 10;
edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 17/38

Algorithm
Of course, it should not be necessary to draw the schedule to see if the system
is schedulable or not.

First of all, we need a formula for the dbf :


N

dbf (L) =
i=1

L Di Ti

+ 1 Ci

The algorithm works as follows: We list all deadlines of all tasks until L . Then, we compute the dbf for each deadline and verify the condition.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 18/38

The previous example


1 2 3

4 6 5

10

L dbf

4 1

5 4

6 6

10 7

Since, for all L < L we have dbf (L) L, then the task set is schedulable.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 19/38

Another example
Ci 1 2 4.5 Di 2 4 8 Ti 4 5 15

1 2 3
U = 0.9; L = 9 7 = 63;

hint: if L is too large, we can stop at the rst idle time. The rst idle time can be found with the following recursive

equations:
N

W (0) =
i=1 N

Ci

W (k ) =
i=1

W (k 1) Ci Ti
edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 20/38

Example
1 2 3

2 4 8

6 9

10 14

14

t dbf

2 1

4 3

6 4

8 8.5

10

14

The task set is not schedulable! Deadline miss at 8.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 21/38

In the schedule...
1 2 3

10

12

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 22/38

EDF and Shared resources

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 23/38

Synchronization protocols
Both the Priority inheritance Protocol and thr Stack Resource

Policy can be used under EDF without any modication.


Lets rst consider PI. When a higher priority job is blocked by a lower priority job on a shared
mutex sempahore, then the lower priority job inherits the priority of the blocked job. In EDF, the priority of a job is inversely proportional to its absloute deadline. Here, you should substiture higher priority job with job with an early deadline and inherits the priority with inherits the absolute deadline.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 24/38

Preemption levels
To compute the blocking time, we must rst order the tasks based

on their preemption levels:


Denition: Every task i is assigned a preemption level i such

that it can preempt a task j if and only if i > j .


In xed priority, the preemption level is the same as the priority. In EDF, the preemption level is dened as i = 1 . Di In fact, as the following gures shows, if i can preempt j , then the
following two conditions must hold: i arrives after j has started to execute and hence ai > aj , the absolute deadline of i is shorter than the absolute deadline of j (di dj ). It follows that di Di Dj Di i = ai + Di dj = aj + Dj aj ai < 0 < Dj > j
edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 25/38

Preemption levels
With a graphical example:
1 2 0 2 4 6 8 10 12

Notice that 1 > 2 ; In this case, 1 preempts 2 .

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 26/38

Preemption levels
With a graphical example:
1 2 0 2 4 6 8 10 12

Notice that 1 > 2 ; 2 cannot preempt 1 (because its relative deadline is greater than

1 ).

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 26/38

Computing the blocking time


To compute the blocking time for EDF + PI, we use the same

algorithms as for FP + PI. In particular, the two fundamental theorems are still valid:
Each task can be blocked only once per each resource, and only for the
length of one critical section per each task.

In case on non-nested critical sections, build a resource usage

table
At each row put a task, ordered by decreasing preemption levels At each column, put a resource In each cell, put the worst case duration ij of any critical section of task i
on resource Sj

The algorithm for the blocking time for task i is the same: Select the rows below the i-th; we must consider only those column on which it can be blocked (used by
itself or by higher priority tasks) Select the maximum sum of the k,j with the limitation of at most one k,j for each k and for each j .
edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 27/38

Schedulability formula
In case of relative deadlines equal to periods, we have:
i

i = 1, . . . , N
j =1

Cj Bi + 1 Tj Ti

In case of relative deadlines less than the periods:

i = 1, . . . , N
N j =1

L < L

L Dj Tj L =

+ 1 Cj + Bi L U max(Ti Di ) 1U i

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 28/38

Complete example
Here we analyze a complete example, from the parameters of the tasks, and from the resource usage table, we compute the Bi s, and test schedulability.
1 2 3 4 Ci 2 5 4 9 Ti 10 15 20 45 Ui .2 .33 .2 .2 R1 1 2 0 3 R2 0 1 2 4 Bi ? ? ? ?

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 29/38

Complete example: blocking times


Blocking time for 1 :

1 2 3 4

Ci 2 5 4 9

Ti 10 15 20 45

Ui .2 .33 .2 .2

R1 1 2 0 3

R2 0 1 2 4

Bi 3 ? ? ?

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 30/38

Complete example: blocking times


Blocking time for 2 :

1 2 3 4

Ci 2 5 4 9

Ti 10 15 20 45

Ui .2 .33 .2 .2

R1 1 2 0 3

R2 0 1 2 4

Bi 3 5 ? ?

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 30/38

Complete example: blocking times


Blocking time for 3 :

1 2 3 4

Ci 2 5 4 9

Ti 10 15 20 45

Ui .2 .33 .2 .2

R1 1 2 0 3

R2 0 1 2 4

Bi 3 5 4 ?

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 30/38

Complete example: blocking times


Blocking time for 4 :

1 2 3 4

Ci 2 5 4 9

Ti 10 15 20 45

Ui .2 .33 .2 .2

R1 1 2 0 3

R2 0 1 2 4

Bi 3 5 6 0

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 30/38

Complete Example: schedulability test


General formula:
i

i = 1, . . . , 4
j =1

Cj Bi + 1 Tj Ti

Task 1 :

C1 B1 + = .2 + .3 = .5 1 T1 T1

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 31/38

Complete Example: schedulability test


General formula:
i

i = 1, . . . , 4
j =1

Cj Bi + 1 Tj Ti

Task 2 :

C1 C2 B2 + + = .5333 + .3333 = .8666 1 T1 T2 T2

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 31/38

Complete Example: schedulability test


General formula:
i

i = 1, . . . , 4
j =1

Cj Bi + 1 Tj Ti

Task 3 :

C1 C2 C3 B3 + + + = .2 + .333 + .2 + .2 = 0.9333 1 T1 T2 T3 T3

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 31/38

Complete Example: schedulability test


General formula:
i

i = 1, . . . , 4
j =1

Cj Bi + 1 Tj Ti

Task 4 :

C1 C2 C3 C4 B4 + + + + = .2 + .3333 + .2 + .2 + 0 = .9333 1 T1 T2 T3 T4 T4

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 31/38

Complete example: scheduling


Now we do an example of possible schedule. We assume that the task access the resources as follows:

1 2 3 4

L(S1 ) U(S1 ) S1 L(S1 ) S1 L(S2 ) S2 L(S1 ) S1 0 2 4 6 U(S1 ) L(S2 ) S2 8 10 12 14 16 U(S2 ) U(S1 ) L(S2 ) U(S2 ) S2 U(S2 )

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 32/38

Complete example: schedule

L1

U1 S1

L1 U1 S1

L1 U1 S1

L1 S1

U1 L2 S2

L1 S1

U1 L2

U2 S2

L2

U2 S2

L2 S2

U2

L1 S1

U1

L2 S2

U2

10

12

14

16

18

20

22

24

26

28

30

32

34

In the graph, L1 = Lock(S1 ), U1 = Unlock(S1 ), L2 = Lock(S2 ), U2 = Unlock(S2 ). The tasks start with an offset, because in the example we want to highlight the
blocking times at the beginning.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 33/38

Stack Resource Policy


Once we have dened the preemption levels, it is easy to extend

the stack resource polity to EDF.


The main rule is the following: The ceiling of a resource is dened as the highest preemption level among
the ones of all tasks that access it; At each instant, the system ceiling is the highest among the ceilings of the locked resources; A task is not allowed to start executing until its deadline is the shortest one and its preemption level is strictly greater than the system ceiling;

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 34/38

Complete Example
Now we analyze the previous example, assuming EDF+SRP.
1 2 3 4 Ci 2 5 4 9 Ti 10 15 20 45 Ui .2 .33 .2 .2 R1 1 2 0 3 R2 0 1 2 4 Bi ? ? ? ?

Let us rst assign the preemption levels. The actual value of the preemption levels is not important, as long as they
are assigned in the right order. To make calcumations easy, we set 1 = 4, 2 = 3, 3 = 2 , 4 = 1.

Then the resource ceilings: ceil(R1 ) = 1 = 4, ceil(R2 ) = 2 = 3.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 35/38

Schedule

L1

10

12

14

16

18

20

22

24

26

28

30

32

34

At this point, the system ceiling is raised to 1 (the ceiling of R1 ).

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 36/38

Schedule

L1

10

12

14

16

18

20

22

24

26

28

30

32

34

At this point, the system ceiling is raised to 1 (the ceiling of R1 ). Task 3 cannot
start executing, because 3 < 1 . Same for 2 .

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 36/38

Schedule

L1 S1

U1

10

12

14

16

18

20

22

24

26

28

30

32

34

At this point, the system ceiling is raised to 1 (the ceiling of R1 ). Task 3 cannot
start executing, because 3 < 1 . Same for 2 .

The system ceiling goes back to 0. Now 2 can start.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 36/38

Schedule

L1

L1 S1

U1

10

12

14

16

18

20

22

24

26

28

30

32

34

At this point, the system ceiling is raised to 1 (the ceiling of R1 ). Task 3 cannot
start executing, because 3 < 1 . Same for 2 .

The system ceiling goes back to 0. Now 2 can start. in this example, we assume that 2 locks R1 just before 1 arrives. Then, sys ceil
= 1 and 1 cannot preempt.
edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 36/38

Schedule

L1 S1

U1

L1 S1

U1

10

12

14

16

18

20

22

24

26

28

30

32

34

At this point, the system ceiling is raised to 1 (the ceiling of R1 ). Task 3 cannot
start executing, because 3 < 1 . Same for 2 .

The system ceiling goes back to 0. Now 2 can start. in this example, we assume that 2 locks R1 just before 1 arrives. Then, sys ceil
= 1 and 1 cannot preempt.
edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 36/38

Schedule

L1 U1 S1

L1 S1

U1

L1 S1

U1

10

12

14

16

18

20

22

24

26

28

30

32

34

At this point, the system ceiling is raised to 1 (the ceiling of R1 ). Task 3 cannot
start executing, because 3 < 1 . Same for 2 .

The system ceiling goes back to 0. Now 2 can start. in this example, we assume that 2 locks R1 just before 1 arrives. Then, sys ceil
= 1 and 1 cannot preempt.
edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 36/38

Schedule

L1 U1 S1

L1 U1 S1

L1 S1

U1

L2 U2 S2

U L2 S2

L1 S1

U1

10

12

14

16

18

20

22

24

26

28

30

32

34

At this point, the system ceiling is raised to 1 (the ceiling of R1 ). Task 3 cannot
start executing, because 3 < 1 . Same for 2 .

The system ceiling goes back to 0. Now 2 can start. in this example, we assume that 2 locks R1 just before 1 arrives. Then, sys ceil
= 1 and 1 cannot preempt.
edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 36/38

Schedule

L1 U1 S1

L1 U1 S1

L1 S1

U1

L2 U2 S2

U L2 S2

L1 S1

U1

10

12

14

16

18

20

22

24

26

28

30

32

34

At this point, the system ceiling is raised to 1 (the ceiling of R1 ). Task 3 cannot
start executing, because 3 < 1 . Same for 2 .

The system ceiling goes back to 0. Now 2 can start. in this example, we assume that 2 locks R1 just before 1 arrives. Then, sys ceil
= 1 and 1 cannot preempt.
edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 36/38

Schedule

L1 U1 S1

L1 U1 S1

L1 U1 S1

L1 S1

U1

L2 U2 S2

L1 S1

U1 L2 U2 S2

U L2 S2

L2 S2

U1

L1 S1

U1

L2

U2

10

12

14

16

18

20

22

24

26

28

30

32

34

At this point, the system ceiling is raised to 1 (the ceiling of R1 ). Task 3 cannot
start executing, because 3 < 1 . Same for 2 .

The system ceiling goes back to 0. Now 2 can start. in this example, we assume that 2 locks R1 just before 1 arrives. Then, sys ceil
= 1 and 1 cannot preempt.
edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 36/38

Blocking time computation


The computation of the blocking time is the same as in the case of FP + SRP; The only difference is that, when the resource access table is built, tasks are
ordered by decreasing preemption level, instead than by priority.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 37/38

Complete example
Same example of before, but with SRP instead of PI.

edf.tex Sistemi in tempo reale Giuseppe Lipari 19/6/2005 20:03 p. 38/38

You might also like