Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek.

Slides:



Advertisements
Ähnliche Präsentationen
E-Commerce Shop System
Advertisements

Anbindung mobiler Endgeräte über den Terminal Service
Partitionierungstechniken in Datenbanksystemen
1 Workshop: Grundlagen des IT-Projektmanagements - Version /2004Modul: Aufwand – Ergänzung FP Copyright: Dr. Klaus Röber Modul Ergänzungen zur.
Leistung.
Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
Firewalls.
Proseminar Technische Informatik
Institut MD Universität Rostock Real-Time Linux Szenario –Board, liest (sampled) analoge Daten –produziert 8 Bit Ergebnis und gibt dieses alle 100 ms aus.
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
On a Buzzword: Hierachical Structure David Parnas.
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 5 Scheduling WS 2009/10.
Ausnahmen HS Merseburg (FH) WS 06/07.
RUP-Elemente (Schlüsselkonzepte)
XDoclet ETIS SS05.
eXtreme Programming (XP)
Vorl. 6: Single- und Multitasking Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Sicherheit von mobilem Code Hauptseminar: Sicherheit in vernetzten Systemen Sicherheit von mobilem Code Oliver Grassow.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
Marcus Haller & René Schulze
Computerviren Hugo, Oskar, Nadia, Tony, Kevin, Leah
EPOC Embedded Performance Analysis for Organic Computing.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Entwicklung verteilter eingebetteter Systeme - Einführung
Multitasking im Betriebssystem
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
MS Excel, Open-/LibreOffice Calc Die Menüs I Office-Logo (Excel2007) bzw. Datei (andere): die Standard-Datei- und Druckoperationen; bei MS Excel hier auch.
Duo- und Quad Prozessor-Architektur
EDC Entwicklerforum Geoprocessing im Web 18. Juli 2013 Benjamin Proß Ein erweiterbarer WPS Client für ArcMap.
InfoPoint vom 9. November Was ist Joomla? Theorie Installation Extensions Administration Demo.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Betriebssysteme allgemein
Präsentation von Alexander Schönfeld
Tobias Kluge: FAME Middleware / Karlsruhe / The FAME project – Middleware.
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
Gliederung Was ist Linux? Desktop Environment Die Shell Tux His
Hardware / Software Codesign Hardware versus Software.
Real Time Operating System
Replikation und Synchronisation
Thread Synchronisation in JAVA
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Maximale Sicherheit für PC-Systeme. Was ist der PC-Sheriff 2000? Wie funktioniert der PC-Sheriff 2000? Warum PC-Sheriff 2000? Desktop-Probleme Vorteile.
Betriebssysteme Übung 2. Tutorium. Task 1 – Locks (1) Wozu Locks? Dienen dazu, exklusiven Zugriff auf eine Ressource sicherzustellen Lock = binäre Semaphore.
Systemsoftware und Betriebssysteme
Studiengang Informatik FHDW
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Maximale Sicherheit für PC-Systeme.
Von Florian, Patrick, Alexander und Heiko
Parallelisierung für Multiprozessor-Maschinen
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
2.3 Implementierung von Prozessen
Analyse und Umsetzung einer Filter-basierten Paketverarbeitungsmaschine für IP-Netzwerke Lehrstuhl für Systemarchitektur und Betriebssysteme Forschungs-
Universität zu Köln WS 2012/13 Seminar: IT-Zertifikat der Phil.-Fak.: Allgemeine Informationstechnologien I Dozentin: Susanne Kurz M.A. Referenten: Irina.
Dynamische Prioritäten Statische Prozess-Prioritäten sind sinnvoll, falls Prozesse in wenige Klassen einteilbar (3.3.3) Dynamische Prioritäten.
User Mode Linux Sven Wölfel 1. Juni User Mode Inhalt  Was ist UML?  Wofür kann man UML benutzen?
MDA – Model Driven Architecture
1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin
Systemengpässe und Strategien im Mobile Business Systemengpässe und Strategien im Mobile Business Tim Weitzel Johann Wolfgang Goethe-Universität Institut.
SecuCAM CST 1.0 Ein Tool zur Kameraüberwachung WARNIMONT Pol T3IF Projet de fin d‘études Lycée du Nord Wiltz.
Der Taskmanager ist Bestandteil des Betriebssystems, der als Prozessmanager Prozessmanager unter anderem die aktuell laufenden Programme und Prozesse.
Excel-Tool: Beschwerdeanalyse  Folie 1 von Bitte Makros aktivieren Das Excel-Tool funktioniert nur mit eingeschalteten Makros. Eventuell erhalten.
Abstürze bei Win XP. Gliederung Allgemeines über Abstürze bei XP Bluescreen Allgemeine Vorgehensweise bei Abstürzen Beispiele von Abstürzen und deren.
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
Promise EX4650 & EX8650 Controller Allgemeines: – Es müssen immer Festplatten Konfiguriert werden, da ansonsten für das Betriebssystem keine Laufwerke.
Echtzeit-Betriebssysteme
 Präsentation transkript:

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

Was ist real-time? IEEE: a real-time system is a system whose correctness includes its response time as well as its functional correctness Diese Definition lässt viele Interpretations- spielräume Deshalb: Einteilung in hard und soft real- time

