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.

Slides:



Advertisements
Ähnliche Präsentationen
Tuning Tools für Windows
Advertisements

DGC 1. 2 Motivation x new(x) delete(x) Speicher DGC 3 Inhalt Einführung GC / DGC Der ideale DGC Algorithmen Zusammenfassung.
Leistung.
10.2 Wechselseitiger Ausschluss in Hardware
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Computersimulation steuert echtes Frontpanel an
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
C Tutorium – Semaphoren –
Attribute Protocol.
Informatik Tagesprotokoll vom
Vokabeln Zeit Wortstellung Verben Alles geht!
Institut für Angewandte Mikroelektronik und Datentechnik Fachbereich Elektrotechnik und Informationstechnik, Universität Rostock Vorlesung Echtzeitbetriebssysteme.
Claas J. Cornelius - Ogg-on-a-chip - MDCT MDCT Funktionsweise und Limitierende Faktoren.
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Risiken und Chancen Risiko Beurteilung: Dazu gehört die Identifikationen von Risiken, ihre Analyse und das Ordnen nach Prioritäten. Risiko Kontrolle: Dazu.
Kapitel 10 Nebenläufigkeit und wechselseitiger Ausschluss
SQL als Abfragesprache
Windows Universität zu Köln
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
DbjFileManager Paul Fruntzek Michael Stanek. Überblick Unterste Ebene im Schichtenmodell Schnittstelle zum BS (Low-Level) Aufgabenbereich: Persistente.
Vorl. 6: Single- und Multitasking Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 5: Interrupts Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Vorlesung 5 Interrupts 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.
Linux-HA-Cluster – Heartbeat mit DRBD
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Geschichte von Windows Die Basis vieler Windowsbetriebssysteme, sei es Betriebsystemgrundlage (Windows 1-3) oder integriert (Windows 95-ME)´ist MS DOS.
Effiziente Algorithmen
RTAI-Linux Echtzeiterweiterung für Linux
Speicherverwaltung durch Swapping
Michael Haverbeck System Engineer
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek.
Betriebssysteme allgemein
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Effiziente Algorithmen
Das Betriebssystem.
Betriebssysteme & BIOS
Vergleich Windows – Linux I
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Parallel Programming Condition Queues
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Prozess-synchronisation
Warum gibt es Netzwerke?
Digitale Aufklärung Warum uns das Internet klüger macht
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
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
Thomas Gleixner – linutronix Linux in Automation 2004 – Uni Hannover.
SFZ FN Sj. 13/14 Python 3 Rekursion Inf K1/2 Sj 13/14
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Directors Prof. Dr.-Ing. K.D. Müller-Glaser Prof. Dr.-Ing. J. Becker Prof. Dr. rer. nat. W. Stork Institute for Information Processing Technology.
Betriebssysteme: Windows-OS
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
2.3 Implementierung von Prozessen
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Dynamische Prioritäten Statische Prozess-Prioritäten sind sinnvoll, falls Prozesse in wenige Klassen einteilbar (3.3.3) Dynamische Prioritäten.
NE2000: Hardware und Design eines Treibers 1 AKBPII: Abschlusspräsentation NE2000: Hardware und Design eines prototypischen Treibers bearbeitet.
1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin
Windows und LINUX Linux für Windows Nutzer. Übersicht Warum Windows, warum Linux ? Welches Linux für wen ? Windows und Linux gemeinsam Beispiel ct 2005/2,
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
Betriebssysteme: Theorie
Ablauf von Daten- verarbeitungsprozessen Gliederung: ● Zeitliche Steuerung von Abläufen – Druckauftragsverarbeitung – scheinbare Gleichzeitigkeit von Prozessen.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Threads Alexander Sczyrba Jan Krüger.
Magische Wand Ein Spiel zum Thema: Betriebssysteme.
Echtzeit-Betriebssysteme
 Präsentation transkript:

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 –Die meisten Boards haben Buffer. Damit kann das Nicht-EZ- Verhalten von Desktopsystemen (W98, Windows-ME) kompensiert werden –Buffer nimmt 512 Samples auf und wird alle 50ms einmal ausgelesen

Institut MD Universität Rostock Real-Time Linux Drei Probleme. 1.Auch wenn 50 ms lange Zeit sind, ist es nicht schwierig Deadline zu verlieren 2.Wenn HW mit SW-Unzulänglichkeiten rechnen muss, dann wird die HW u.U. komplex und teuer 3.Wenn ein Gerät gesteuert werden muss, dann können 50ms u.U zu lang sein und der HW-Buffer kann Instabilitäten und bewirken und Verzögerungen innerhalb der Steuerschleife bewirken

