52
06/10/22 COSC-4301-01, Lecture 3 1 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

Embed Size (px)

Citation preview

Page 1: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 1

Real-Time Systems, COSC-4301-01, Lecture 3

Stefan Andrei

Page 2: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 21-2

Reminder of Last Lecture Real-Time Scheduling and schedulability

analysis Schedulability test Schedulability utilization Optimal scheduler Determining computation time Uniprocessor scheduling

Scheduling preemptable and independent tasks Fixed-priority schedulers: RM, DM Dynamic-priority schedulers: EDF, LL

Page 3: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 3

Overview of this lecture Sporadic tasks Scheduling nonpreemptable tasks Scheduling nonpreemptable sporadic tasks Scheduling nonpreemptable tasks with

precedence constraints Communicating periodic tasks: deterministic

rendezvous model Chapter 3 of [Cheng; 2002], Sections 3.2.1,

3.2.2, 3.2.3, 3.2.4, 3.2.5

Page 4: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 4

Sporadic tasks

Sporadic tasks may be released at any time instant, but a minimum separation exists between releases of consecutive instances of the same sporadic task.

Can be modeled by periodic tasks with periods equal to the minimum separation.

In this way, we can re-use the previous scheduling algorithms.

Page 5: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 5

Sporadic tasks (comparison with periodic tasks) Unlike periodic tasks, sporadic tasks are released

irregularly or may not be released at all. So, even though the scheduler allocates a time slice

to the periodic equivalent of a sporadic task, this sporadic task may not actually be released.

When this sporadic task does request service, it immediately runs if its release time is within its corresponding scheduled time slice.

Otherwise, it waits for the next scheduled time slice for running its periodic equivalent.

Page 6: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 6

Example 1 Two periodic tasks J1 and J2 arriving at time 0, and

one sporadic task J3 with minimum separation time of 60.

J1: c1 = 10, p1 = 50

J2: c2 = 15, p2 = 80

J3: c3 = 20, p3 = 60 A RM schedule is given below:

Figure 3.9 from [Cheng; 2005], page 56

Page 7: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 7

The second approach Treat sporadic tasks as one periodic task JS with the

highest priority and a period chosen to accommodate the minimum separations and computation requirements of this collection of sporadic tasks.

Any sporadic task may run within the time slices assigned to JS while the other periodic tasks run outside of these time slices.

Example: JS: cS = 20, pS = 60 Figure 3.10 from [Cheng; 2005], page 57

Page 8: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 8

The third approach Deferred server (DS) [Lehosczky, Sha, Strosnider;

1987] DS is similar to second approach, with the

modification: The periodic task corresponding to the collection of sporadic

tasks is the deferred server. When no sporadic task waits for service during a time

slice assigned to sporadic tasks, the processor runs the other (periodic) tasks.

If a sporadic task is released, then the processor preempts the currently running task and runs the sporadic task for a time interval up to the total time slice assigned to sporadic tasks.

Page 9: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 9

Deferred server technique. Example JS: cS = 20, pS = 60 Deferred server scheduler allocates 20 time units to

sporadic tasks every 60 time units. Suppose a sporadic task J1 arrives with c1 = 30 at

time 20. Since only 20 time units are available in each period

of 60 time units, it is scheduled to run from time 20 and preempted at time 40 (periodic tasks may run for the rest of 20 units).

Then at time 60 (the start of second period of 60 time units), J1 is scheduled to run for the other remaining 10 time units.

Page 10: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 10

Deferred server technique. Example (cont) Suppose a sporadic task J2 arrives with c2 = 50 at time 100

(because J1 is also a sporadic task that uses 10 time units from the time of 20 units allocated to 60-120).

Since only 10 time units are still available in the second period of 60 time units, it is immediately scheduled to run (for period 60-120, only 20 units are deferred to sporadic tasks).

At time 110, it is preempted (other periodic tasks may run). At time 120, J2 runs for 20 time units, and at time 180, J2

runs for the remaining 20 time units. Figure 3.11 from [Cheng; 2005], page 57

Page 11: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 11

Analytical approach of sporadic tasks For a deferred server with an arbitrary priority in a system of tasks scheduled using RM algorithm, no schedulable utilization is known that guarantees a feasible scheduling of the system.

However, for the special case in which DS has the shortest period among all tasks (that is, DS has the highest priority), a schedulable utilization exists: Schedulability Test 7 [Lehosczky, Sha, Strosnider; 1987], [Strosnider, Lehosczky; 1995]

