Thomas Gleixner – linutronix Linux in Automation 2004 – Uni Hannover.

Slides:



Advertisements
Ähnliche Präsentationen
Dauermagnete Bei magnetischen Materialien unterscheidet man Eisenkerne bzw. Weicheisenstücke und Dauermagnete bzw. Hart-magnetische Materialien. Dauermagnete.
Advertisements

TAGUNG DER DEUTSCH-LUSITANISCHEN JURISTENVEREINIGUNG O processo penal português Panorâmica introdutória Der portugiesische Strafprozess ein einführender.
Ach wie gut, daß niemand weiß Der Schutz von Wissen
Herzlich Willkommen bei SIMPLE STABLE BULDING
Adjektivendungen Tabellen und Übungen.
ZWILLING Neuheiten 2008.
Das Hexenkochbuch Nicht Rattenschwänze, Spinnenbein
 Präsentation transkript:

Thomas Gleixner – linutronix Linux in Automation 2004 – Uni Hannover

Was ist das ? LInux Based Enhanced RealTime Operating System Modifikation des Linux-Kernels zur Erlangung der Echtzeitfähigkeit basierend auf dem KURT Projekt (Kansas University Realtime) unter der Leitung von Prof. Douglas Niehaus

Warum ? Performance Speicherbedarf Portierbarkeit Dual Kernel ist für viele User schwierig zu handhaben

Designvorgaben Quality of Service Instrumentierbarkeit Unterstützung für vernetzte Systeme Modularität Portierbarkeit

Quality of Service As fast as specified rather than as fast as possible Zitat Douglas Niehaus

Funktionalität Microsekunden Timer Instrumentierung für Kernel / Userspace Modularer Echtzeitscheduler Interrupthandling unter Schedulerkontrolle Userspace Realtime

µsec Timer Driftkompensation Synchronisation von vernetzen Systemen Schlanke Implementation auf reiner 32 bit Arithmetik Busyloops für kurze Delays entfallen

µsec Timer Voraussetzungen Frei laufender Timer oder Time Stamp Counter. Emulation des x86 TSC für 16 und 32 bit Timer One-shot programmierbarer Timer

Instrumentierung DSKI (Data Stream Kernel Interface) DSUI (Data Stream Userspace Interface) Alle relevanten Codeteile sind instrumentiert Eventaufzeichnung selektierbar Netzwerksupport für Embedded Systeme

Instrumentierung Eventspeicher wird in XML umgewandelt Python basierte Auswertung

RT - Scheduler Erweiterung der Linux Task Struktur. Dadurch Userspace Realtime zum Nulltarif RT-Scheduler entscheidet vor dem eigentlichen Linux-Scheduler Groupscheduling Modular ladbare Scheduling Algorithmen Watchdog Funktion

RT - Scheduler Schedule() RT-Scheduler Scheduler Modul Scheduler Modul Scheduler Modul RT ? Taskswitch Linux scheduler Ja Nein

Groupscheduling Bilden von Prozessgruppen Scheduling der Prozessgruppen Scheduling der Prozesse in den Gruppen

Groupscheduling Beispiel Timeslice P4, P5 P6, P7 P1, P2, P3 Group 1 Group 2 Group 3 P8, P9 EDF Priority RR

Groupscheduling Implementierte Algorithmen Priority Priority mit Quantum Early Deadline First Round Robin Explicit Plan Periodic

Groupscheduling System Decision Function (SDF) Scheduling von Systemereignissen Scheduling von Interrupthandlern Scheduling von Tasklets

Interrupthandling CLI/STI durch Softwareflag ersetzt Interrupts sind auf Hardwareebene fast immer enabled Support für Per IRQ locking Softwarepriorisierung von Interrupts Interrupts unter Schedulerkontrolle (SDF)

Interrupthandling IRQ Entry RT IRQ ? CLI ? RT context ? Notification NN N J J IRQ handler IRQ Exit Locked ? J Can run ? (SDF) N N J J

Interrupthandling IRQ1, IRQ5 IRQ11 RT IRQ Group Priority IRQ1, IRQ5 IRQ11 Linux IRQ Group EDF Bottom Halfs, Tasklets Linux SDF Group Sequential Interrupthandling im Scheduler (SDF)

Userspace Realtime Standard Userspace Programmierung Posix-Threads Realtime Verhalten kann innerhalb des Programms oder von aussen beinflusst werden Debugging von Realtime Anwendungen mit GDB Userspace Devicedriver Support

Userspace Realtime Standard IPC Mechanismen Signale Semaphoren Fifos Pipes Shared Memory

Userspace Realtime Restriktionen Blockierende Systemcalls (Disk-I/O)

Performance P3 1,4Ghz, 100% load

Performance P3 1,4Ghz, 100% load

Performance P3 1,4Ghz, 100% load

Performance P3 1,4Ghz, 100% load

Performance Maximum Signal propagation delay Celeron 333MHz (1) 100% Userspace load (2) 50% Userspace 50% System load (ping -f, serial communication Bd)

Portierbarkeit Es müssen nur der Timer und die Interrupt Entry Funktion portiert werden ARM7 ca. 120 Zeilen Code Zeilen Makros PPC405 ca. 200 Zeilen Code Zeilen Makros

Status (1) Nicht alle Derivate implementiert WIP = Work In Progress

Verwendung Telekommunikation (ATM-Switching) ACE/TAO wird von Chris Gill auf LibeRTOS betrieben. Hierbei ist vor allem die Integration der ACE Scheduling Funktionalität in die Groupscheduling Funktion von LibeRTOS ein vorrangiges Ziel. Video/Audio Streaming, HD-Recording Messtechnik, Datenerfassung / aufbereitung