• No results found

REAL-TIME MICHAEL ROITZSCH

N/A
N/A
Protected

Academic year: 2022

Share "REAL-TIME MICHAEL ROITZSCH"

Copied!
51
0
0

Loading.... (view fulltext now)

Full text

(1)

Department of Computer Science Institute for System Architecture, Operating Systems Group

REAL-TIME

MICHAEL ROITZSCH

(2)

TU Dresden MOS – Real-Time

OVERVIEW

2

(3)

TU Dresden MOS – Real-Time

SO FAR

3

■ talked about in-kernel building blocks:

threads

memory

IPC

■ drivers enable access to a wide range of non-kernel resources

■ need to manage resources

(4)

TU Dresden MOS – Real-Time

COURSE EIP

4

Basic Abstractions System Services

Applications

(5)

TU Dresden MOS – Real-Time

RESOURCES

5

Disk Bandwidth Network I/O

Files TCP/IP Sessions

Threads Memory

Semaphores

Communication Rights

Windows

Memory

(6)

TU Dresden MOS – Real-Time

TIME

6

(7)

TU Dresden MOS – Real-Time

COMPARISON

7

Memory Time

discrete, limited continuous, infinite

hidden in the system user-perceivable

managed by pager managed by scheduler

page-granular partitions arbitrary granularity

all pages are of equal value value depends on workload

active policy decisions, passive enforcement

active policy decisions, active enforcement

hierarchical management Fiasco: flattened in-kernel view

(8)

TU Dresden MOS – Real-Time

HISTORY

8

■ in the early years of computing:

time coarsely managed by batch systems

■ jobs receive the entire machine or a dedicated part of it for a given time

■ accounting, budgeting

■ no preemption

■ no interaction, good utilization

■ still prevalent in HPC systems

(9)

TU Dresden MOS – Real-Time

THREADS

■ today: threads provide a CPU abstraction

■ each thread should observe its own time as continuous

■ if there are more threads than physical CPU cores, we have to multiplex

■ enforced by preemption

■ implemented with timer interrupt

9

(10)

TU Dresden MOS – Real-Time

PROGRESS

10

wall-clock time

thread progress

(11)

TU Dresden MOS – Real-Time

REAL-TIME

11

(12)

TU Dresden MOS – Real-Time

DEFINITION

12

a real-time system denotes a system,

whose correctness depends on the timely delivery of results

„it matters, when a result is produced“

real-time denotes a predictable relation

between system progress and wall-clock

time

(13)

TU Dresden MOS – Real-Time

INTUITION

real-time is about

■ predictability

guarantees

timeliness

■ responsiveness

real-time is not about

being fast

■ live calculations

13

(14)

TU Dresden MOS – Real-Time

NON-EXAMPLE

■ game engines

■ rendered frames are delivered at instances of wall-clock time, but

■ there is no guaranteed (minimal) frame-rate

■ rendering times are not even predictable

■ guaranteed responsiveness?

■ game engines are just fast (hopefully), but not real-time

14

(15)

TU Dresden MOS – Real-Time

EXAMPLES

focused catastrophic failures

■ engine control in a car

■ break-by-wire

avionics

■ railway control

■ set-top box DVD player

■ GSM-stack in your cell phone

15

benign failures complex

(16)

TU Dresden MOS – Real-Time

FLAVORS

16

hard

real-time

firm

real-time

soft

real-time

missing some deadlines is

tolerable

✘ ✔ ✔

a result delivered after its deadline is

still useful

✘ ✘ ✔

(17)

TU Dresden MOS – Real-Time

THEMES

17

➀ Predictability

Guarantees

➂ Enforcement

(18)

TU Dresden MOS – Real-Time

PREDICTABILITY

18

(19)

TU Dresden MOS – Real-Time

ENEMIES

19

■ gap between worst and average case

■ memory caches, disk caches, TLBs

■ „smart“ hardware

■ system management mode

■ disk request reordering

■ cross-talk from resource sharing

■ servers showing O(n) behavior

■ unpredictable external influences

interrupts

(20)

TU Dresden MOS – Real-Time

CROSSCUTTING

20

Kernel System Services Applications

Hardware