Page 12: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 12

Schedulability test 7 Let pS and cS be the period and allocated time

for the DS. Let US=cS/pS be the utilization of the server. A set of n independent, preemptable, and

sporadic tasks with relative deadlines the same as the corresponding periods on a uniprocessor such that pS < p1 < …< pn < 2pS and pn > pS + cS, is RM-schedulable if the total utilization of this task set is at most U(n) = (n-1) [((US+2)/(US+1))(1/(n-1))-1].

Page 13: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 13

Schedulability test 7. Example 1 J1: c1 = 10, p1 = 50

J2: c2 = 15, p2 = 70

JS: cS = 10, pS = 40

US=cS/pS = 0.25

pS < p1 < …< pn < 2pS holds (n=2).

pn > pS + cS holds.

U(n) = (n-1) [((US+2)/(US+1))(1/(n-1))-1]=0.80 The total utilization of this task set is U=0.664, that is

less than U(n). According to Schedulability test 7, the above task set is

RM-schedulable.

Page 14: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 14

Schedulability test 7. Example 2 Let us consider the following preemptable task set

(JS is a sporadic task): J1: S1 = 0, c1 = 1, p1 = d1 = 5

J2: S2 = 0, c2 = 2, p2 = d2 = 7

JS: SS = 0, cS = 1, pS = dS = 4

1. compute the utilization rate.

2. check the applicability of RM-scheduling method based on schedulability test 7.

3. run the RM-scheduler for the above task set.

Page 15: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 15

Schedulability test 7. Example 2 U = 0.735… According to schedulability test 7, the following

conditions should be hold: ps<p1<p2<…< pn< 2ps translates to 4 < 5 < 7 < … < 8 (TRUE)

pn> ps+ cs translates to 7 > 4 + 1 (TRUE)

Also, U(n) = (n-1) [((US+2)/(US+1))(1/(n-1))-1], where US=1/4=0.25.

Therefore U(n) = 0.80, so U < U(n) (TRUE) Hence, schedulability test 7 can be applied to the

above task set.

Page 16: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 16

Schedulability test 7. Example 2 The RM schedule is:

05

10 15 20 25 30 35

Js

J2

J1

Page 17: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 17

Scheduling non-preemptable tasks So far we have assumed that tasks can be

preempted at any integer time instants. In practice, tasks may contain critical sections

that cannot be interrupted. Examples of critical sections:

Access and modify shared variables; Use shared resources (e.g., disks, printer).

An important goal is to reduce task waiting time and context-switching time – [Lee, Cheng; 1994].

Page 18: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 18

Scheduling non-preemptable tasks Using fixed-priority schedulers for non-real-time tasks

may potentially lead to the priority inversion problem [Sha, Rajkumar, Lehoczky; 1990] which occurs when a low-priority task with a critical section blocks a higher-priority task for an unbounded or long period of time.

The EDF and LL algorithms are no longer optimal if the tasks are not preemptable.

However, if all the tasks start at time 0, then EDF technique is still optimal.

So, an EDF algorithm may fail to meet a deadline of a task set S even if another scheduler can produce a feasible schedule for S (if starting time is not 0).

Page 19: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 19

Optimality for non-preemptable tasks Without preemption, we cannot transform a

non-EDF schedule into an EDF schedule by interchanging computation blocks of different tasks.

No priority-based scheduling algorithm is optimal for non-preemptable tasks with arbitrary start times, computation times, and deadlines, even on a uniprocessor [Mok; 1984].

Page 20: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

Scheduling non-preemptive task sets When preemption is not allowed, the

scheduling problem is known to be NP-complete.

However, if only non-idling schedulers are considered (all tasks have their start times = 0), the problem is again tractable:

(Theorem 3.4, page 30 from [Stankovic et. Al., 1997])

Non-preemptive non-idling EDF is optimal.

04/22/23 COSC-4301-01, Lecture 3 20

Page 21: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 21

Scheduling non-preemptable sporadic tasks We transform the sporadic tasks into

equivalent periodic tasks. A sporadic task (c, d, p) can be transformed

into and scheduled as a periodic task (c’, d’, p’) if the following conditions hold: d ≥ d’ ≥ c c’ = c p’ ≤ d – d’ + 1

A proof can be found in [Mok; 1984].

Page 22: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 22

