Echtzeit-Betriebssysteme
freeRTOS, Designmethoden
freeRTOS, Designmethoden
-
- 1 / 33
-
Cartes-fiches
Was sind die Aufgaben des Kernels?
CPU Management: Aufteilung der Tasks auf die vorhandenen Prozessoren.
Synchronisation und Kommunikation zwischen Programmen.
Memory Management.
System Clock.
Interrupt Handling.
OS API (Application Programming Interface)
Welche Aufgaben hat das OS?
Verwaltung weiterer Systemressourcen:
I/O Verwaltung; File-Verwaltung; Peripherie, Ein/Ausgabe-System: Geräte-Treiber; Netzwerk: Kommunikation über Rechnergrenzen
Schnittstelle für die Applikations-SW
Was sind die Aufgeben des Utilites-Bereichs?
Hilfsprogramme die das Arbeiten mit dem Betreibssystem erleichtern:
- Entwicklungsumgebung
- Testhilfmittel
- usw.
Was ist der Unterschied zwischen FreeRTOS, OpenRTOS und SafeRTOS?
OpenRTOS: licensed and supported version of FreeRTOS
SafeRTOS: certified for use in safety critical applications
Was ist der Unterschied zwischen Harter und Weicher Echtzeitfähigkeit?
Weiche Echtzeitfähigkeit: Hält die Zeitlichen Vorgaben meistens aber nicht immer ein.
Harte Echtzeitfähigkeit: Hält die Zeitlichen Vorgaben immer ein, System ist deterministisch.
Was bedeutet preemtives scheduling?
Ein Task kann an irgend einer Stelle im Code vom Scheduler unterbrochen werden!
Was wird durch das Round Robin Scheduling geregelt?
- Tasks mit gleicher Priorität werden in einer FIFO-Warteschlange verwaltet.
- Ein Task bekommt für ein maximales Zeitintervall die CPU zur Verfügung
gestellt und wird anschliessend ans Ende der Warteschlange gestellt.
In welche Teile wird der TCB unterteilt?
- Software-Context
- Hardware-Context
Welche Daten beinhaltet der Software Context des TCB?
- Task State (ready, running, blocked …)
- Task Priorität
- Ticks to delay task or timeouts to wait for events.
- Task name
Welche Daten beinhaltet der HardwareContext des TCB?
Prozessor-Register:
- Programm-Counter (PC)
- Stack Pointer (SP)
- Link Register (LR)
- allgemeine Register (Rx)
- Status Register (CPSR)
Was versteht man unter dem Clock Tick?
Der Clock Tick ist der Herzschlag des Systems.
Je schneller der Clock Tick, desto grösser wird der Overhead des Systems.
Was ist der Idle Task
- System Tasks werden automatisch durch den Kernel erzeugt.
- Der Idle Task ist ein System Task, der ausgeführt wird, wenn kein anderer Tasks im Ready-Zustand ist.
- Der Idle Task hat die tiefste Priorität.
Was sind Hook-Funktionen?
Funktionen, die bei systemspezifischen Events aufgerufen werden. Z.B. im Idle-Task, System-Tick oder Stack-Overflow
Was versteht man unter einer Critical Section?
Eine Critical Section ist ein Stück Code, in dem ein Task auf Ressourcen zugreift, die auch von anderen Tasks verwendet werden.
Typische kritische Bereiche sind:
- Peripherie (I/O, Display …)
- Schnittstellen (UART, CAN, …)
- Globaler Speicher (Variablen, …)
- non-reentrant Funktionen (eigene, Library …)
Was versteht man unter Mutual Exclusion?
Exklusiver Zugriff eines Tasks auf eine Ressource.
Wie wird eine Mutual Exclusion erreicht?
- Disabling Interrupts (taskENTER_CRITICAL)
- Performing test-and-set operations
- Disabling scheduling
- Using semaphores
Wann entsteht eine Priority Inversion?
Wenn ein Task tieferer Priorität eine Ressource belegt, welche durch einen Task höherer Prioität gebraucht wird.
Wie kann die Zeit während einer Priority Inversion kurz gehalten werden?
Durch Priority Inheritance(Beerbung).
FreeRTOS stellt dafür die Mutex Semaphoren zur Verfügung.
Was ist ein Deadlock und wie kann er verhindert werden?
ein Deadlock tritt ein wenn:
mehrere Tasks gleichzeitig auf die gleichen Ressourcen warten und sich gegenseitig blockieren.
- Alle Ressourcen auf einmal anfordern und erst anschliessend weiterfahren.
- Die Ressourcen immer in derselben Reihenfolge anfordern.
- Die Ressourcen in der umgekehrten Reihenfolge freigeben.
- Timeouts verwenden: Bei Timeout alle Ressourcen freigeben und erst später wieder anfordern.
Was ist ein Gatekeeper?
Ein Task der eine Ressource darstellt und auf die nur über eine Messagequeue zugegriffen werden kann.
Aus welchen Teilen setzt sich die Interrupt Latencyzeit und die Interrupt Responsezeit zusammen?
Warum sollte in Echtzeitbetriebssystemen auf malloc() und free() verzichtet werden?
- nicht Thread sicher
- nicht deterministisch
- können zu Speicher Fragmentierungen führen
Was sind die Vorteile eines RTOS?
- Das Fundament der Software-Architektur wird basierendauf einem RTOS wesentlich stabiler. Die Software kann dadurch besser erweitert und gewartet werden. Der Design-Prozess wird durch die Aufteilung der Applikation in unterschiedliche Tasks vereinfacht.
- Zeitkritischer Code wird schnellstmöglich gestartet.
- Systemressourcen werden effizient genutzt.
- Ein RTOS stellt zusätzliche Services wie Semaphoren, Message-Queues, Timedelays und Timeouts zur Verfügung. Dies reduziert den Programmieraufwand für die Applikation.
Was sind die Nachteile eines RTOS?
- Zusätzliche Kosten für das RTOS (etwa 1‘000 bis 50‘000 sFr., z. T. auch Royalties). Variante: Open Source.
- Zusätzlicher Speicher (RAM, ROM)
- 2 bis 4% zusätzlichen CPU overhead
Aus was besteht ein DFD(Data Flow Diagrams)?
Terminatoren:
- Terminatoren stellen externe Daten-Quellen und -Senken dar.
- Beispiele für Terminatoren: LCD, RS232, Tastatur
Datenfluss:
- Datenflüsse übertragen Informationen
- Diskrete Datenflüsse in freeRTOS: Message Queue
Transform
- Transforms wandeln eingehende Datenflüsse in ausgehende Datenflüsse um, laufen parallel.
- Synonyme für Transform sind: Processe, Function, Transformation.
Welche Erweiterungen beinhaltet das C/DFD?
Kontrollfluss, Kontrolltransform, Kontrollspeicher;
->Semaphoren