UnivIS
Informationssystem der Friedrich-Alexander-Universität Erlangen-Nürnberg © Config eG 
FAU Logo
  Sammlung/Stundenplan    Modulbelegung Home  |  Rechtliches  |  Kontakt  |  Hilfe    
Suche:      Semester:   
 
 Darstellung
 
Druckansicht

 
 
Modulbeschreibung (PDF)

 
 
 Außerdem im UnivIS
 
Vorlesungs- und Modulverzeichnis nach Studiengängen

Vorlesungsverzeichnis

 
 
Veranstaltungskalender

Stellenangebote

Möbel-/Rechnerbörse

 
 
>>

Betriebssysteme und Echtzeitsysteme - V+Ü (BS+EZS-VU)10 ECTS
(englische Bezeichnung: Operating Systems and Real-Time Systems - V+Ü)
(Prüfungsordnungsmodul: Vertiefungsrichtung Verteilte Systeme und Betriebssysteme)

Modulverantwortliche/r: Daniel Lohmann
Lehrende: Daniel Lohmann, Peter Ulbrich


Startsemester: WS 2017/2018Dauer: 1 SemesterTurnus: jährlich (WS)
Präsenzzeit: 120 Std.Eigenstudium: 180 Std.Sprache: Deutsch

Lehrveranstaltungen:


Empfohlene Voraussetzungen:

Es wird empfohlen, folgende Module zu absolvieren, bevor dieses Modul belegt wird:

Systemprogrammierung (SS 2016)


Inhalt:

Inhalt des Moduls ist Vermittlung grundlegender Konzepte, Methoden und Techniken von Betriebssystemen aus dem Blickwinkel einer (Echtzeit-)Betriebssystementwicklerin. Im Rahmen der Übungen entwickeln die Studierenden in einem "bottom-up" Entwurf- und Entwicklungsprozess ihr eigenes (Mehrkern-)betriebssystem für die IA-32 Platform, ausgehend von der "nackten Hardware" über grundlegende Ein-Ausgabemöglichleiten, Unterbrechungsbearbeitung bis hin zu quasi- und echtparalleler Programmausführung.

Ferner werden grundlegenden Techniken und Mechanismen vermittelt werden, die man im Betriebssystemumfeld verwendet, um Echtzeitsysteme und Echtzeitbetriebssysteme zu realisieren:

  • zeitgesteuerte und ereignisgesteuerte Systeme

  • statische und dynamische Ablaufplanungsverfahren

  • Fadensynchronisation in Echtzeitbetriebssystemen

  • Behandlung von periodischen und nicht-periodischen Ereignissen

In den begleitenden Übungen werden die vorgestellten Techniken bei der Entwicklung eines kleinen Echtzeitsystems praktisch umgesetzt.

Lernziele und Kompetenzen:

Studierende, die das Modul erfolgreich abgeschlossen haben:

  • erläutern den Startvorgang eines Rechensystems am Beispiel eines IA32 PCs.

  • beschreiben die spezifischen Herausforderungen bei der Softwareentwicklung für "bare metal".

  • beschreiben den Ablauf einer Unterbrechungsbehandlung von der Hardware bis zur (System-)software.

  • skizzieren Besonderheiten und Strategien der Unterbrechungsbehandlung in Hardware für Mehrkernsystemen am Beispiel des IA32-APICs.

  • diskutieren die Aufgabenteilung zwischen Hardware und Systemsoftware bei der Unterbrechungsbearbeitung.

  • unterscheiden die verschiedenen Typen von Kontrollflüssen in einem Betriebssystem anhand des Ebenenmodells.

  • unterscheiden harte, mehrstufige, und weiche Verfahren zur Unterbrechungssynchronisation in Betriebssystemen und können diese implementieren.

  • klassifizieren konkrete Konkurrenzsituationen anhand des Ebenenmodels und leiten daraus geeignete Synchronisationsmaßnahmen ab.

  • schildern die IA32-Architektur und gängige PC-Technologie und deren Schnittstellen zur Systemsoftware.

  • erläutern grundlegende Bausteine für die Implementierung von Quasi-Parallelität (Fortsetzungen, Koroutinen, Fäden) und grenzen diese gegeneinander ab.

  • erläutern die Interaktionen zwischen Hardware, Übersetzer und Systemsoftware, die dabei zu beachten sind.

  • entwickeln den Koroutinenwechsel für einen gegebene Architektur.

  • erläutern die Implikationen von Quasi-Parallität auf das Ebenenmodell und die daraus abgeleiteten Synchronisationsmaßnahmen.

  • beschreiben die Implementierung von (verdrängendem) Scheduling in einem Betriebssystem.

  • analysieren das Zusammenspiel von Scheduling und Unterbrechungssynchronisation.

  • nennen Kriterien und Dimensionen des Schedulings von Betriebsmitteln, insbesondere der CPU.

  • erläutern die konkrete Umsetzung am Beispiel der Scheduler in Linux und Windows.

  • unterscheiden grundlegende Möglichkeiten der Koordinierung und Synchronisation von Fäden (aktives/passives Warten, nichtverdrängbare kritische Abschnitte).

  • entwickeln Mechanismen für die Synchronisation auf Fadenebene.

  • erklären die dabei zu beachtenden Synchronisationsprobleme (lost update, lost wakeup) und geeignete Gegenmaßnahmen.

  • interpretieren die Bedeutung von Gerätetreibern in der Betriebssystempraxis.

  • erläutern die Anforderungen an ein Treibermodell.

  • vergleichen die Umsetzung von Treibermodellen in Windows und Linux.

  • vergleichen grundlegende BS-Architekturen (Bibliothek, Monolith, Mikrokern, Exokern, Hypervisor) anhand fundamentaler Charakteristika (Robustheit, Performanz, Portierbarkeit) und Mechanismen.

  • schildern die grundlegenden Paradigmen zur Interprozesskommunikation in Betriebssystemen (speicherbasiert vs. nachrichtenbasiert).

  • erläutern die grundlegenden Primitiven dieser Verfahren.

  • skizzieren, wie unter Anwendung dieser Primitiven höhere Synchronisationskonstrukte implementiert werden (Monitore, Leser-/Schreiber-Sperre).

  • illustrieren die Dualität der Paradigmen.

  • erschließen sich typische Probleme (Nebenläufigkeit, Compilerverhalten, Debuggen ohne dedizierte Hilfsmittel) und Fehlerquellen bei der hardwarenahen Softwareentwicklung.

  • können in Kleingruppen kooperativ arbeiten.

  • können die ihre Entwurfs- und Implementierungsentscheidungen kompakt präsentieren und argumentativ vertreten.

  • reflektieren ihre Entscheidungen kritisch und leiten Alternativen ab.

  • können offen und konstruktiv mit Schwachpunkten und Irrwegen umgehen.

  • unterscheiden die verschiedenen Komponenten eines Echtzeitsystems.

  • bewerten die Verbindlichkeiten von Terminvorgaben (weich, fest, hart).

  • erläutern die Zusammensetzung des Laufzeitverhaltes einer Echtzeitanwendung.

  • klassifizieren die Berührungspunkte zwischen physikalischem Objekt und kontrollierendem Echtzeitsystem.

  • interpretieren die Zeitparameter des durch das Echtzeitrechensystem zu kontrollierenden Objekts.

  • nennen die Zeitparameter des zugrundeliegenden Rechensystems (Unterbrechungslatenz, Ausführungszeit, ...).

  • unterscheiden synchrone und asynchrone Programmunterbrechung (insbesondere Trap/Interrupt, Ausnahmebehandlung und Zustandssicherung).

  • skizzieren die Verwaltungsgemeinkosten des schlimmsten Falls.

  • entwickeln in der Programmiersprache C und wenden die GNU Werkzeugkette für den Infineon TriCore Microcontroller sowie den Lauterbach Debugger an.

  • erstellen Echtzeitanwendungen auf Basis der eCos OS-Schnittstelle

  • ordnen die Strukturelemente von Echtzeitanwendungen zu: Aufgabe, Arbeitsauftrag und Faden.

  • erläutern die Implikationen von zeitlichem Mehrfachbetrieb auf die Verwaltungsgemeinkosten.

  • unterscheiden die Umsetzungsalternativen zur Ablaufsteuerung und die Trennung der Belange in Einplanung (Strategie) und Einlastung (Mechanismus).

  • benennen die grundsätzliche Verfahren der Ablaufsteuerung (taktgesteuert, reihum, vorranggesteuert).

  • erklären die grundlegenden Zeitparameter einer Aufgabe (Auslösezeitpunkt, Termin, Antwortzeit, Latenz, Ausführungszeit, Schlupfzeit).

  • unterscheiden die Grundlagen der Planbarkeit (gültig vs. zulässig, Optimalität von Einplanungsalgorithmen).

  • beschreiben den Unterschied zwischen konstruktiver und analytischer Einhaltung von Terminen-.

  • vergleich die Möglichkeiten (statisch, dynamisch) der zeitliche Analyse von Echtzeitanwendungen.

  • erklären die Grundlagen und Beschränkungen von dynamischer (worst-case?) und statischer WCET-Analyse (makroskopisch und mikroskopisch).

  • illustrieren Lösungsverfahren zur Bestimmung des längsten Ausführungspfads (Timing Schema, IPET).

  • erstellen Zeitmessung mittels Zeitgeber / Oszilloskop und bestimmen den längsten Pfad durch Code-Review.

  • erproben werkzeuggestützte WCET-Analyse mittels des absint aiT Analysewerkzeugs.

  • beschreiben die Grundlagen der Abfertigung periodischer Echtzeitsysteme (Periode, Phase, Hyperperiode).

  • skizzieren das periodische Modell und dessen Folgen (Entwicklungskomfort vs. Analysierbarkeit).

  • erklären die ereignisgesteuerte Ausführung (feste und dynamische Priorität, Verdrängbarkeit) mittels ereignisorienterter Planer (Berechnungskomplexität, MLQ-Scheduler, O(1)-Scheduler).

  • unterscheiden die zeitgesteuerte Ausführung (Busy Loop, Ablaufplan)und die Abfertigung von Arbeitsaufträgen im Abfrage- bzw. Unterbrecherbetrieb.

  • wenden die Grundlagen der ereignisgesteuerten Ablaufplanung periodischer Echtzeitsysteme an.

  • unterscheiden Verfahren zur statischen (RM, DM) und dynamischen Prioritätsvergabe (EDF, LRT, LST).

  • nennen den Unterschied zwischen Anwendungs- und Systemebene (Mehrdeutigkeit von Prioritäten).

  • erläutern den Optimalitätsnachweis des RM-, DM- und EDF-Algorithmus und dessen Ausnahmen.

  • beschreiben grundlegende Verfahren zur Planbarkeitsanalyse (CPU-Auslastung, Antwortzeitanalyse).

  • implementieren komplexe Aufgabensysteme in eCos.

  • unterscheiden die Grundlagen der zeitgesteuerten Ablaufplanung periodischer Echtzeitsysteme.

  • erstellen regelmäßige, zyklische Ablaufpläne (cyclic executive model, Rahmen).

  • vergleich Methoden der manuellen und algorithmischen Ablaufplanung.

  • unterscheiden optimale von heuristischen Verfahren (List Scheduling, Branch & Bound).

  • diskutieren die Konsequenzen eines Betriebswechsels in Echtzeitsystemen.

  • erstellen takt- beziehungsweise ereignisgesteuerte Abläufe in eCos beziehungsweise tt-eCos.

  • klassifizieren die Grundlagen der Abfertigung nicht-periodischer Echtzeitsysteme (minimale Zwischenankunftszeit).

  • definieren die Verbindlichkeiten von nicht-periodischen Aufgaben (aperiodisch, sporadisch)

  • zeigen die sich ergebenden Restriktionen des periodischen Modells (Mischbetrieb, Prioritätswarteschlangen, Übernahmeprüfung) auf.

  • beschreiben die Basistechniken des Laufzeitsystems (Zusteller, Unterbrecherbetrieb, Hintergrundbetrieb).

  • quantifizieren die Eigenschaften und Auswirkungen auf den periodischen Teil des Echtzeitsystems.

  • formulieren die Grundlagen des Slack-Stealing.

  • beschreiben den Einsatz von bandweite-bewahrenden Zustellern.

  • unterscheiden aufschiebbare Zusteller und Sporadic Server (SpSL und POSIX).

  • wenden eine Übernahmeprüfung bei sporadischen Aufgaben mittels dichte- oder schlupfbasierten Akzeptanztests an.

  • arbeiten einen strukturierter Ablaufplan (Rahmen) aus und untersuchen den Einsatz von Slack-Stealing.

  • ermitteln gerichtete Abhängigkeiten und Rangfolgen in Echtzeitanwendungen (Abhängigkeits- und Aufgabengraph).

  • stellen Umsetzungsalternativen für Abhängigkeiten einander gegenüber (naiv, implizit, explizit).

  • beschreiben das Konzept der zeitlichen Domänen und physikalischer bzw. logischer Ereignisse.

  • übertragen Abhängigkeiten auf das Problem der Ablaufplanung (modifiziere Auslösezeitpunkt/Termin, Phasenversatz).

  • konzipieren Rangfolge und aperiodische Steuerung in eCos.

  • implementieren einen aperiodischer Moduswechsel mit Zustandsüberführung in eCos.

  • wenden die Grundlagen von Wettstreit um Betriebsmitteln, Konkurrenz und Konfliktsituationen (kritische Abschnitte, (un)kontrollierte Prioritätsumkehr) an.

  • beschreiben echtzeitfähige Synchronisationsprotokolle (NPCS, PI, PCP).

  • nennen die Vor- und Nachteile der Techniken (transitive Blockung, Verklemmungen).

  • hinterfragen die Vereinfachung des PCP durch stapelbezogene Grenzprioritäten.

  • bestimmen die Ablaufplanung unter Berücksichtigung von Blockierungszeiten und Selbstsuspendierung.

  • implementieren Zugriffskontrolle (NPCS, PI, PCP) in Echtzeitanwendungen mit eCos.

  • erläutern die Anforderungen an verteile Echtzeitsysteme (Komposition, Erweiterbarkeit, Komplexität, Ereignis- vs. Zustandsnachricht).

  • fassen die Grundlagen von Knoten, Netzwerkschnittstellen und Netzübergängen sowie die Konzepte der expliziten und impliziten Flusskontrolle zusammen.

  • erschließen sich typische Probleme (zeitliche Analyse, Beobachtbarkeit, Synchronisation, Rangfolge) und Fehlerquellen bei der Programmierung von Echtzeitanwendungen.