Schedulability test 8 [Mok; 1984] Let M = MP MS be the set of all non-preemptable

tasks, where MP is the set of periodic tasks, and MS is the set of sporadic tasks.

Let the nominal (initial) laxity li of task Ti be di -ci.

Each sporadic task Ti be (ci, di, pi) is replaced by an equivalent periodic task T’i = (c’i, d’i, p’i) as follows: c’i = ci, d’i = ci, p’i = min(pi, li+1).

If we can find a feasible schedule for the resulting set M’ of periodic tasks, we can schedule M without knowing in advance the start (release or request) time of the sporadic tasks in MS.

Page 23: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 23

Schedulability test 8. Example Let us consider the following non-

preemptable task set (JS is a sporadic task): J1: S1 = 0, c1 = 2, p1 = d1 = 5

J2: S2 = 0, c2 = 2, p2 = d2 = 8

JS: SS = 0, cS = 2, pS = dS = 8

1. compute the utilization rate.

2. check the applicability of RM-scheduling method based on schedulability test 8.

Page 24: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 24

Schedulability test 8. Example U = 0.9

The laxity: l = ds - cs = 8 – 2 = 6. Now, replacing the sporadic task

Js = (cs, ds, ps) with equivalent periodic task

Js’ = (cs’, ds’, ps’),

where cs’= cs=2, ds’= cs=2, ps’=min(ps, ls + 1) = min(8, 6+1) =7.

So, the new sporadic task as an equivalent periodic task is JS’: SS’ = 0, cS’ = 2, pS’=7, dS’= 2.

Page 25: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 25

Schedulability test 8. Example Let us check the condition for schedulability

test 8. d>=d’ means 8>=2 (TRUE) c’=c means 2=2 (TRUE) p’ <= d-d’+1 means 7 <= 8-2+1 (TRUE) Since all the conditions hold true,

schedulability test 8 can be applied to the above task set.

Page 26: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 26

Scheduling non-preemptable tasks with precedence constraints We introduce precedence and mutual exclusion (nonpreemption) constraints to the scheduling problem for single-instance tasks (tasks that are neither periodic nor sporadic) on a uniprocessor.

A task precedence graph shows the required order of execution of a set of tasks. A node represents a task (e.g., Ti) and directed edges (e.g., )

indicate the precedence relationships between tasks. An edge Ti Tj means that Ti must complete before Tj can start.

For a task Ti, incoming edges from predecessor tasks indicate all these predecessor tasks

have to complete execution before Ti can start execution;

outgoing edges to successor tasks indicate that Ti must finish execution before the successor tasks can start execution.

Page 27: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 27

Scheduling algorithm A for tasks with precedence constraints A topological ordering of the tasks in a precedence

graph shows one allowable execution order of these tasks.

Suppose we have a set of n one-instance tasks with deadlines, all ready at time 0 and with precedence constraints described by a precedence graph.

Algorithm A:1. Sort the tasks in the precedence graph in topological order (so

tasks with no in-edges come first). If two or more tasks can be listed next, select the one with the earliest deadline, ties are broken arbitrarily;

2. Execute tasks one at a time following this topological order.

Page 28: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 28

Algorithm A. Example 1

Consider the set of tasks {T1, T2, T3, T4, T5, T6} with the following: precedence constraints: T1 T2, T1 T3, T2

T4, T2 T6, T3 T5, T3 T4, T4 T6

Computation times and deadlines: T1: c1 = 2, d1 = 4, T2: c2 = 3, d2 = 7, T3: c3 = 2, d3 = 10, T4: c4 = 8, d4 = 18, T5: c5 = 6, d5 = 24, T6: c6 = 4, d6 = 28.

Page 29: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 29

Algorithm A. Example 1 (cont) The precedence graph is:

Figure 3.14 from [Cheng; 2005], page 60

The EDF-schedule for tasks with precedence constraints is: Figure 3.16 from [Cheng; 2005], page 61

Page 30: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 30

Algorithm B Is a variation of Algorithm A by:

Considering the task with the latest deadline first Shifting the entire schedule toward 0.

Algorithm B:1. Sort the tasks according to their deadlines in non-decreasing

order and label the tasks such that d1 ≤ d2 ≤ … ≤ dn.

2. Schedule task Tn in the time interval [dn – cn, dn]

3. While there is a task to be scheduled do Suppose S is the set of all unscheduled tasks whose successors

