Echtzeit-Betriebssysteme

freeRTOS, Designmethoden

freeRTOS, Designmethoden


Daniel Frutiger
Diese Lernkarten bieten einen umfassenden Überblick über Echtzeitbetriebssysteme (RTOS) und deren Funktionsweise. Sie behandeln zentrale Konzepte wie Aufgabenverwaltung, Ressourcenmanagement und CPU-Nutzung, wobei Schwerpunkte auf Prioritäten, Zeitmanagement und Interrupt-Handling liegen. Zudem werden praktische Aspekte wie Deadlocks, Mutual Exclusion und Context Switching erläutert. Die Karteikarten richten sich an Entwickler und Ingenieure, die Echtzeitsysteme optimieren und effizient gestalten möchten, indem sie die Vor- und Nachteile von RTOS verstehen und anwenden.
Flashcards
33
Students
2
Language
German
Category
Computer Science
Level
Other
Created / Updated
02.07.2013 / 15.01.2025

Cartes-fiches

Welche Aufgaben hat ein Betribssystem?

Zentrale Aufgeben für den Kern des OS; Zusätzliche allgemeine Aufgaben; Externe Aufgaben;

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 versteht man unter Time Sharing?

 

Verschiedene unabhängige Programme (und User) laufen auf einer CPU. Jedes Programm sieht nur seine „virtuelle“ CPU. 

 

Was versteht man unter einem Foregrund/Background System?

Siehe Abbidung

In welchen Zuständen kann sich ein Task befinden?

Siehe Abblidung

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 einem Context Switch und welche Funktionen werden dabei ausgeführt?

  • vPortYield(Assembler): rettet und stellt die Register der Tasks wider her.
  • vTaskSwitchContext(C): sucht nach Task mit höchster Priorität.
     

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?

Latency

Max. Zeit während der Interrupts disabled sein können
+
Zeit bis die erste Instruktion in der ISR ausgeführt wird

Response

Interrupt Latency
+
Zeit um CPU-Kontext zu speichern
+
Zeit für die Kernel ISR Entry Function

Warum sollte in Echtzeitbetriebssystemen auf malloc() und free() verzichtet werden?

  • nicht Thread sicher
  • nicht deterministisch
  • können zu Speicher Fragmentierungen führen
     

Wie sieht das Memory Management aus?(BFH)

Siehe Abblidung

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

Wie ist das Implementationsmodell aufgebaut?

siehe Abblidung

Lernen