Realtime

(21)

TU Dresden MOS – Real-Time

CUSTOM RTOS

■ small real-time executives tailor-made for specific applications

■ fixed workload known a priori

■ pre-calculated time-driven schedule

■ used on small embedded controllers

■ benign hardware

21

(22)

TU Dresden MOS – Real-Time

RTLINUX

■ full Linux kernel and real-time processes run side-by-side

■ small real-time executive underneath supports scheduling and IPC

■ real-time processes implemented as kernel modules

■ all of this runs in kernel mode

■ no isolation

22

(23)

TU Dresden MOS – Real-Time

XNU

■ the kernel used in Mac OS X

■ implements four priority bands

normal

■ system high priority

■ kernel threads

■ real-time threads

■ you tell the kernel: I need A out of the next B cycles, can be contiguous

23

(24)

TU Dresden MOS – Real-Time

XNU

■ normal users can create real-time threads

■ threads exceeding their quantum will be demoted

■ with the first real-time thread, the kernel switches from using continuations to

full preemptibility

■ all drivers need to handle interrupts correctly

24

(25)

TU Dresden MOS – Real-Time

FIASCO

25

■ static thread priorities

■ bounded interrupt latency

■ fully preemptible in kernel mode

■ lock-free synchronization

■ uses atomic operations

■ wait-free synchronization

■ locking with helping instead of blocking

(26)

TU Dresden MOS – Real-Time

SKEPTICISM

26

Non-Real-Time Kernel Real-Time Middleware

Applications

■ architecture for those afraid of touching the OS

■ example: Real-Time Java

(27)

TU Dresden MOS – Real-Time

RESOURCES

■ a real-time kernel alone is not enough

■ the microkernel solution:

■ real-time kernel enables temporal isolation

eliminates cross-talk and interrupt problems

■ user-level servers on top act as resource managers

implement real-time views on specific resources

■ real-time is not only about CPU

■ details in the resource management lecture

27

(28)

TU Dresden MOS – Real-Time

GUARANTEES

28

(29)

TU Dresden MOS – Real-Time

PROBLEM

■ worst case execution time (WCET) largely exceeds average case

■ offering guarantees for the worst case will waste lots of resources

■ missing some deadlines can be tolerated with the firm and soft real-time scheme

29

(30)

TU Dresden MOS – Real-Time

MOTIVATION

30

■ desktop real-time

■ there are no hard real-time applications on desktops

■ there is a lot of firm and soft real-time

■ low-latency audio processing

■ smooth video playback

■ desktop effects

■ user interface responsiveness

(31)

TU Dresden MOS – Real-Time

H.264 DECODING

31

0%

5%

10%

15%

0 5 10 15 20 25 30 ms

WCET

(32)

TU Dresden MOS – Real-Time

KEY IDEA

32

■ guarantees even slightly below 100% of WCET can dramatically reduce resource allocation

■ unused reservations will be used by others at runtime

■ use probabilistic planning to model the actual execution

quality q: fraction of deadlines to be met

(33)

TU Dresden MOS – Real-Time

KEY IDEA

33

WCET

(34)

TU Dresden MOS – Real-Time

RESERVATION

34

J J

r

t p.d.f.

q r

d

J

e t

p.d.f.

q r e d

J

(a) J successful because e ≤ r

t p.d.f.

q r

d

J

e t

p.d.f.

q r e d

J

(b) J unsuccessful be- cause e > r

1a 1b 1c

Figure 2. Reservation times of optional parts

Figure 3. Overlapping periods

a) QAS b) QRMS Figure 4. Admission with QAS vs. QRMS

Figure 5.

aborted part of J

di

Ti Tj

dj

t p.d.f.

q r

d

J

e t

p.d.f.

q r e d

J

p.d.f.

q r d t

J

e

X1 X2 X3 Y1 Y2 Y3

d 0

r1 r2 r

Y2 aborted

X1 X2 Y1 Y2

0 d

r1

r2

X1 Y1 X2 Y2

0 d

r1 r2

lost for admission available for admission

Xi Yi Yi Yi Yi

0 di

r

(c) J unsuccessful although e ≤ r

1a 1b 1c

