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)

 
 
Informatik (Bachelor of Science) >>

Betriebssysteme-V+Ü (BS-VU)5 ECTS
(englische Bezeichnung: Operating Systems L+E)
(Prüfungsordnungsmodul: Betriebssysteme (Vorlesung mit Übungen))

Modulverantwortliche/r: Volkmar Sieh
Lehrende: Volkmar Sieh, Wolfgang Schröder-Preikschat


Startsemester: WS 2022/2023Dauer: 1 SemesterTurnus: jährlich (WS)
Präsenzzeit: 60 Std.Eigenstudium: 90 Std.Sprache: Deutsch

Lehrveranstaltungen:


Empfohlene Voraussetzungen:

  • C/C++ (Übungsaufgaben werden in C++ implementiert)
  • Assembler (Grundkenntnisse)

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

    Systemprogrammierung (SS 2022)


Inhalt:

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

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.

Literatur:

  • Avi Silberschatz, Peter B. Galvin, Greg Gagne. Operating System Concepts. John Wiley & Sons.
  • Andrew S. Tanenbaum. Modern Operating Systems. Pearson.

  • William Stallings. Operating Systems: Internals and Design Principles. Prentice Hall.

  • Andrew S. Tanenbaum. Structured Computer Organization. Pearson.


Weitere Informationen:

Schlüsselwörter: Betriebssysteme
www: https://sys.cs.fau.de/lehre/ws/bs

Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan:

  1. Informatik (Bachelor of Science)
    (Po-Vers. 2022w | TechFak | Informatik (Bachelor of Science) | Gesamtkonto | Wahlpflichtbereich (Wahlpflichtmodule aus mind. 2 Vertiefungsrichtungen) | Vertiefungsrichtung Verteilte Systeme und Betriebssysteme | Betriebssysteme (Vorlesung mit Übungen))
Dieses Modul ist daneben auch in den Studienfächern "Informatik (Bachelor of Arts (2 Fächer))", "Informatik (Master of Science)", "Information and Communication Technology (Master of Science)", "Informations- und Kommunikationstechnik (Master of Science)", "Mathematik (Bachelor of Science)", "Mechatronik (Master of Science)" verwendbar. Details

Studien-/Prüfungsleistungen:

Betriebssysteme (Vorlesung mit Übungen) (Prüfungsnummer: 150033)
Prüfungsleistung, mehrteilige Prüfung, benotet
Anteil an der Berechnung der Modulnote: 100.0 %
weitere Erläuterungen:
Erfolgreiche Bearbeitung aller während des Semesters gestellten Übungsaufgaben (6 Programmieraufgaben, Bewertung jeweils mit "ausreichend") + 30-minütige mündliche Prüfung am Ende des Semesters. Die Modulnote ergibt sich zu 100% aus der Bewertung der mündlichen Prüfung.
Prüfungssprache: Deutsch

Erstablegung: WS 2022/2023, 1. Wdh.: SS 2023, 2. Wdh.: keine Wiederholung
1. Prüfer: Volkmar Sieh

UnivIS ist ein Produkt der Config eG, Buckenhof