Betriebssysteme 1, WS 01/02

Veranstaltungsinhalte

Die folgende Liste von Lerninhalten wird im Laufe des Semesters entwickelt. Sie dient als Checkliste, mit welchen Themen und Begriffen die Veranstaltungsteilnehmer vertraut werden sollten. Eine "Session" entspricht einer zusammengehörigen Lerneinheit, sie muss nicht notwendigerweise in genau einer Vorlesung abgehandelt werden.


Session 0: Überblick über Betriebssysteme

Vorlesung:
  • Aufgaben von Betriebssystemen (Applikations-Schicht, Virtuelle Maschine, HW-Schicht)
  • Motivation für Betriebssystem-Verwendung (Abstraktion, Wiederverwendung, Security, Safety)
  • Hauptthemen:
    • Prozesse - Threads - Scheduling - IPC
    • Memory Management
    • Input/Output
    • Dateisysteme
    • Multimedia-Subsysteme
    • Verteilte Kommunikation
    • (Graphische Benutzerschnittstellen)
    • Security
Literatur: [1]



Session 1: Prozesse

Vorlesung:
  • Prozesskommunikation
    • mit Betriebssystem-Beteiligung (Pipe, Shared Memory, Sockets, Message Queues, WIN32-Messages, (Unix-)Signale, Semaphoren)
    • ohne Betriebssystem-Beteiligung (Ringpuffer)
  • Kritische Abschnitte (Zugriff auf Betriebsmittel)
  • Sperrtechniken
    • Locks auf Objekten (z.B. Dateien)
    • Semaphoren und Mutexe
    • Interruptsperren
    • Monitore
  • Algorithmen für wechselseitigen Ausschluss mittels Busy-Waiting (Spin-Locks)
    • Strict Alternation
    • Peterson's Algorithmus
    • TSL-Verwendung
  • Interprocess Communication-Probleme (z.B. Producer/Consumer-Problem, Cigaret Smoker-Problem)
Literatur: [1], Kapitel 2, speziell 2.3



Session 2: CSP

Vorlesung: Communicating Sequential Processes (CSP)
  • allgemein:
    • Prozesse, parametrisierte Prozesse, STOP, SKIP
    • Operatoren
      ->   ;   |||   [| |]   []   |~|   \
    • Kanäle, Events
  • CSP-Spezifikation von Algorithmen und Überprüfung erwarteter Eigenschaften
    • Abstrakte Spezifikation (Referenz-CSP-Prozess): Abstraktion des erwarteten Verhaltens
    • Konkrete Spezifikation (Implementierung): Modellierung des Algorithmus (Variablen als Prozesse,...)
    • Überprüfung der gewünschten Eigentschaften mit FDR (Trace-Refinement, Tests auf Deadlock-Freiheit)
Literatur: [9], [10]
FDR-Online-Help, FDR-Manual [.ps] (Syntax ab S.47)



Session 3: Threads

Vorlesung:
  • Eigenschaften von Prozessen (Daten pro Prozess)
    • Resourcen: Adressraum, globale Variablen, offene Dateien, Kind-Prozesse, Signale/Signal-Handler
    • Programm-Faden (Thread): Programm-Counter, Register, Stack, Zustand
  • Multithreading
  • Lightweight Processes - User Space Threads - Kernel Space Threads
  • POSIX-Threads (portable Schnittstelle)
  • Thread-Safe-Funktionen
Literatur: [1], Kapitel 2, speziell 2.1 und 2.2



Session 4: Scheduling

Vorlesung:
  • Scheduling-Algorithmen: SCHED_OTHER, SCHED_RR, SCHED_FIFO
  • Fairness
  • präemptives / nicht-präemptives Scheduling
  • statische /dynamische Prioritäten
  • Universell fairer Scheduler
Literatur: [1], Kapitel 2, speziell 2.5



Session 5: Security

Vorlesung:
  • Dependability (Attribute: Availability, Reliability, Safety, Security) -- Service -- User
  • Fault-Tolerance, Fault-Avoidance, Fault-Removal, Fault-Forecasting
  • Security-Konzepte in Betriebssytemen
    • Subjekt-Objekt-Modell
    • Schutzmatrix
    • Covert Channels
  • Access Control Lists (ACL) (Zugriffsrechte -- Prioritätenregelung -- formale Spezifikation in Z -- unvergleichbare Einträge)
  • orange book, ITSEC, abstrakte generische Spezifikation von ITSEC-Anforderungen in Z
  • Fehlertolerante Systeme
    • Rückfallstrategien für Teilausfälle
    • Redundanz
      • im HW-Bereich
      • im SW-Bereich
      • im Zeitbereich
      • im Datenbereich
      • Master-Standby
      • Active Replication
    • Mehrheitsentscheidung in aktiv redundanten Systemen
      • Byzantine Generals Problem -- Byzantine Agreement Protocol
Literatur: [1], Kapitel 9, speziell 9.6, 9.7.5
[4], Kapitel 4.5 (S. 212ff)




agbs@informatik.uni-bremen.de, letzte Änderungen am 8.2.2002