Figure 2. Reservation times of optional parts

Figure 3. Overlapping periods

a) QAS b) QRMS Figure 4. Admission with QAS vs. QRMS

Figure 5.

aborted part of J

di

Ti Tj

dj

t p.d.f.

q r

d

J

e t

p.d.f.

q r e d

J

p.d.f.

q r d t

J

e

X1 X2 X3 Y1 Y2 Y3

d 0

r1 r2 r

Y2 aborted

X1 X2 Y1 Y2

0 d

r1

r2

X1 Y1 X2 Y2

0 d

r1 r2

lost for admission available for admission

Xi Yi Yi Yi Yi

0 di

r

Figure 1. Successful and unsuccessful jobs

an admission using WCET, the reservation time is only the fraction of the WCET ensuring a requested quality q. A probabilistic model exactly mapping this scheduling policy enables the computation of these.

The reservation time r appears to result solely from the q-quantile of the execution time distribution of the jobs (see Figures 1a and 1b). However, the model also has to consider a job J being aborted at its relative deadline d even if a complete execution of the job would not have exhausted its reservation time (see Figure 1c).

Hence, the reservation time for each job J of a task re- questing a quality q is the shortest time r where

P(J does not run longer than r ∧

J is completed until its relative deadline) ≥ q (1) More formally, let pi(r) denote the probability that a job of task Ti is completed in the sense of Equation (1) (r ∈ R, i ∈ N). Then we obtain a system of equations for a task set T = {T1, . . . , Tn} with requested qualities q1, . . . , qn:

ri = min(r ∈ R | pi(r) ≥ qi) ∀i = 1, . . . , n. (2) So the general admission criterion is

The system of equations in (2) is solvable. (3)

2.2. Task Model

Generally, we consider tasks Ti as a sequence of jobs Jij to be processed periodically:

Ti = (Jij)j=1,2,... i = 1, . . . , n (4)

where n ∈ N denotes the total number of tasks in the task set T = {T1, . . . , Tn}.

To be widely applicable, we want to map both hard and firm real-time tasks in both preemptible and non- preemptible flavor to our model. Therefore, each job can be partitioned into one mandatory part Mij and mi optional parts Oij1, Oij2, . . . , Oijm. Mij is released at the begin- ning of its respective period, Oij1 becomes ready when Mij is completed, and so on. The end of the period is the relative deadline of all parts. The execution times of the parts vary described by random variables, but obviously the manda- tory parts do not exceed their WCET, wi. We assume that the random variables of all tasks are pairwise independent.

For a task Ti, the random variables describing the individ- ual instances of the mandatory part are assumed to be iden- tically distributed. The same is assumed for the instances of the optional parts. Finally, an application may specify a minimum percentage, qi, of optional parts that have to be completed successfully. In summary, the following defini- tion describes a task.

Definition 1 A task Ti is a tuple

Ti = (Xi, Y i, wi, mi, qi, di) (5) where

Xi nonnegative random variable: execution time of a mandatory part,

Yi nonnegative random variable: execution time of an optional part,

wi positive real number less than or equal to di: worst case execution time of the mandatory parts,

mi nonnegative integer: number of optional parts, qi real number 0 ≤ qi ≤ 1: quality parameter,

probability that an optional part is completed, di positive real number: period length = relative

deadline.

Further generalizations (task offsets, not identically dis- tributed optional parts) increase the effort to formulate the admission criterion (more variables, more indices), without increasing the tractability or the computational complex- ity. For simplicity, we identify the parts with their random variables, consider each mandatory part Mij as a realiza- tion of Xi and each Oijk as a realization of Yi. Notably, mi = 0 enables us to model hard real-time tasks, Xi ≡ 0 and mi = 1 models a set of “classical” firm tasks (as in [12, 2]).

The admission goal is to derive the priorities pr(Xi) and pr(Yi) of the mandatory and optional parts and the reserva- tion times ri from the task description listed above in such a way that a feasible schedule can be generated, by which is meant all mandatory parts meet their deadlines and all optional parts meet their quality requirements. We describe

(35)

TU Dresden MOS – Real-Time

RESERVATION

35