have been scheduled. Schedule as late as possible the task with the latest deadline in S.

4. Shift the tasks toward time 0 while maintaining the execution order indicated at step 3.

Page 31: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 31

Refinement of Algorithm B Given a task set T={T1, …, Tn}, let us denote by seti the “starting

execution time” for Ti: task Ti executes in time interval [seti, seti + ci], where ci is its computation time;

1. Sort the tasks according to their deadlines in non-decreasing order and label the tasks such that d1 ≤ d2 ≤ … ≤ dn.

2. setn= dn – cn; // Schedule Tn in the time interval [dn – cn, dn]

3. for (i = n – 1; i > 0; i--) seti = min{di – ci, seti+1 – ci};

4. shift = set1;

5. for (i = 1; i <= n; i++) {

1. old_seti = seti;

2. seti = seti – shift; // Schedule Tn in the interval [seti, seti+ci]

3. if (i < n) shift = shift + seti+1 – (old_seti + ci);

6. }

Page 32: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 32

Algorithm B. Example 1 We re-consider the same example from slide 19, so

the first three steps of Algorithm B gives: Figure 3.15 from [Cheng; 2005], page 61

The schedule for tasks with precedence constraints after shifting tasks is: Figure 3.16 from [Cheng; 2005], page 61

Page 33: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 33

Algorithms A, B. Example 2

Let us consider the set of non-preemptable tasks T = {J1, J2, J3, J4} with the following:

precedence constraints: J1 J2, J1 J3, J2 J4, J3 J4

computation times and deadlines: J1: c1 = 2, d1 = 5,

J2: c2 = 3, d2 = 7,

J3: c3 = 2, d3 = 10,

J4: c4 = 8, d4 = 18,

1. compute the task precedence graph.

2. investigate the applicability of Algorithms A and B to T.

Page 34: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 34

Algorithms A, B. Example 2 The task precedence graph is:

Page 35: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 35

Algorithm A. Example 2

The EDF schedule for this task set with the precedence constraints:

Page 36: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 36

Algorithm B. Example 2

According to Algorithm B, the tasks are sorted in non decreasing order and tasks are labeled such that d1 < d2 < … < dn and tasks are scheduled in interval [dn-cn].

Running the refinement of Algorithm B, we get: set4 = 10, set3 = 8, set2 = 4, set1 = 2

shift = 2, set1 = 0,

shift = 2, set2 = 2,

shift = 3, set3 = 5,

shift = 3, set4 = 7.

Page 37: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 37

Communicating periodic tasks: deterministic rendezvous model Allowing tasks to communicate each other complicates

the scheduling problem. Interprocess communication leads to precedence

constraints not only between tasks but also between blocks within these tasks.

Example: Ada programming language provides the primitive

rendezvous() to allow one task to communicate with another at a specific point during the task execution.

Ada is used in the implementation of a variety of embedded and real-time systems, including airplane avionics.

Page 38: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 38

Deterministic rendezvous model If a task A wants to communicate with task B, then task

A executes rendezvous(B). Task A then waits until task B executes a corresponding rendezvous(A).

As a result, this pair of rendezvous() imposes a precedence constraint between the computations of tasks A and B by requiring all the computations prior to the rendezvous() primitive in each task be completed before the computations prior to the rendezvous() primitive in the other task can start.

To simplify the scheduling strategy, we consider the execution time of a rendezvous() primitive is zero or that its execution time is included in the preceding computation block.

Page 39: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 39

Deterministic rendezvous model (cont) A one-instance task can rendezvous with another

one-instance task. However, it is semantically incorrect to allow a

periodic task and a sporadic task to rendezvous with each other since the sporadic task may not run at all, causing the periodic task to wait forever for the matching rendezvous.

Two periodic tasks may rendezvous with each other, but there are constraints on the lengths of their periods to ensure correctness.

Page 40: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 40

Deterministic rendezvous model (cont) Two tasks are compatible if their periods are

multiples of each other. To allow two (periodic) tasks to communicate in any

form, they must be compatible. One attempt to schedule compatible and

communicating tasks is to use the EDF scheduler to execute the ready task with the nearest deadline that is not blocked due to a rendezvous.

The solution [Mok; 1983] to this scheduling problem starts by building a database for the runtime scheduler so that EDF algorithm can be used with dynamically assigned task deadline.

Page 41: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 41

