1 - Betriebssysteme/ClipID:11228 nächster Clip

Aufnahme Datum 2015-10-13

Kurs-Verknüpfung

Betriebssysteme

Lehrende(r)

Dr. Daniel Lohmann

Zugang

Passwort

Sprache

Deutsch

Einrichtung

Lehrstuhl für Informatik 4 (Verteilte Systeme und Betriebssysteme)

Im Rahmen dieses semesterübergreifenden Moduls werden Grundprinzipien des Betriebssystembaus von Startvorgang bis zum Mehradressraumsystem gelehrt und implementiert.
Ziel der Veranstaltung BS im Wintersemester ist zunächst die Vermittlung von konzeptionellen Grundlagen und wichtigen Techniken, die für den Bau eines Betriebssystems erforderlich sind. In den vorlesungsbegleitenden Übungen werden diese Kenntnisse praktisch angewendet, indem ein kleines PC-Betriebssystem in kleinen Arbeitsgruppen von Grund auf neu entwickelt wird. Um dies zu bewerkstelligen, sind fundierte Kenntnisse über Aufbau und Funktionsweise der PC-Hardware erforderlich, die ebenfalls in der Lehrveranstaltung vermittelt werden. Dabei werden gleichzeitig Grundlagen aus dem Betriebssystembereich wie Unterbrechungen, Synchronisation und Ablaufplanung, die aus früheren Veranstaltungen (wie Softwaresysteme I oder Systemprogrammierung I) weitgehend bekannt sein sollten, wiederholt und vertieft.
Schwerpunktthema der Veranstaltung BST im Sommersemster ist dann die Verwaltung von Prozessadressräumen. Untersucht werden Verfahren und Techniken zur Trennung logischer Adressräume, zum Adressraumgrenzen überschreitenden Zugriff und zum Schutz von Prozessen. Vorgestellt wird die Implementierung von Systemaufrufen und seiten- wie auch segmentbasierte Techniken zur Abbildung logischer/virtueller Adressräume auf reale. Vor diesem Hintergrund werden verschiedene Betriebssystemarchitekturen verglichen und gängige Adressraummodelle von Betriebssystemen erläutert und im Übungsbetriebssystem implementiert.

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.

  • 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.

  • erläutern und implementieren Entwurfsprinzipien für Systemaufrufe und diskutieren deren spezifischen Vor-/Nachteile.

    • vergleichen grundlegende BS-Architekturen (Bibliothek, Monolith, Mikrokern, Makrokern, Exokern) anhand fundamentaler Charakteristika (Robustheit, Performanz, Portierbarkeit) und deren Einfluss auf die Implementierung von Mechanismen (Systemaufrufe, Addressraumschutz).

    • unterscheiden Hierarchiekonzepte des Softwareentwurfs (Benutzthierachie, funktionale Hierachie) und erläutern deren Implikationen beim Betriebssystementwurf.

    • klassifizieren Schutz-, Verwaltungs-, und Virtualisierungstechniken für Programmzustände (Seitennummerierung, Segementierung, Sprachbasierung, Capabilities) und implementieren diese auf der IA-32-Architektur

    • diskutieren Adressraummodelle (Mehradressraummodell, Einadressraummodell, mehrstufige und inverse Seitenabbildungen, Mitbenutzung) und deren Implementierbarkeit auf gängigen Hardwarearchitekturen.

    • implementieren Mechanismen und Abtraktionen zur Interprozesskommunikation.

    • diskutieren das Zusammenspiel zwischen Kommunikation und Synchronisation im Bezug auf die besonderen Herausforderungen bei der Implementierung von Betriebssytemabstraktionen (lost wakeup, lost update, gepufferte/ungepufferte Zugriffe)

    • diskutieren Prinzipien der Mitbenutzung von Code und Daten unter Berücksichtigung der Betriebssystem- und Addressraumarchitektur.

    • erläutern die Funktionsweise eines Bindeladers und skizzieren effiziente Implementierungstechniken für positionsunabhängige Strukturen.

    • 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.

Nächstes Video

Schloss1
Dr. Daniel Lohmann
2015-10-20
Passwort
Schloss1
Dr. Daniel Lohmann
2015-10-27
Passwort
Schloss1
Dr. Daniel Lohmann
2015-11-03
Passwort
Schloss1
Dr. Daniel Lohmann
2015-11-10
Passwort
Schloss1
Dr. Daniel Lohmann
2015-11-17
Passwort

Mehr Videos aus der Kategorie "Technische Fakultät"

2024-04-17
Frei
freie Daten  
2024-04-16
Frei
freie Daten  
2024-04-17
IdM-Anmeldung
geschützte Daten  
2024-03-31
IdM-Anmeldung
geschützte Daten  
2024-03-28
IdM-Anmeldung
geschützte Daten  
2024-03-28
IdM-Anmeldung
geschützte Daten