verbesserung der reaktivität des linux-kernels steffen mazanek
DESCRIPTION
Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek. Gliederung. Einführung: Was ist real-time Fähigkeit, wofür braucht man sie und was ist zur Zeit mit Linux in diesem Bereich möglich? Wie kann man die Reaktivität verbessern? Preemption Patch Low Latency Patch RTLinux Ausblick. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/1.jpg)
Verbesserung der Verbesserung der Reaktivität des Reaktivität des Linux-KernelsLinux-Kernels
Steffen MazanekSteffen Mazanek
![Page 2: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/2.jpg)
GliederungGliederung
- Einführung: Was ist real-time Fähigkeit, Einführung: Was ist real-time Fähigkeit, wofür braucht man sie und was ist zur Zeit wofür braucht man sie und was ist zur Zeit mit Linux in diesem Bereich möglich?mit Linux in diesem Bereich möglich?
- Wie kann man die Reaktivität verbessern?Wie kann man die Reaktivität verbessern?- Preemption PatchPreemption Patch- Low Latency PatchLow Latency Patch- RTLinux RTLinux
- AusblickAusblick
![Page 3: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/3.jpg)
Was ist real-time?Was ist real-time?
IEEE: a real-time system is a system IEEE: a real-time system is a system whose correctness includes its response whose correctness includes its response time as well as its functional correctnesstime as well as its functional correctness
Diese Definition lässt viele Interpretations-Diese Definition lässt viele Interpretations-spielräume spielräume
Deshalb: Einteilung in Deshalb: Einteilung in hardhard und und soft real-soft real-timetime
![Page 4: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/4.jpg)
Arten von real-time SystemenArten von real-time Systemen
Hard real-time: Garantierte Hard real-time: Garantierte anwendungsabhängige worst-case anwendungsabhängige worst-case Reaktionszeiten (nicht unbedingt kurz, Reaktionszeiten (nicht unbedingt kurz, aber sehr deterministisch)aber sehr deterministisch)
Soft real-time: Rechtzeitigkeit wird Soft real-time: Rechtzeitigkeit wird benötigt, aber Scheitern bleibt ohne benötigt, aber Scheitern bleibt ohne schwerwiegende Folgen (evt. Qualitäts-schwerwiegende Folgen (evt. Qualitäts-verluste)verluste)
![Page 5: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/5.jpg)
Wer benötigt real-time?Wer benötigt real-time?
Systeme mit hoher Verantwortung, z.B.Systeme mit hoher Verantwortung, z.B.- Gefahr für MenschenlebenGefahr für Menschenleben- Industrielle AutomationIndustrielle Automation
Steigender Bedarf ausgelöst durch Steigender Bedarf ausgelöst durch Anwendungen der Vernetzung, z.B.Anwendungen der Vernetzung, z.B.- Voice-over-IPVoice-over-IP
Im Bereich Multimedia, z.B.Im Bereich Multimedia, z.B.- Video streamingVideo streaming
![Page 6: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/6.jpg)
Linux und real-time?Linux und real-time?
Linux ist Linux ist keinkein real-time Betriebssystem real-time Betriebssystem- Andere Entwurfskonzepte mit teilweise Andere Entwurfskonzepte mit teilweise
konkurrierenden Zielenkonkurrierenden Zielen- Im Sinne einer weiteren Verbreitung, versucht Im Sinne einer weiteren Verbreitung, versucht
man, die Qualitäten in diesem Bereich zu man, die Qualitäten in diesem Bereich zu verbessern, so dass ein Einsatz etwa in verbessern, so dass ein Einsatz etwa in embedded systems o.ä. möglich wäreembedded systems o.ä. möglich wäre
Dank open source möglich und teilweise Dank open source möglich und teilweise schon realisiert, entweder direkt im Kernel schon realisiert, entweder direkt im Kernel oder mit entsprechenden Patchesoder mit entsprechenden Patches
![Page 7: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/7.jpg)
Was der aktuelle Linux Kernel Was der aktuelle Linux Kernel leistetleistet
Zeitvorgaben im Millisekundenbereich werden Zeitvorgaben im Millisekundenbereich werden standardmäßig nicht eingehalten, aber soft real-standardmäßig nicht eingehalten, aber soft real-time ist kein Problemtime ist kein ProblemKritische Bereiche werden unter Interruptsperre Kritische Bereiche werden unter Interruptsperre abgearbeitet abgearbeitet
- Kernel ist nicht preemptiv Kernel ist nicht preemptiv →→ Langwährende Langwährende Systemaufrufe halten hochpriore Benutzerprozesse Systemaufrufe halten hochpriore Benutzerprozesse auf auf → Quelle für Indeterminismus der Antwortzeiten→ Quelle für Indeterminismus der Antwortzeiten
Thread scheduling policiesThread scheduling policies- SCHED_FIFO, SCHED_RR, SCHED_OTHERSCHED_FIFO, SCHED_RR, SCHED_OTHER- Nicht gerade fein-granuliert und parametrisierbarNicht gerade fein-granuliert und parametrisierbar
![Page 8: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/8.jpg)
![Page 9: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/9.jpg)
Scheduler LatencyScheduler Latency
Latency: Latency: - Allg: Intervall zwischen Stimulus und Reaktion (meist Allg: Intervall zwischen Stimulus und Reaktion (meist
stochastisch)stochastisch)- hier: Zeit, die nach Ereignis vergeht, bis betroffener hier: Zeit, die nach Ereignis vergeht, bis betroffener
Thread den Prozessor erhält (PDLT)Thread den Prozessor erhält (PDLT)
Was passiert in dieser Zeit? Was passiert in dieser Zeit? - Interrupt Interrupt → ISR → Interrupt Handler des Device → ISR → Interrupt Handler des Device
Drivers (aktiviert betroffenen Thread) → Drivers (aktiviert betroffenen Thread) → need_resched flag des current task → … → need_resched flag des current task → … → scheduling (muss diesen Thread aber nicht scheduling (muss diesen Thread aber nicht auswählen) → … → Thread läuftauswählen) → … → Thread läuft
![Page 10: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/10.jpg)
Möglichkeit I: RTLinuxMöglichkeit I: RTLinux
Läuft „außerhalb“ vom eigentlichen KernelLäuft „außerhalb“ vom eigentlichen Kernel- ist eigenständiges RT OSist eigenständiges RT OS- Linux als niedrigst-priorer RT-TaskLinux als niedrigst-priorer RT-Task
Besitzt das System und kann auf Besitzt das System und kann auf Ereignisse nahezu sofort reagierenEreignisse nahezu sofort reagierenSoftware emuliert Interrupt Controller Software emuliert Interrupt Controller →→ transparent für Linux (Virtuelle Maschine)transparent für Linux (Virtuelle Maschine)Nachteile: zwei APIs, verbessert nicht die Nachteile: zwei APIs, verbessert nicht die real-time Fähigkeiten von Linux, Overheadreal-time Fähigkeiten von Linux, Overhead
![Page 11: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/11.jpg)
Möglichkeit II: Möglichkeit II: Kernel PreemptionKernel Preemption
Nicht im aktuellen Standard KernelNicht im aktuellen Standard Kernel- im 2.5er Entwicklerkernel optional auswählbarim 2.5er Entwicklerkernel optional auswählbar
Kernel Preemption Patch verfügbar:Kernel Preemption Patch verfügbar:- von Monta Vista entwickeltvon Monta Vista entwickelt- von Kernel Maintainer Robert Love gewartet von Kernel Maintainer Robert Love gewartet
und weiterentwickeltund weiterentwickelt
![Page 12: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/12.jpg)
![Page 13: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/13.jpg)
Kernel Preemption PatchKernel Preemption PatchKonzepte/Änderungen IKonzepte/Änderungen I
Veränderte Implementierung von Veränderte Implementierung von SpinlocksSpinlocks- SMP Synchronisation SMP Synchronisation → Preemption Lock, → Preemption Lock,
kontrolliert Wiedereintritt in kritische Bereichekontrolliert Wiedereintritt in kritische Bereiche
Modifizierte Interrupt-Behandlung Modifizierte Interrupt-Behandlung - erlaubt Re-Scheduling sofort danach, selbst erlaubt Re-Scheduling sofort danach, selbst
wenn unterbrochener Prozess im System-wenn unterbrochener Prozess im System-Modus war (Ausnahme: dessen Region ist Modus war (Ausnahme: dessen Region ist preemption locked)preemption locked)
![Page 14: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/14.jpg)
Kernel Preemption PatchKernel Preemption PatchKonzepte/Änderungen IIKonzepte/Änderungen II
Andere Implementierung von spin unlockAndere Implementierung von spin unlock- System wird wieder in preemptable state System wird wieder in preemptable state
gebracht und es wird sofort geprüft, ob gebracht und es wird sofort geprüft, ob context switch nötig istcontext switch nötig ist
Angepasste Kernel build definitionAngepasste Kernel build definition- Speziell Uniprozessor Systeme müssen auch Speziell Uniprozessor Systeme müssen auch
spin locks aktivierenspin locks aktivieren
![Page 15: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/15.jpg)
BewertungBewertung
Forderung: sehr kurze kritische Regionen Forderung: sehr kurze kritische Regionen
Reaktivität drastisch gesteigertReaktivität drastisch gesteigert- Durchschnitt und worst caseDurchschnitt und worst case
Wenige Änderungen → gute Wartbarkeit Wenige Änderungen → gute Wartbarkeit und Verträglichkeitund Verträglichkeit
Nachteil: gewisser (kleiner) OverheadNachteil: gewisser (kleiner) Overhead- Wird ausgeglichen, da I/O channels besser Wird ausgeglichen, da I/O channels besser
beschäftigt gehalten werden könnenbeschäftigt gehalten werden können
![Page 16: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/16.jpg)
Möglichkeit III:Möglichkeit III:Low LatencyLow Latency
Regelmäßige Ausführung des Schedulers, Regelmäßige Ausführung des Schedulers, damit kritische Tasks möglichst schnell damit kritische Tasks möglichst schnell bedient werdenbedient werden- aber: zu häufige Ausführung stellt einen aber: zu häufige Ausführung stellt einen
beachtlichen Overhead dar (Kompromiss)beachtlichen Overhead dar (Kompromiss)
![Page 17: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/17.jpg)
Low Latency PatchLow Latency PatchKonzepte/Änderungen IKonzepte/Änderungen I
Eingeführt von Ingo Molnar, jetzt gewartet Eingeführt von Ingo Molnar, jetzt gewartet durch Andrew Mortondurch Andrew Morton
Einführung von expliziten Preemption Einführung von expliziten Preemption Points in den Blöcken des Kernel Codes, Points in den Blöcken des Kernel Codes, die für lange Zeit ausgeführt werden die für lange Zeit ausgeführt werden (Iterationen über große Datenstrukturen)(Iterationen über große Datenstrukturen)
Problem: finden dieser Stellen (z.B. mit Problem: finden dieser Stellen (z.B. mit Tools möglich) und SICHERES EinfügenTools möglich) und SICHERES Einfügen
![Page 18: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/18.jpg)
Preemption PointsPreemption Points
Wenn Schleife eine gewisse Zeit gelaufen Wenn Schleife eine gewisse Zeit gelaufen ist, Scheduler aufrufenist, Scheduler aufrufen
if (current->need_resched) if (current->need_resched) schedule();schedule();
Mögliche Taktik: Spinlock freigeben, Mögliche Taktik: Spinlock freigeben, Scheduler aufrufen und danach Spinlock Scheduler aufrufen und danach Spinlock wieder reservieren (lock breaking) wieder reservieren (lock breaking)
![Page 19: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/19.jpg)
![Page 20: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/20.jpg)
ZusammenfassungZusammenfassung
![Page 21: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/21.jpg)
Weitere AnsatzpunkteWeitere Ansatzpunkte
An real-time Anforderungen angepasster An real-time Anforderungen angepasster Schedulingalgorithmus Schedulingalgorithmus - Pre-SchedulingPre-Scheduling- Flexiblere PoliciesFlexiblere Policies
Höhere Timer-AuflösungHöhere Timer-Auflösung
![Page 22: Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek](https://reader035.vdocument.in/reader035/viewer/2022062802/56814560550346895db2348e/html5/thumbnails/22.jpg)
AusblickAusblick
Preemption Patch hat gute Aussichten, in Preemption Patch hat gute Aussichten, in den offiziellen Kernel als Option integriert den offiziellen Kernel als Option integriert zu werden, vielleicht auch in Kombination zu werden, vielleicht auch in Kombination mit dem Low Latency Patchmit dem Low Latency Patch
Persönliche Meinung: Mit höheren Persönliche Meinung: Mit höheren Multimedia-Anforderungen steigt der Multimedia-Anforderungen steigt der Wunsch nach real-time auch für den Wunsch nach real-time auch für den Ottonormal-Benutzer Ottonormal-Benutzer →→ Integration nötig Integration nötig