Betriebssysteme und Betriebssystemtechnik - Cheatsheet
Systemaufrufe und Benutzer-Kernel-Interaktion
Definition:
Systemaufrufe ermöglichen die Kommunikation zwischen Benutzerprogrammen und dem Betriebssystemkern.
Details:
- Systemaufrufe (Syscalls) sind Schnittstellen, um Dienste des Betriebssystems in Anspruch zu nehmen und erfordern Wechsel in den Kernel-Modus.
- Beispiele:
read()
, write()
, fork()
, exec()
- Ablauf: Benutzerprozess → Syscall-Handler → Kernel → Rückgabe an Benutzerprozess
- Wichtige Register:
eax
für Syscall-Nummer, ebx
bis edi
für Argumente - Übergang von Benutzermodus zu Kernelmodus mittels
int
- oder sysenter
-Befehl
Scheduling-Algorithmen (z.B. FCFS, SJF, RR)
Definition:
Scheduling-Algorithmen in Betriebssystemen bestimmen die Reihenfolge, in der Prozesse zur Ausführung kommen.
Details:
- FCFS (First-Come, First-Served): Prozesse werden in der Reihenfolge ihres Eintreffens abgearbeitet.
- SJF (Shortest Job First): Der Prozess mit der kürzesten Ausführungszeit wird zuerst ausgeführt. Nicht-präemptiv.
- RR (Round Robin): Jeder Prozess erhält für eine festgelegte Zeitspanne (Time Quantum) die CPU. Präemptiv, zirkuläres Verfahren.
- Punktuelle Bewertung: Wartezeit, Durchlaufzeit, Fairness und CPU-Auslastung
Speicherallokationsmethoden (z.B. Paging, Segmentation)
Definition:
Methoden zur Verwaltung und Zuteilung von Speicher im Betriebssystem, um Prozesse effizient auszuführen.
Details:
- Paging: Unterteilung des Speichers in gleich große Blöcke (Seiten); virtuelle Adressen in Seitenrahmen umgewandelt
- Segmentation: Speicher in logische Segmente unterschiedlicher Größe unterteilt, die verschiedenen logischen Einheiten entsprechen
- Virtuelle Adressierung: Trennung von logischen (virtuellen) und physischen Adressen
- Seitenersetzung: Strategien wie FIFO, LRU zur Verwaltung von Seitenfehlern
- Vorteile: Effiziente Speicherverwaltung, geringere Fragmentierung
- Nachteile: Overhead durch Verwaltungstabellen, mögliche Leistungseinbußen
Virtueller Speicher und seine Implementierung
Definition:
Ermöglicht Programmen, mehr Speicher zu nutzen, als physisch verfügbar; erreicht durch Abstraktionsebene zwischen physischem Speicher und Anwendungsprozessen.
Details:
- Trennung von logischen und physischen Adressen.
- Seitentabellen zur Adressübersetzung.
- Paging: Speicher in feste Größe (Seiten) unterteilt.
- Swapping: Austausch von Speicherinhalten zwischen RAM und Festplatte.
- Segmentation: logische Unterteilung des Speichers in Segmente.
- TLB (Translation Lookaside Buffer) zur Beschleunigung der Adressübersetzung.
- Virtuelle Adressen: von CPU generiert.
- Physische Adressen: auf Hardware (RAM) bezogen.
- Demand Paging: Seiten werden bei Bedarf geladen.
- Page Replacement Algorithmen: FIFO, LRU, etc.
Deadlocks: Ursachen, Vermeidung und Auflösung
Definition:
Deadlock: Zustand, in dem zwei oder mehr Prozesse aufeinander warten und somit keiner der Prozesse fortfahren kann.
Details:
- Ursachen: wechselseitiger Ausschluss, Hold and Wait, Kein Entzug, Zyklisches Warten
- Klassische Bedingungen für Deadlocks (Coffman):
- Mutual Exclusion (\textit{wechselseitiger Ausschluss})
- Hold and Wait (\textit{Schwebezustand})
- No Preemption (\textit{Kein Entzug})
- Circular Wait (\textit{zyklisches Warten})
- Vermeidung: Banker's Algorithmus, Sicherer Zustand, Ressourcenhierarchien
- Auflösung: Deadlock-Erkennung mit Wait-For-Graph, Deadlock-Abbruch (Prozessabbruch, Ressourcenfreigabe)
Gerätetreiber und ihre Implementierung
Definition:
Gerätetreiber sind spezielle Software-Komponenten, die die Kommunikation zwischen dem Betriebssystem und den Hardware-Geräten ermöglichen. Ihre Implementierung erfordert Kenntnisse über die spezifische Hardware sowie das Betriebssystem.
Details:
- Aufgabe: Vermittlung zwischen Hardware und Betriebssystem.
- Typen: Kernel-Modus Treiber (arbeitet im Kernel) und Benutzer-Modus Treiber (arbeitet im Benutzerraum).
- Aufbau: Initialisierung, Hauptfunktionalität, Bereinigung.
- Standard-Schnittstellen: z.B. POSIX ioctl, read, write.
- Synchronisation: Wichtig für Thread-Sicherheit, benutzt Mechanismen wie Mutexes und Semaphoren.
- Fehlerbehandlung: Kritisch für Systemstabilität, setzt oft Logging und spezifische Rückgabewerte ein.
Sicherheit und Zugriffsrechte in Dateisystemen
Definition:
Schutz sensibler Daten durch kontrollierten Zugriff auf Dateisystem-Objekte.
Details:
- Benutzer- und Gruppenberechtigungen: Zugriff für User (\texttt{u}), Gruppen (\texttt{g}), und Andere (\texttt{o}) definieren.
- Rechte: Lesen (\texttt{r}), Schreiben (\texttt{w}), und Ausführen (\texttt{x}).
- chmod: Befehl zur Änderung der Zugriffsrechte.
- chown: Befehl zur Änderung des Besitzers.
- ACLs: Fein-granulare Zugriffssteuerungen zusätzlich zu traditionellen Berechtigungen (posix1e ACLs, NFSv4 ACLs).
- SElinux/AppArmor: Erweiterte Sicherheit durch Richtlinien, die benutzerdefiniertes Verhalten und Programme einschränken.
Multithreading und parallele Ausführung
Definition:
Verwendung von mehreren Threads innerhalb eines Prozesses zur gleichzeitigen Ausführung von Aufgaben.
Details:
- Threads teilen sich den gleichen Adressraum
- Parallelität: Gleichzeitige Ausführung auf multiplen CPU-Kernen
- \texttt{pthread\textunderscore create()} und \texttt{pthread\textunderscore join()} für Thread-Erstellung und Synchronisation in C
- Race Conditions: Datenkonflikte bei unsynchronisiertem Zugriff
- \texttt{mutexes} und \texttt{semaphores} zur Synchronisation