Skip to content
On this page
11. Realtime
1

Realtime

Echtzeitfähigkeit von Betriebssystemen

14.05.2024
11. Realtime
2

OS mit RT-Patches

Positiv

  • Besser als Soft-Realtime

Negativ

  • Mehr SW-Management
    • ... = CPU hungrig
    • ... = mehr Leistung
  • RT-Eigenschaften schlechter als bei RTOS
  • Kernel Patch
    • verträgt sich nicht mit allen Gerätetreibern
    • Nicht für alle Kernelversionen verfügbar
  • Rebase / Vanilla Kernel Update z.T. problematisch
14.05.2024
11. Realtime
3

Co-Kernel Approach (Linux)

Positiv

  • Besser als Soft-Realtime

Negativ

  • Hohe Abhängigkeit zwischen
  • RTOS Kernel und Linux Kernel
    • Limitierte Linux Auswahl (meist ältere Versionen)
  • ... = upgrade / security problematisch
14.05.2024
11. Realtime
4

CPU Core für RT-Task reservieren

Positiv

  • Soft-Realtime verbessert

Negativ

  • Peripherie kann nicht geteilt werden
    • Netzwerk Interface
    • WiFi / I2C / UART / SPI
  • Immer noch weit weg von vollwertigem Hard-Realtime
14.05.2024
11. Realtime
5

Multitasking

Co-Operative

  • Tasks
    • ... sind via HW Interrupts unterbrechbar
    • ... Unterbrochener Task läuft allerdings nacher weiter
  • Interrupts führen zu keinem Task-Rescheduling
  • Tasks müssen kooperativ (nett) sein, damit Taskswitches statt finden können
  • Ansatz für low-power IoT sinnvoll

Preemptive

  • Kernel kann bei HW-Interrupt Taskswitch forcieren
  • Kernel zum Teil aber selber nicht preemptive (Big Kernel Lock)
  • Volle Echtzeitfähigkeit heisst
    • hohe Software komplexität
    • Treiber müssen optimiert sein
14.05.2024
11. Realtime
6

Timeslicing

  • Kernel muss nach T ≤ 1 ms (einem Jiffy) reschedule ausführen
  • Prioritätsgesteuert:
    • Strikt nur Tasks mit höchster Priorität
    • gefahr für Priority Inversion (starvation)
  • General Purpose OS:
    • keine Starvation
    • ... da auch Tasks mit tiefer Prio an die Reihe kommen
    • CFS (Completely Fair Scheduler) unter Linux
14.05.2024
11. Realtime
7

Rescheduling

  • Periodische Interrupts
    • Hardware Timer
    • ... bei Bedarf Tickless
  • Im Kernel
    • mit preemptive Multitasking möglich
    • ISR kann rescheduling auslösen
14.05.2024
11. Realtime
8

Unterbrechbarkeit

Server Mode / Low Latency Desktop

  • Kernel
    • Tasks im Systemcall nicht unterbrechbar
    • Low Latency Desktop Mode ist besser als Server Mode
  • Interrupt Service Routinen (ISR)
    • Nicht unterbrechbar (nicht nested)
    • ISR hat immer Priorität gegenüber anderen Tasks
14.05.2024
11. Realtime
9

Unterbrechbarkeit

  • CONFIG_PREEMPT und CONFIG_IRQ_FORCED_THREADING
    • Verbessert RT-Eigenschaften
    • Kernel wird unterbrechbarer
    • Datendurchsatz sinkt
  • Full Preemptive Patch CONFIG_PREEMPT_RT
    • ISR werden zu normalen Threads und dadurch unterbrechbar
    • Treiberkompatibiliät nicht gewährleistet
    • Kernel muss gepatcht werden
14.05.2024
11. Realtime
10

Anwendungen

Sind Latenzzeiten bei folgenden Applikationen wichtig? Reicht Soft-Realtime?

  • kontinuierlicher Datenlogger
  • Oszilloskop
  • Home PC
  • Environmental Monitor
14.05.2024