Monolithische Architekturen
Definition:
Architekturstil bei dem ein System als eine einzige, untrennbare Einheit implementiert wird.
Details:
- Alle Komponenten (UI, Geschäftslogik, Datenzugriff) in einem einzigen Codebase.
- Häufig schwer skalierbar und wartbar.
- Gegensatz zu Microservices.
- Hohe Abhängigkeiten zwischen Modulen.
Prozesslebenszyklus
Definition:
Lebenszyklus eines Prozesses von seiner Erzeugung bis zur Terminierung.
Details:
- Zustände: erstellt, bereit, laufend, wartend, abgeschlossen
- Prozesswechsel durch Kontextwechsel
- Erstellung: \texttt{fork()}, \texttt{exec()}
- Terminierung: \texttt{exit()}, \texttt{abort()}
- Wechsel zu bereit: Ressourcen verfügbar
- Wechsel zu laufend: CPU zugeteilt
- Wechsel zu wartend: Ressourcen warten
Paging und Segmentierung
Definition:
Techniken zur Speicherverwaltung in Betriebssystemen zur effizienten Nutzung des Hauptspeichers.
Details:
- Paging: Zerlegung des Speicherraums in feste Seiten (Pages) und Zuweisung von Seitenrahmen (Page Frames) im physischen Speicher
- Segmentation: Zerlegung des logischen Adressraums in variable Segmente mit logischen Einheiten (z.B. Code, Daten, Stack)
- Virtuelle Adressen umgerechnet in physische Adressen mittels Seitentabelle (Page Table) und Segmenttabelle (Segment Table)
- Formeln:
- Virtuelle Adresse in Paging: Virtuelle Adresse = Page-Nummer + Offset Physische Adresse = Frame-Nummer + Offset
- Virtuelle Adresse in Segmentierung: Virtuelle Adresse = Segment-Nummer + Offset Physische Adresse = Basisadresse + Offset
- VorteilePaging: einheitliche Blockgröße, einfache Speicherverwaltung, keine externe Fragmentierung
- Vorteile Segmentierung: logische Strukturierung, flexible Speicherverwaltung, Schutzmechanismen
Journaling Dateisysteme
Definition:
Journaling-Dateisystem: Spezialisiertes Dateisystem zur Erhöhung der Konsistenz und Integrität durch Protokollierung von Änderungen in einem separaten Log (Journal).
Details:
- Schützt vor Datenverlust bei Systemausfällen.
- Änderungen in 2 Phasen: Log schreiben, dann eigentliche Daten schreiben.
- Verbessert Recovery-Prozesse (schneller Systemstart nach Absturz).
- Häufige Journalling-Dateisysteme: ext3, ext4, NTFS, ReiserFS.
- Journaling-Typen: Writeback, Ordered, Data.
- Nachteil: Zusätzlicher Overhead durch Journaling-Prozess.
Synchronisationstechniken
Definition:
Techniken zur Gewährleistung von Konsistenz und Ordnung in der Kommunikation und beim Zugriff auf gemeinsame Ressourcen in parallelen oder verteilten Systemen.
Details:
- Mutexe: Zustandsvariable zur Kontrolle des Zugriffs auf eine Ressource.
- Semaphore: Zählmechanismus zur Steuerung des Zugriffs auf mehrere Instanzen einer Ressource.
- Monitore: Höherstufige Synchronisationskonstrukte, die Mutexe und Konditionsvariablen vereinen.
- Spinlocks: Aktive Warteschleifen zur Ressourcenkontrolle.
- Bedingungsvariablen: Warten und Benachrichtigen von Threads in Monitorkonstrukten.
- Deadlock: Zustand, in dem sich zwei oder mehr Threads gegenseitig blockieren.
Benutzer- und Rechteverwaltung
Definition:
Verwaltung von Benutzerkonten und deren Berechtigungen im Betriebssystem.
Details:
- Benutzer: Identifizierte Entitäten im System.
- Rechte: Privilegien, die einem Benutzer zugewiesen werden.
- Zugriffssteuerung: Mechanismen zur Kontrolle, wer auf welche Ressourcen zugreifen darf.
- Sicherheitsrichtlinien: Festlegung der Zugriffsrechte und -beschränkungen.
- Dateisystemberechtigungen: Unix-/Linux- (chmod, chown) und Windows-Berechtigungsmodelle.
- Gruppen: Zusammenfassung von Benutzern zur gemeinsamen Rechteverwaltung.
- Authentifizierung: Prozesse zur Überprüfung der Benutzeridentität (z.B. Passwörter, biometrische Verfahren).
Kontextwechsel
Definition:
Interruption des aktuellen Threads, Speichern seines Zustandes, Laden des Zustandes eines anderen Threads.
Details:
- Prozess: Von Scheduler initiiert
- CPU-Register, Programmzähler, Stack-Zeiger müssen gespeichert und wiederhergestellt werden
- Speicherverwaltung: Kontextwechsel kann TLB und Cache ändern
- Zeitaufwand: Abhängig von Hardware und Betriebsystemoptimierung
Virtueller Speicher
Definition:
Methode zur Verwaltung des Arbeitsspeichers, indem physischer Speicher durch Zuordnung zu virtuellen Adressen effizient genutzt wird.
Details:
- Trennung von logischem und physischem Speicher
- Verwendet Seiten (Pages) und Seitenrahmen (Page Frames)
- Adressübersetzung über Seitentabellen (\texttt{Page Tables})
- Speicherverwaltungseinheit (Memory Management Unit, \texttt{MMU}) führt die Adressübersetzung durch
- Erhöht die Speicherverwaltungseffizienz und Prozessisolierung
- Belastungssteuerung (\texttt{Paging}) und Zuordnung von virtuell zu physischem Speicher