preemptible (CPU) as well as for nonpreemptible (disk) re- sources. Furthermore, we also included empirical execution time distributions. Three main conclusions should be em- phasized here.

• All the experiments show the compliance of the re- quested qualities with the achieved qualities.

• The approach enables to provide statistical guarantees and to control the behavior of firm applications even under overload.

• QAS can clearly admit a higher load than an admission based on WCET with negligible loss of quality.

The costs for these advantages are comparatively low. The numerical complexity of the admission control (which can be done offline) is dominated by the convolution of the dis- cretized execution time distributions. The highest complex- ity is that for the admission in case of nonpreemptible re- sources; their complexity is O(s · v

3

) (s: total number of optional parts, v: common number of values of the ran- dom variables) [10, 11]. On the other hand, the scheduler only manages the ready queue based on fixed priorities. So online-overhead is negligible, independent of the type of re- sources and the type of periods.

In case of arbitrary periods however, the computation of the reservation time is very expensive with increasing costs for larger task sets because the hyperperiod explodes for task sets with close-by period lengths (like 503 and 510) and all periods must be considered. Looking for a way to overcome this difficulty, we propose a new admission con- trol approach, which differs from QAS in three respects:

priority assignment, interpretation of the reservation time, and as a consequence, a very low-cost admission algorithm.

4. Quality-Rate-Monotonic Scheduling

We will first explain our new approach, followed by an investigation of the admission performance and overhead.

4.1. The QRMS Approach

QRMS is simple but still effective. We abandon the ex- act modeling of the scheduling behavior in favor of apply- ing the well-known results from rate-monotonic scheduling theory. Therefore, we choose another priority assignment policy and a simpler way to compute the reservation times:

• Priorities are assigned to tasks (this means mandatory and optional parts of a task have the same priority) ac- cording to RMS.

• All parts of a job are assigned a common reservation time.

1a 1b 1c

Figure 2. Reservation times of optional parts

Figure 3. Overlapping periods

a) QAS b) QRMS Figure 4. Admission with QAS vs. QRMS

Figure 5.

aborted part of J

di

T

i

T

j

dj

t p.d.f.

q r

d

J

e t

p.d.f.

q r e d

J

p.d.f. q

r d t

J

e

X1 X2 X3 Y1 Y2 Y3

d 0

r1 r2 r

Y2 aborted

X1 X2 Y1 Y2

0 d

r1

r2

X1 Y1 X2 Y2

0 d

r1 r2

lost for admission available for admission

Xi Yi Yi Yi Yi

0 di

r

(a) QAS

1a 1b 1c

Figure 2. Reservation times of optional parts

Figure 3. Overlapping periods

a) QAS b) QRMS Figure 4. Admission with QAS vs. QRMS

Figure 5.

aborted part of J

di

T

i

T

j

dj

t p.d.f.

q r

d

J

e t

p.d.f.

q r e d

J

p.d.f.

q r d t

J

e

X1 X2 X3 Y1 Y2 Y3

d 0

r1 r2 r

Y2 aborted

X1 X2 Y1 Y2

0 d

r1

r2

X1 Y1 X2 Y2

0 d

r1 r2

lost for admission available for admission

Xi Yi Yi Yi Yi

0 di

r

(b) QRMS

1a 1b 1c

Figure 2. Reservation times of optional parts

Figure 3. Overlapping periods

a) QAS b) QRMS Figure 4. Admission with QAS vs. QRMS

Figure 5.

aborted part of J

di

Ti Tj

dj

t p.d.f.

q r

d

J

e t

p.d.f.

q r e d

J

p.d.f.

q r d t

J

e

X1 X2 X3 Y1 Y2 Y3

d 0

r1 r2 r

Y2 aborted

X1 X2 Y1 Y2

0 d

r1

r2

X1 Y1 X2 Y2

0 d

r1 r2

lost for admission available for admission

Xi Yi Yi Yi Yi

0 di

r

Figure 4. Admission with QAS vs. QRMS

• In the admission, the reservation time is regarded as a constant execution time.

Consequently, tasks are independent during admission, an important advantage to drastically decrease the admission overhead. Figure 4 illustrates the modified priority assign- ment and the notion of reservation times for two tasks T