Weitere Informationen:

Schlüsselwörter: BS, Betriebssysteme, OS, Operating Systems, System Software, Real-Time Systems

Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan:

  1. Informatik (Bachelor of Science): 5-6. Semester
    (Po-Vers. 2009w | TechFak | Informatik (Bachelor of Science) | Wahlpflichtbereich (5. und 6. Semester) | Wahlpflichtmodule | Vertiefungsrichtung Verteilte Systeme und Betriebssysteme)
Dieses Modul ist daneben auch in den Studienfächern "Informatik (Bachelor of Arts (2 Fächer))", "Informatik (Master of Science)", "Mathematik (Bachelor of Science)" verwendbar. Details

Studien-/Prüfungsleistungen:

Betriebssysteme und Echtzeitsysteme (Vorlesungen mit Übungen) (Prüfungsnummer: 341400)
Prüfungsleistung, mehrteilige Prüfung, benotet
Anteil an der Berechnung der Modulnote: 100.0 %
weitere Erläuterungen:
30-minütige mündliche Prüfung
+ erfolgreiche Bearbeitung aller Übungsaufgaben

Erstablegung: WS 2017/2018, 1. Wdh.: SS 2018
1. Prüfer: Daniel Lohmann

UnivIS ist ein Produkt der Config eG, Buckenhof