Betriebssystemtechnik - Cheatsheet
Systemaufrufe und Betriebssystemschnittstellen
Definition:
Systemaufrufe (Syscalls) sind von Anwendungen genutzte Schnittstellen, um Betriebssystemdienste anzufordern.
Details:
- Systemaufrufe: Brücke zwischen Benutzer- und Kernel-Modus, ermöglichen den Zugriff auf Betriebssystemdienste.
- Wichtige Syscalls:
- fork(): Prozess duplizieren
- exec(): Neues Programm ausführen
- wait(): Auf Kindprozess warten
- read(), write(): Datei- und IO-Operationen
- Nutzung: Durch die int 0x80 (x86) oder syscall (x86_64) Anweisung.
- Error Codes: Rückgabewerte < 0 indizieren Fehler, Zugriff mit errno.
- Betriebssystemschnittstellen: API für Anwendungen zur Interaktion mit dem Kernel, abstrahiert Hardwaredetails.
Prozessplanung und Scheduling-Algorithmen
Definition:
Prozessplanung bestimmt, welcher Prozess zu einer Zeit ausgeführt wird. Scheduling-Algorithmen sind Methoden zur Auswahl der nächsten zu laufenden Prozesse.
Details:
- Ziele: Effizienz, Fairness, Reaktionszeit, Durchsatz
- FCFS (First-Come-First-Served)
- SJF (Shortest Job First)
- Round Robin
- Prioritätsbasiertes Scheduling
- Mischung aus präemptiven und nicht-präemptiven Strategien
- Wartezeit: \(WT_i = T_i - B_i\)
- Durchschnittliche Wartezeit: \(\frac{\text{Summe aller Wartezeiten}}{\text{Anzahl an Prozessen}}\)
- Durchlaufzeit: \(TAT_i = C_i - A_i\)
- Durchschnittliche Durchlaufzeit: \(\frac{\text{Summe aller Durchlaufzeiten}}{\text{Anzahl an Prozessen}}\)
Prozess- und Thread-Synchronisation
Definition:
Koordination zwischen mehreren Prozessen oder Threads, um konsistente und konfliktfreie Zugriffe auf gemeinsame Ressourcen zu gewährleisten.
Details:
- Vermeidung von Race Conditions durch Synchronisation primitives wie Mutex, Semaphore, Monitore
- Mutex: Sperrmechanismus für exklusiven Zugriff
- Semaphore: Signalisierungsmechanismus, zählt erlaubte Zugriffe
- Monitore: Kombination aus Mutex und Bedingungsvariablen, höhere Abstraktion
- Wichtige Konzepte: wechselseitiger Ausschluss, Deadlock, Verklemmung, Verhungern
- Deadlock: Zyklische Wartebedingungen
- Verhungern: Ein Prozess/Thread wartet ewig auf Ressourcenzugriff
Physischer und virtueller Speicher
Definition:
Physischer Speicher (RAM) und virtueller Speicher (Vergrößerung des Arbeitsspeichers durch Festplattenspeicher).
Details:
- Physischer Speicher: Konkreter Hardware-Speicher
- Virtueller Speicher: Simuliert mehr Speicher durch Paging und Swapping
- Paging: Aufteilung in Seiten (\textit{pages})
- Swapping: Auslagern von Seiten auf die Festplatte
- Adressraum: Virtueller vs. Physischer Adressraum
- Seitentabelle: Übersetzung von virtuellen zu physischen Adressen
- \textit{TLB (Translation Lookaside Buffer)}: Cache für Seitentabelleneinträge
- Seitenfehler (\textit{Page Fault}): Anforderung einer nicht im RAM befindlichen Seite
Paging und Segmentierung
Definition:
Paging und Segmentierung sind Speicherverwaltungsstrategien.
Details:
- Unterteilt Speicher in feste Blockgrößen (Pages).
- Virtuelle Adresse: Seitennummer + Offset.
- Seitenverwaltungstabelle (Page Table): Zuordnung von Seiten zu physischem Speicher.
- Unterteilt Speicher in logische Segmente variabler Größe.
- Virtuelle Adresse: Segmentnummer + Offset.
- Segmenttabelle: Enthält Basisadresse und Länge jedes Segments.
Dateisystem-Layouts und -strukturen
Definition:
Organisation und Anordnung von Daten auf Speichermedien; Strukturierung für effiziente Datenverwaltung und -zugriff.
Details:
- Block-basierte und loggestützte Dateisysteme
- Inode-basierte Strukturen
- Freispeicherverwaltung
- Directory-Layouts
- Dateiattribute und Metadaten
- Journaling für Konsistenz
Ein-/Ausgabe-Steuerungsarchitektur
Definition:
Struktur zur Verwaltung von Ein- und Ausgabegeräten in einem Betriebssystem.
Details:
- Ziel: Effiziente Kommunikation zwischen Prozessor und Peripheriegeräten
- Nutzt Controller zur Vermittlung
- Unterstützt Interrupt-gesteuerte, programmiert-gesteuerte und DMA-gesteuerte Datenübertragung
- Treiber für spezifische Geräte notwendig
- Beispiele: Tastatur, Maus, Drucker, Festplatten
Direkte Speicherzugriffe (DMA)
Definition:
DMA ermöglicht Geräte den direkten Zugriff auf den Hauptspeicher ohne CPU-Beteiligung.
Details:
- Effizientere Datenübertragung zwischen Geräten und Speicher.
- CPU wird entlastet.
- Verwendet DMA-Controller.
- Typische Nutzung: Daten von Festplatten, Netzwerkadaptern, etc.
- DMA-Transfermodi: Burst-Modus, Zyklischer Modus.