1

, T

2

with uniform periods of length d.

The approach uses the task model given in Definition 1.

To derive the reservation times, we consider preemptible resources first. We have to use Equation (8). Due to the laws of probability calculus, we can compute the expected value of A

i

as

EA

i

=

mi

!

k=1

P(A

i

≥ k), i = 1, . . . , n (9) The number A

i

of completed parts of task T

i

within a period does no longer depend on the reservation times of other tasks. Obviously, it holds (see Figure (5)):

P(A

i

(r) ≥ k) = P(X

i

+ k · Y

i

≤ r), k = 1, . . . , m

i

Thus: (10)

r

i!

= min(r ∈ R |

mi

!

k=1

P(X

i

+ k · Y

i

≤ r) ≥ q

i

m

i

) . (11) The final formula respects the fact that r

i!

may be shorter than the WCET w

i

of the mandatory part and includes the constraint that jobs are aborted at the end of their period:

r

i

= max(r

i!

, w

i

) i = 1, . . . , n (12) We check r

i

≤ d

i

for all i in a first admission step. Then the final admission test can be done using the Liu/Layland- criterion or time demand analysis [13]. In case of nonpre- emptible resources, r

i!

is computed as above, but the admis- sion must include the WCET w

O,i

of an optional part:

r

i

= max(r

i!

+ w

O,i

, w

i

) (13)

■ to fully understand this:

see real-time systems lecture

■ good for microkernel: reservation can be calculated by a userland service

■ kernel only needs to support static priorities

preemptible (CPU) as well as for nonpreemptible (disk) re- sources. Furthermore, we also included empirical execution time distributions. Three main conclusions should be em- phasized here.

• All the experiments show the compliance of the re- quested qualities with the achieved qualities.

• The approach enables to provide statistical guarantees and to control the behavior of firm applications even under overload.

• QAS can clearly admit a higher load than an admission based on WCET with negligible loss of quality.

The costs for these advantages are comparatively low. The numerical complexity of the admission control (which can be done offline) is dominated by the convolution of the dis- cretized execution time distributions. The highest complex- ity is that for the admission in case of nonpreemptible re- sources; their complexity is O(s · v3) (s: total number of optional parts, v: common number of values of the ran- dom variables) [10, 11]. On the other hand, the scheduler only manages the ready queue based on fixed priorities. So online-overhead is negligible, independent of the type of re- sources and the type of periods.

In case of arbitrary periods however, the computation of the reservation time is very expensive with increasing costs for larger task sets because the hyperperiod explodes for task sets with close-by period lengths (like 503 and 510) and all periods must be considered. Looking for a way to overcome this difficulty, we propose a new admission con- trol approach, which differs from QAS in three respects:

priority assignment, interpretation of the reservation time, and as a consequence, a very low-cost admission algorithm.

4. Quality-Rate-Monotonic Scheduling

We will first explain our new approach, followed by an investigation of the admission performance and overhead.

4.1. The QRMS Approach

QRMS is simple but still effective. We abandon the ex- act modeling of the scheduling behavior in favor of apply- ing the well-known results from rate-monotonic scheduling theory. Therefore, we choose another priority assignment policy and a simpler way to compute the reservation times:

• Priorities are assigned to tasks (this means mandatory and optional parts of a task have the same priority) ac- cording to RMS.

• All parts of a job are assigned a common reservation time.

1a 1b 1c

Figure 2. Reservation times of optional parts

Figure 3. Overlapping periods

a) QAS b) QRMS Figure 4. Admission with QAS vs. QRMS

Figure 5.

aborted part of J

di

Ti Tj

dj

t p.d.f.

q r

d

J

e t

p.d.f.

q r e d

J

p.d.f. q

r d t

J

e

X1 X2 X3 Y1 Y2 Y3

d 0

r1 r2 r

Y2 aborted

X1 X2 Y1 Y2

0 d

r1

r2

X1 Y1 X2 Y2

0 d

r1 r2

lost for admission available for admission

Xi Yi Yi Yi Yi

0 di

r

(a) QAS

1a 1b 1c

Figure 2. Reservation times of optional parts

Figure 3. Overlapping periods

