real time
play

REAL-TIME MICHAEL ROITZSCH OVERVIEW TU Dresden MOS Real - Time 2 - PDF document

Department of Computer Science Institute for System Architecture, Operating Systems Group REAL-TIME MICHAEL ROITZSCH OVERVIEW TU Dresden MOS Real - Time 2 SO FAR talked about in - kernel building blocks: threads memory IPC


  1. Department of Computer Science Institute for System Architecture, Operating Systems Group REAL-TIME MICHAEL ROITZSCH OVERVIEW TU Dresden MOS – Real - Time 2

  2. SO FAR ■ talked about in - kernel building blocks: ■ threads ■ memory ■ IPC ■ drivers enable access to a wide range of non - kernel resources ■ need to manage resources TU Dresden MOS – Real - Time 3 COURSE EIP Applications System Services Basic Abstractions TU Dresden MOS – Real - Time 4

  3. RESOURCES Disk Bandwidth TCP/IP Sessions Network I/O Windows Files Semaphores Memory Memory Threads Communication Rights TU Dresden MOS – Real - Time 5 TIME TU Dresden MOS – Real - Time 6

  4. COMPARISON 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, active policy decisions, passive enforcement active enforcement ■ Fiasco: flattened in - kernel ■ hierarchical management view TU Dresden MOS – Real - Time 7 HISTORY ■ 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 TU Dresden MOS – Real - Time 8

  5. 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 TU Dresden MOS – Real - Time 9 PROGRESS thread progress wall - clock time TU Dresden MOS – Real - Time 10

  6. REAL-TIME TU Dresden MOS – Real - Time 11 DEFINITION ■ 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 TU Dresden MOS – Real - Time 12

  7. INTUITION ■ real - time is about ■ predictability ■ guarantees ■ timeliness ■ responsiveness ■ real - time is not about ■ being fast ■ live calculations TU Dresden MOS – Real - Time 13 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 TU Dresden MOS – Real - Time 14

  8. EXAMPLES ■ engine control in a car ■ break - by - wire ■ avionics focused ■ railway control catastrophic failures ■ set - top box DVD player benign failures complex ■ GSM - stack in your cell phone TU Dresden MOS – Real - Time 15 FLAVORS hard firm soft real - time real - time real - time missing some ✘ ✔ ✔ deadlines is tolerable a result delivered ✘ ✘ ✔ after its deadline is still useful TU Dresden MOS – Real - Time 16

  9. THEMES ➀ Predictability ➁ Guarantees ➂ Enforcement TU Dresden MOS – Real - Time 17 PREDICTABILITY TU Dresden MOS – Real - Time 18

  10. ENEMIES ■ 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 TU Dresden MOS – Real - Time 19 CROSSCUTTING Applications Realtime System Services Kernel Hardware TU Dresden MOS – Real - Time 20

  11. 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 TU Dresden MOS – Real - Time 21 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 TU Dresden MOS – Real - Time 22

  12. 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 TU Dresden MOS – Real - Time 23 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 TU Dresden MOS – Real - Time 24

  13. FIASCO ■ 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 TU Dresden MOS – Real - Time 25 SKEPTICISM ■ architecture for those afraid of touching the OS ■ example: Real - Time Java Applications Real - Time Middleware ☹ Non - Real - Time Kernel TU Dresden MOS – Real - Time 26

  14. 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 TU Dresden MOS – Real - Time 27 GUARANTEES TU Dresden MOS – Real - Time 28

  15. 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 TU Dresden MOS – Real - Time 29 MOTIVATION ■ 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 TU Dresden MOS – Real - Time 30

  16. H.264 DECODING 15% 10% 5% WCET 0% 0 5 10 15 20 25 30 ms TU Dresden MOS – Real - Time 31 KEY IDEA ■ 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 TU Dresden MOS – Real - Time 32

  17. KEY IDEA WCET TU Dresden MOS – Real - Time 33 RESERVATION J r J P ( J does not run longer than r ∧ J is completed until its relative deadline ) ≥ q TU Dresden MOS – Real - Time 34

  18. RESERVATION m i i = min( r ∈ R | 1 � r ′ P ( X i + k · Y i ≤ r ) ≥ q i ) m i k =1 r i = max( r ′ i , w i ) i = 1 , . . . , n ■ 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 TU Dresden MOS – Real - Time 35 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 TU Dresden MOS – Real - Time 36

  19. ENFORCEMENT TU Dresden MOS – Real - Time 37 DISPATCHER ■ 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 … TU Dresden MOS – Real - Time 38

  20. PROBLEM ■ high priority thread calls low priority service with a medium priority thread interfering: Priority Thread 1 Thread 2 Thread 3 ✔ 1 waits for 3 3 waits for 2 ✔ Priority Inversion ✘ = 1 waits for 2 TU Dresden MOS – Real - Time 39 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 TU Dresden MOS – Real - Time 40

  21. DONATING CALL Priority Thread 1 Thread 2 Thread 3 ■ IPC receiver runs on the sender‘s scheduling context ■ priority inversion problem solved with priority inheritance TU Dresden MOS – Real - Time 41 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 TU Dresden MOS – Real - Time 42

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend