Betriebssystemtechnik - Cheatsheet
Prozesszustände und Zustandsübergänge
Definition:
Prozesszustände sind die verschiedenen Phasen, die ein Prozess während seiner Ausführung durchläuft. Zustandsübergänge sind die Wechsel zwischen diesen Phasen aufgrund von Ereignissen oder Aktionen.
Details:
- Wesentliche Prozesszustände:
- Bereit (ready): Prozess ist ausführbar, wartet auf Zuteilung der CPU.
- Aktiv (running): Prozess wird gerade von der CPU ausgeführt.
- Blockiert (blocked): Prozess wartet auf ein Ereignis (z.B. Ein-/Ausgabeoperation).
- Beendet (terminated): Prozess ist abgeschlossen und wird aus dem Speicher entfernt.
- Übergänge zwischen Zuständen:
- Bereit zu Aktiv: Scheduler weist dem Prozess die CPU zu.
- Aktiv zu Bereit: Prozess wird präemptiert (z.B. durch einen Zeitscheibenwechsel).
- Aktiv zu Blockiert: Prozess startet eine blockierende IO-Operation.
- Blockiert zu Bereit: Das erwartete Ereignis tritt ein.
- Aktiv zu Beendet: Prozess beendet seine Ausführung.
Interprozesskommunikation (IPC) und Synchronisierung
Definition:
Austausch von Daten und Steuerinformationen zwischen Prozessen sowie Methoden zur geordneten oder kontrollierten Ausführung von Prozessen.
Details:
- Mechanismen für IPC: Pipes, Shared Memory, Message Passing, Sockets
- Wichtig für Vermeidung von Race Conditions und Deadlocks
- Synchronisationstechniken: Mutex, Semaphore, Monitore
- Bedeutung in der Betriebssystemtechnik für Multi-Prozess-Systeme
- Wichtige Konzepte: Kritische Abschnitte, wechselseitiger Ausschluss und Warteschlangen
Speicherallokationsstrategien (z.B. Paging, Segmentation)
Definition:
Methoden zur Zuweisung von Speicherressourcen an Prozesse im Betriebssystem.
Details:
- Paging: Teilt Speicher in gleich große Blöcke (Seiten) auf; vermeidet externe Fragmentierung; jede Seite hat eine feste Größe.
- Segmentation: Teilt Speicher in logische Segmente auf; Segmente unterschiedlich groß; unterstützt Sicht auf logische Einheiten wie Code, Daten, Stack.
- Paging verwendet eine Seitentabelle (Page Table) zur Verwaltung der Zuordnung von logischen zu physischen Adressen.
- Segmentation nutzt ein Segmenttabelle (Segment Table) zur Verwaltung der Segmentierung und Übersetzung der logischen Adressen.
Cache Management und Swapping
Definition:
Verwaltung von Zwischenspeichern und Austausch von Daten zwischen RAM und Sekundärspeicher zur Effizienzsteigerung.
Details:
- Cache-Hierarchie: L1, L2, L3
- Cache-Konsistenz: Coherence Protocols, Write-through vs. Write-back
- Swapping: Daten bei Speichermangel auf Sekundärspeicher auslagern
- Swapping-Strategien: LRU (Least Recently Used), FIFO (First-In-First-Out)
- Swapping-Kosten: hohe I/O-Latenz
- Virtueller Speicher: Nutzung von Swap-Space
- Einfluss auf Systemleistung: Cache-Hits verbessern, Swapping vermeiden
Speicherkontingent und Zugriffsrechte
Definition:
Es geht um die Zuordnung und Begrenzung von Speicherressourcen sowie die Verwaltung der Zugriffsrechte für Prozesse im Betriebssystem.
Details:
- Speicherkontingent: Zuordnung eines bestimmten Speicherbereichs an einen Prozess.
- Verhindert, dass ein Prozess mehr Speicher belegt als erlaubt.
- Zugriffsrechte: Legt fest, welche Prozesse auf welche Speicherbereiche zugreifen dürfen.
- Verhindert unerlaubten Zugriff und schützt die Speicherintegrität.
- Typische Rechte: Lesen, Schreiben, Ausführen.
Socket-Programmierung
Definition:
Socket-Programmierung ermöglicht die Kommunikation zwischen zwei Computern über ein Netzwerk.
Details:
- Erzeugung eines Sockets in C:
int socket(int domain, int type, int protocol)
- Wesentliche Funktionen:
bind()
, listen()
, accept()
, connect()
, send()
, recv()
- IPv4/IPv6 Support:
AF_INET
für IPv4, AF_INET6
für IPv6 - Socket Typen:
SOCK_STREAM
(TCP), SOCK_DGRAM
(UDP) - Wichtige Header-Dateien:
<sys/socket.h>
, <netinet/in.h>
, <arpa/inet.h>
- Network Byte Order: Funktionen wie
htonl()
, htons()
, ntohl()
, ntohs()
- Socket Schließung:
close()
oder shutdown()
Zugriffskontrollmodelle und Authentifizierung
Definition:
Mechanismen zur Regelung, welche Nutzer oder Prozesse auf welche Ressourcen eines Systems zugreifen dürfen, sowie die Verifikation ihrer Identität.
Details:
- DAC (Discretionary Access Control): Zugriffsrechte werden vom Ressourcen-Eigentümer festgelegt.
- MAC (Mandatory Access Control): Zugriffsrechte werden durch eine zentrale Autorität basierend auf festen Regeln vergeben.
- RBAC (Role-Based Access Control): Zugriffsrechte basieren auf den Rollen der Nutzer im System.
- Authentifizierung: Überprüfung der Identität eines Nutzers durch Wissen (Passwort), Besitz (Token), oder Biometrie (Fingerabdruck).
- 2FA (Two-Factor Authentication): Kombination aus zwei verschiedenen Authentifizierungsfaktoren.
- ACL (Access Control List): Liste der Zugriffsrechte für bestimmte Ressourcen.
- Prinzip der geringsten Rechte: Nutzer bekommen nur die minimal notwendigen Rechte.
Malware-Erkennung und Prävention
Definition:
Erkennung und Abwehr schädlicher Software (Malware) im Betriebssystem; Methoden und Tools zur Identifizierung und Vermeidung von Infektionen.
Details:
- Signaturbasierte Erkennung: Vergleich von Dateien mit bekannten Malware-Signaturen
- Heuristische Analyse: Untersuchung des Verhaltens von Programmen
- Verhaltensbasierte Erkennung: Überwachung und Analyse des Systemverhaltens in Echtzeit
- Sandboxes: Isolierte Ausführungsumgebungen zur Analyse verdächtiger Dateien
- Regelmäßig Updates: Sicherheitsupdates und Patch-Management
- Benutzeraufklärung: Sensibilisierung für Phishing, Social Engineering und sichere Praktiken
- Firewall und Netzwerküberwachung: Kontrolle und Überwachung des Datenverkehrs
- Intrusion Detection Systems (IDS): Erkennung von Einbruchsversuchen im Netzwerk