a) QAS b) QRMS Figure 4. Admission with QAS vs. QRMS

Figure 5.

aborted part of J

di

Ti Tj

dj

t p.d.f.

q r

d

J

e t

p.d.f.

q r e d

J

p.d.f.

q r d t

J

e

X1 X2 X3 Y1 Y2 Y3

d 0

r1 r2 r

Y2 aborted

X1 X2 Y1 Y2

0 d

r1

r2

X1 Y1 X2 Y2

0 d

r1 r2

lost for admission available for admission

Xi Yi Yi Yi Yi

0 di

r

(b) QRMS

1a 1b 1c

Figure 2. Reservation times of optional parts

Figure 3. Overlapping periods

a) QAS b) QRMS Figure 4. Admission with QAS vs. QRMS

Figure 5.

aborted part of J

di

Ti Tj

dj

t p.d.f.

q r

d

J

e t

p.d.f.

q r e d

J

p.d.f.

q r d t

J

e

X1 X2 X3 Y1 Y2 Y3

d 0

r1 r2 r

Y2 aborted

X1 X2 Y1 Y2

0 d

r1

r2

X1 Y1 X2 Y2

0 d

r1 r2

lost for admission available for admission

Xi Yi Yi Yi Yi

0 di

r

Figure 4. Admission with QAS vs. QRMS

• In the admission, the reservation time is regarded as a constant execution time.

Consequently, tasks are independent during admission, an important advantage to drastically decrease the admission overhead. Figure 4 illustrates the modified priority assign- ment and the notion of reservation times for two tasks T1, T2 with uniform periods of length d.

The approach uses the task model given in Definition 1.

To derive the reservation times, we consider preemptible resources first. We have to use Equation (8). Due to the laws of probability calculus, we can compute the expected value of Ai as

EAi =

mi

!

k=1

P(Ai ≥ k), i = 1, . . . , n (9) The number Ai of completed parts of task Ti within a period does no longer depend on the reservation times of other tasks. Obviously, it holds (see Figure (5)):

P(Ai(r) ≥ k) = P(Xi + k · Yi ≤ r), k = 1, . . . , mi Thus: (10)

ri! = min(r ∈ R | 1 mi

mi

!

k=1

P(Xi +k ·Yi ≤ r) ≥ qi). (11) The final formula respects the fact that ri! may be shorter than the WCET wi of the mandatory part and includes the constraint that jobs are aborted at the end of their period:

ri = max(ri!, wi) i = 1, . . . , n (12) We check ri ≤ di for all i in a first admission step. Then the final admission test can be done using the Liu/Layland- criterion or time demand analysis [13]. In case of nonpre- emptible resources, ri! is computed as above, but the admis- sion must include the WCET wO,i of an optional part:

ri = max(ri! + wO,i, wi) (13)

(36)

TU Dresden MOS – Real-Time

SCHEDULING

scheduling = admission + dispatch

admission

■ evaluates the requests from clients, which follow some task model

■ calculates task parameters for dispatcher

■ verifies the feasibility of the guarantees

■ can reject requests

dispatch

■ executes and enforces the schedule

36

(37)

TU Dresden MOS – Real-Time

ENFORCEMENT

37

(38)

TU Dresden MOS – Real-Time

DISPATCHER

38

■ executes schedule

■ enforces task parameters by preemption

■ e.g. on deadline overrun

■ picks the next thread

■ static priorities (e.g. RMS, DMS)

■ dynamic priorities (e.g. EDF)

■ seems simple …

(39)

TU Dresden MOS – Real-Time

PROBLEM

39

■ high priority thread calls low priority service with a medium priority thread interfering:

Thread 1 Thread 2 Thread 3

Priority

1 waits for 3 3 waits for 2

= 1 waits for 2

Priority Inversion

(40)

TU Dresden MOS – Real-Time

SOLUTION

■ priority inheritance, priority ceiling

■ nice mechanism for this in Fiasco, NOVA:

timeslice donation

■ implemented by splitting thread control block

execution context: holds CPU statue

scheduling context: time and priority

■ on IPC-caused thread switch, only the execution context is switched

40

(41)

TU Dresden MOS – Real-Time

DONATING CALL