Institut MD Universität Rostock RTS implementiert als Schleife Nachteil: nicht skalierbar counter = 500; while (1) { if (data_on_sensor()) ( read_sensor(); compute_output(); counter--; } if (!counter) { output(); counter=500; }

Institut MD Universität Rostock Fundamentale Widersprüche im Code von Linux mit RT-Anforderungen: oder Warum ist Linux nicht echtzeitfähig?

Institut MD Universität Rostock Warum ist Linux nicht echtzeitfähig? I coarse grained (grobkörnige) Synchronisation: –Eine Tasks hat über einen längeren Zeitraum alleinigen Zugriff auf einige Daten –Fine grained (feinkörnige) Synchronisation bewirkt, dass das System viel Zeit mit dem Belegen und Freigeben von Datenstrukturen verbringt –Linux nutzt grobkörnige Synchronisation kein vollunterbrechbarer Kern

Institut MD Universität Rostock Warum ist Linux nicht echtzeitfähig? II Manchmal bekommt die unbedeutendste Tasks eine Zeitscheibe, obwohl es wichtigere Tasks gibt –Hintergrundtask, die z.B. Logfiles löscht –In RTS wartet eine hochpriore Tasks nicht auf niederpriore

Institut MD Universität Rostock Warum ist Linux nicht echtzeitfähig? III Linux ordnet u.U. einige Taskanforderungen neu, um Hardware effizienter zu nutzen –Z.B. Das Lesen eines Blocks von Festplatte durch einen niederprioren Prozess, kann dem Lesen eines höherprioren Prozesses vorangestellt werden, um z.B. Bewegungen des Festplattenkopfes zu minimieren oder die Chance zur Fehlerregenerierung zu verbessern

Institut MD Universität Rostock Warum ist Linux nicht echtzeitfähig? IV Linux stapelt Operationen, um Hardware effizienter zu nutzen –Anstelle, eine Page zur Zeit zu befreien, wenn der Speicher eng wird, geht Linux durch die Liste der Pages und löscht so viel Pages wie möglich. Damit wird die Ausführung aller Tasks unterbrochen. Es wäre nicht sonderlich produktiv für Linux, den Swapper immer dann zu starten, wenn eine Pages benötigt wird. Dadurch wird der Worst Case Fall beeinflusst. Linux unterbricht nicht die Ausführung einer niederprioren Tasks –Um das zu können, müssten Preemption Points in das System eingefügt werden. Die würden jedoch die Performance des Gesamtsystems verschlechtern Linux lässt hochpriore Tasks durch niederpriore Tasks auf die Freigabe von Ressourcen warten

Institut MD Universität Rostock Kann man Linux nicht selbst echtzeitfähig machen Prinzipiell bestände die Möglichkeit, Linux echtzeitfähig zu machen und den Code zu modifizieren. –Dazu wäre es erforderlich, 90% der Treiber herauszuschmeißen und den größten Teil des Codes neu zu schreiben. –Das Ergebnis wäre jedoch nicht Linux Ansonsten ist das Worst-Case-Delay der längste Pfad zwischen zwei Preemption Points. Dieses ist schwierig zu bestimmen oder zu reduzieren Jede Modifizierung des Codes hat einen globalen Effekt.

Institut MD Universität Rostock Die RTLinux-Lösung Linux wird so modifiziert (fix), dass Linux keine Interrupts selbst sperren kann. Ein kleiner Echtzeit-Kernel, teilt den Kernel-Bereich und erhält die IRQs zu erst. Linux hat jetzt einen Interrupt Control Emulator. Der wesentliche Unterschied zum System ohne RT-Teil

Institut MD Universität Rostock Die RTLinux-Lösung Betriebssystemkern (RT-Kernel) übernimmt die Kontrolle über das Betriebssystem (Linux) Das normale Linux wird als Task ausgeführt. RT-Linux stellt den Zugriff auf HW derart sicher, dass EZ-Task minimale Latenzzeit besitzen. Lycklama,H., Bayer, D.L.: The Mert Operating System. Bell System technical Journal 57(6) , 1998

Institut MD Universität Rostock Verwendung von RTLinux Interrupt Steuerhardware Real-Time Kernel Linux Real-Time Tasks Linux-Anwenderprozesse

Institut MD Universität Rostock API rtl_request_irq, rtl_free_irq rt_get_time rt_task_delete rt_task_init rt_task_make_periodic rt_task_suspend rt_task_wait rt_task_wakeup rt_use_fp rtf_create rtf_create_handler rtf_destroy rtf_get rtf_put rtf_resize rtf_set_periodic_mode rtf_set_oneshot_mode