Arten von real-time Systemen Hard real-time: Garantierte anwendungsabhängige worst-case Reaktionszeiten (nicht unbedingt kurz, aber sehr deterministisch) Soft real-time: Rechtzeitigkeit wird benötigt, aber Scheitern bleibt ohne schwerwiegende Folgen (evt. Qualitäts- verluste)

Wer benötigt real-time? Systeme mit hoher Verantwortung, z.B. - Gefahr für Menschenleben - Industrielle Automation Steigender Bedarf ausgelöst durch Anwendungen der Vernetzung, z.B. - Voice-over-IP Im Bereich Multimedia, z.B. - Video streaming

Linux und real-time? Linux ist kein real-time Betriebssystem - Andere Entwurfskonzepte mit teilweise konkurrierenden Zielen - Im Sinne einer weiteren Verbreitung, versucht man, die Qualitäten in diesem Bereich zu verbessern, so dass ein Einsatz etwa in embedded systems o.ä. möglich wäre Dank open source möglich und teilweise schon realisiert, entweder direkt im Kernel oder mit entsprechenden Patches

Was der aktuelle Linux Kernel leistet Zeitvorgaben im Millisekundenbereich werden standardmäßig nicht eingehalten, aber soft real- time ist kein Problem Kritische Bereiche werden unter Interruptsperre abgearbeitet - Kernel ist nicht preemptiv Langwährende Systemaufrufe halten hochpriore Benutzerprozesse auf Quelle für Indeterminismus der Antwortzeiten Thread scheduling policies - SCHED_FIFO, SCHED_RR, SCHED_OTHER - Nicht gerade fein-granuliert und parametrisierbar

Scheduler Latency Latency: - Allg: Intervall zwischen Stimulus und Reaktion (meist stochastisch) - hier: Zeit, die nach Ereignis vergeht, bis betroffener Thread den Prozessor erhält (PDLT) Was passiert in dieser Zeit? - Interrupt ISR Interrupt Handler des Device Drivers (aktiviert betroffenen Thread) need_resched flag des current task … scheduling (muss diesen Thread aber nicht auswählen) … Thread läuft

Möglichkeit I: RTLinux Läuft außerhalb vom eigentlichen Kernel - ist eigenständiges RT OS - Linux als niedrigst-priorer RT-Task Besitzt das System und kann auf Ereignisse nahezu sofort reagieren Software emuliert Interrupt Controller transparent für Linux (Virtuelle Maschine) Nachteile: zwei APIs, verbessert nicht die real-time Fähigkeiten von Linux, Overhead

Möglichkeit II: Kernel Preemption Nicht im aktuellen Standard Kernel - im 2.5er Entwicklerkernel optional auswählbar Kernel Preemption Patch verfügbar: - von Monta Vista entwickelt - von Kernel Maintainer Robert Love gewartet und weiterentwickelt

Kernel Preemption Patch Konzepte/Änderungen I Veränderte Implementierung von Spinlocks - SMP Synchronisation Preemption Lock, kontrolliert Wiedereintritt in kritische Bereiche Modifizierte Interrupt-Behandlung - erlaubt Re-Scheduling sofort danach, selbst wenn unterbrochener Prozess im System- Modus war (Ausnahme: dessen Region ist preemption locked)

Kernel Preemption Patch Konzepte/Änderungen II Andere Implementierung von spin unlock - System wird wieder in preemptable state gebracht und es wird sofort geprüft, ob context switch nötig ist Angepasste Kernel build definition - Speziell Uniprozessor Systeme müssen auch spin locks aktivieren

Bewertung Forderung: sehr kurze kritische Regionen Reaktivität drastisch gesteigert - Durchschnitt und worst case Wenige Änderungen gute Wartbarkeit und Verträglichkeit Nachteil: gewisser (kleiner) Overhead - Wird ausgeglichen, da I/O channels besser beschäftigt gehalten werden können

Möglichkeit III: Low Latency Regelmäßige Ausführung des Schedulers, damit kritische Tasks möglichst schnell bedient werden - aber: zu häufige Ausführung stellt einen beachtlichen Overhead dar (Kompromiss)

Low Latency Patch Konzepte/Änderungen I Eingeführt von Ingo Molnar, jetzt gewartet durch Andrew Morton Einführung von expliziten Preemption Points in den Blöcken des Kernel Codes, die für lange Zeit ausgeführt werden (Iterationen über große Datenstrukturen) Problem: finden dieser Stellen (z.B. mit Tools möglich) und SICHERES Einfügen

Preemption Points Wenn Schleife eine gewisse Zeit gelaufen ist, Scheduler aufrufen if (current->need_resched) schedule(); Mögliche Taktik: Spinlock freigeben, Scheduler aufrufen und danach Spinlock wieder reservieren (lock breaking)

Zusammenfassung

Weitere Ansatzpunkte An real-time Anforderungen angepasster Schedulingalgorithmus - Pre-Scheduling - Flexiblere Policies Höhere Timer-Auflösung

Ausblick Preemption Patch hat gute Aussichten, in den offiziellen Kernel als Option integriert zu werden, vielleicht auch in Kombination mit dem Low Latency Patch Persönliche Meinung: Mit höheren Multimedia-Anforderungen steigt der Wunsch nach real-time auch für den Ottonormal-Benutzer Integration nötig