41

Thread 1 Thread 2 Thread 3

Priority

■ IPC receiver runs on the sender‘s scheduling context

■ priority inversion problem solved with

priority inheritance

(42)

TU Dresden MOS – Real-Time

ACCOUNTING

■ servers run on their clients time slice

■ when the server executes on behalf of a client, the client pays with its own time

■ this allows for servers with no scheduling context

■ server has no time or priority on its own

■ can only execute on client‘s time

■ relieves dispatcher from dealing with servers

42

(43)

TU Dresden MOS – Real-Time

TIMELESS

■ servers could be malicious, so you need timeouts to get your time back

■ now, malicious clients can call the server with a very short timeout

■ server‘s time will be withdrawn while the server is in the middle of request handling

■ servers need to do session cleanup

■ on whose time?

■ open research problem

43

(44)

TU Dresden MOS – Real-Time

SMP

■ timeslice donation does not work in multiprocessor case:

■ server is running on a different CPU

■ cross-CPU donation would be needed

■ you cannot donate time between CPUs

■ think of real-time guarantees

■ if one CPU is 100% loaded, donating time to it will overload it

■ servers need to migrate to client CPU?

44

(45)

TU Dresden MOS – Real-Time

OPTIMIZATION

45

(46)

TU Dresden MOS – Real-Time

SEMAPHORES

46

Thread 1

Thread 2 Semaphore

Thread

down

down

enqueue and block

up

dequeue and unblock

up

■ IPC only in the contention case

■ optimized for low contention

■ bad for producer-consumer (high contention)

(47)

TU Dresden MOS – Real-Time

SCENARIO

consumer

■ request wakeup: set flag, enqueue

block

producer

■ check for wakeup: test flag, dequeue

■ send wakeup

■ very short critical sections

■ semaphores too expensive (2 IPCs)

47

(48)

TU Dresden MOS – Real-Time

IDEA

■ allow threads to have short periods where they are never preempted

■ like a very low cost global system lock

■ delayed preemption

■ threads can set „don‘t preempt me“ flag in UTCB

■ very low cost

48

(49)

TU Dresden MOS – Real-Time

PROBLEMS

■ unbounded delay

■ if preemption would occur, the kernel

honors the delayed preemption flag only for a fixed maximum delay

■ delay affects all threads

■ problematic for real-time guarantees

■ affected threads can be limited to those within a priority band

■ other threads can still preempt any time

49

(50)

TU Dresden MOS – Real-Time

BEWARE

■ system must be designed carefully

■ threads outside the affected priority band must not interfere with protected data

structures

■ more problems

■ unaffected threads might donate time to a thread within the priority band

■ does not work cross-CPU

50

(51)

TU Dresden MOS – Real-Time

SUMMARY

■ managing time is necessary

■ we interact with the system based on time

■ real-time is a cross-cutting concern

■ „hard real-time is hard, soft real-time is even harder“

■ priority inheritance by timeslice donation

■ delayed preemption

■ next week: names

51

References

Related documents

Dr Srivastava: Intravitreal sirolimus 440 µg is being developed as a local treatment for noninfectious uveitis involving the posterior segment.. It is a mammalian target of

The media opportunities in and around Plymouth really helped: during my degree course I volunteered at Hospital Radio Plymouth and gained as much work experience as possible

In this paper, we revisit this debate for multi-core chips and argue that message passing programming models are often more suitable than shared memory models for satisfying the

In such courses, students typically conduct research and/or provide indirect service for their partner by producing brochures, grant proposals, internal memos, or other documents

• Measurement Model – Addition means to put directed arrows end to end starting at zero.. • Positive integers are represented by arrows pointing to the right and negative integers

Fitted out to the highest standards offering spacious modern living spread over three floors.. A stunning 4/5 bedroom semi-detached house, with spacious living over

Chouliaraki, L. Post-humanitarianism: Humanitarian communication beyond a politics of pity. The Theatricality of Humanitarianism: A Critique of Celebrity Advocacy. The ironic

TABLE V - Mean concentrations of curcuminoid pigments in pig ear skin (µg pigment/g skin) during in vitro skin permeation studies of different formulations containing curcumin