Lehre > Betriebssysteme und Rechnerarchitektur (Wintersemester 2017/18) > Lehrziele/Inhalte

Betriebssysteme und Rechnerarchitektur

Wintersemester 2017/18
Verantwortlich:
Prof. Dr. Robert Kaiser
Prof. Dr. Martin Gergeleit

Aktuelles Lernziele/Inhalte Materialien Organisatorisches

Lernziele

Die Kenntnis zentraler Betriebssystemkonzepte und das Wissen um die darunterliegenden HW-Strukturen ist für ein solides Gesamtverständnis moderner IT-Systeme unerlässlich und eine wesentliche Voraussetzung für viele Berufsfelder eines Informatikers, insb. in der systemnahen Programmierung, der Systemadministration und der Computersicherheit.
  • Die Studierenden kennen die grundlegenden Konzepte moderner Rechnersysteme und deren Betriebssysteme.
  • Sie können Probleme auf hardwarenahen Abstraktionsebenen analysieren und lösen und
  • Strategien zur Performanceverbesserung und zur verbesserten Systemsicherheit anwenden.
  • Sie beherrschen wesentliche Teile der UNIX-Programmierschnittstelle im praktischen Umgang.
Die erworbenen Fähigkeiten tragen damit in besonderem Maße zur Ausprägung von System-spezifischen Analyse- und Designkompetenzen und darüber hinaus zum Erwerb von Hardware-spezifischen technologischen Kompetenzen sowie zu den Realisierungskompetenzen systemnaher Software bei.

Inhalte

  • Einführung (Historische Entwicklung der Betriebssysteme und Rechnerarchitekturen, Schichtenmodell der Rechnerorganisation)
Betriebssysteme:
  • Betriebssystemkonzepte (Architekturen, Einsatzbereiche)
  • Prozessverwaltung (Prozesskonzept, Threads, Scheduling)
  • Prozesssynchronisation (Concurrency, Race Conditions, Wechselseitiger Ausschluss, Synchronisationsmechanismen)
  • Prozesskommunikation (nachrichten- und speicherorientierte Kommunikationsmechanismen, Performance- Betrachtungen)
  • Deadlocks (Grundlagen, Verfahren zur Problembehandlung)
  • Speicherverwaltung (Swapping, Segmentierung, Paging, Seitenersetzungsalgorithmen)
  • Ein-/Ausgabe (I/O-Software, Treiber, insb. Plattentreiber, Uhrtreiber)
  • Dateisysteme (Dateien, Verzeichnisse, Dateisystemtypen, Fehlertoleranz, Datensicherung, Performance- Betrachtungen)
  • Sicherheit (Schutzmechanismen, Authentifikation, Autorisierung, vertrauenswürdige Systeme, Klassifizierungen)
Rechnerarchitektur:
  • Maschinencode-Ebene (Instruktionen, Adressierung, Sprünge, Unterprogramme, Stacks, Parameterübergabe, Systemaufrufe, Interrupts)
  • Assemblersprache mit Beispielen
  • Prozessorarchitektur mit Optimierungen (Vergleich RISC/CISC, Pipelining, Branch-Prediction, Out-of-Order- Execution, Leistungsbewertung)
  • Speicherarchitektur (virtueller Speicher, MMU-Organisation und TBL, Page-Tables, Caches, Speicherhierarchien)
  • Multiprozessoren (Kommunikationsmodelle, Verbindungsnetzwerke, Cache-Kohärenz)
  • I/O-Interfacing (Geräte-Klassen, I/O-Ports, I/O-Busse, Arbitrierung, DMA)
  • Sicherheit (Speicherschutz, Exploit-Techniken, Schutzmechanismen)