Deterministic rendezvous model (cont) Let L be the longest period. Since the communicating tasks are

compatible, L is the same as the LCM (Lowest Common Multiple) of these tasks’ periods.

We denote a chain of scheduling blocks generated in chronological order for task Ti in interval (0, L) by Ti (1), Ti (2), …, Ti (mi).

Page 42: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 42

Deterministic rendezvous model (cont) If there is a rendezvous constraint with Ti targeting Tj

between

Ti (k) and Ti (k + 1),

Tj (l) and Tj (l + 1), then the following precedence relations are specified:

Ti (k) Tj (l + 1),

Tj (l) Ti (k + 1), Within each task, the precedence constraints

between blocks are:

Ti (1) Ti (2) … Ti (mi).

Page 43: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 43

Deterministic rendezvous model. Example T1: c1 = 1, d1 = p1 = 12.

T2: c2, 1 = 1, c2, 2 = 2, d2 = 5, p2 = 6.

T3: c3, 1 = 2, c3, 2 = 3, d3 = p3 = 12.

T2 must rendezvouz with T3 after the first scheduling block.

T3 must rendezvouz with T2 after the first and second scheduling blocks.

Page 44: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 44

Deterministic rendezvous model. Example’s solution L = 12 The precedence constraints between blocks

are: T2(1) T2(2) T2(3) T2(4) T3(1) T3(2)

Rendezvous constraints with T2(1) targeting T3(1): T2(1) T3(2), T3(1) T2(2)

Rendezvous constraints with T2(2) targeting T3(2): T2(2) T3(3), T3(2) T2(3)

Page 45: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 45

Deterministic rendezvous model. Example’s solution The EDF scheduler will provide the schedule (the first and

second occurrences of T2,1 stands for T2(1) and T2(3), respectively, etc): Figure 3.18 from [Cheng; 2005], page 63

The solution is infeasible because T2(2) should be before 5 time units, and T2(4) should be before 5+6=11 time units.

Page 46: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 46

Deterministic rendezvous model (cont) Algorithm for revising the deadlines to fix the

previous infeasibility decision:1. Sort the scheduling blocks in [0, L] in reverse

topological order, so the block with the latest deadline appears first.

2. Initialize the deadline of the k-th instance of Ti,j with (k-1)pi+di.

3. Let S and S’ be scheduling tasks. Then revise dS = min(dS , {dS’ - cS’ : S S’}).

4. Use the EDF scheduler to schedule the blocks with the revised deadlines.

Page 47: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 47

Deterministic rendezvous model. Example’s second solution We consider the previous example. The initial deadlines for T1, T3,1, T3,2, T2,3, T2,4, T2,1,

T2,2 are 12, 12, 12, 11, 11, 5, and 5, respectively (in topological order).

Since T3(1) T2(2) is a rendezvous constraint, then deadline of T3,1 is revised to 5-2=3.

Similarly, since T3(2) T2(3) is a rendezvous constraint, then deadline of T3,2 is revised to 11-1=10.

Page 48: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 48

Deterministic rendezvous model. Example’s second solution The revised deadlines for T1, T3,1, T3,2, T2,3, T2,4, T2,1,

T2,2 are now 12, 3, 10, 9, 11, 3, and 5, respectively. Using again the EDF scheduler, we get the following

feasible schedule: Figure 3.19 from [Cheng; 2005], page 64

Page 49: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 49

Summary

Sporadic tasks Scheduling nonpreemptable tasks Scheduling nonpreemptable sporadic tasks Scheduling nonpreemptable tasks with

precedence constraints Communicating periodic tasks: deterministic

rendezvous model

Page 50: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 50

Reading suggestions Chapter 3 of [Cheng; 2002], Sections 3.2.1,

3.2.2, 3.2.3, 3.2.4, 3.2.5 Chapters 3, 10 and 11 of [Kopetz; 1997] Chapter 2 of [Stankovic, Spuri, Ramamritham,

Buttazzo; 1998]

Page 51: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 51

Coming up next

Multiprocessor scheduling Available scheduling tools Available real-time operating systems

Chapter 3 of [Cheng; 2002], Sections 3.3, 3.4, 3.5

Page 52: 12/19/2015COSC-4301-01, Lecture 31 Real-Time Systems, COSC-4301-01, Lecture 3 Stefan Andrei

04/22/23 COSC-4301-01, Lecture 3 52

Thank you for your attention!

Questions?