Kurs: Betriebssysteme

Prozesse, Speicher, Threads und Dateisysteme

Kostenloser Online-Kurs · Mittel · 9 Einheiten

Du lernst, wie ein Betriebssystem CPU und Arbeitsspeicher virtualisiert, Nebenläufigkeit ermöglicht, Daten dauerhaft speichert und Programme schützt und voneinander isoliert. Danach kannst du Prozesse, Threads, Speicher und Datenträger in jedem System verstehen, das du entwickelst oder betreibst.

Von Studeli

Mit Einheit 1 starten

Ist dieser Betriebssysteme-Kurs etwas für dich?

Für wen

Du kannst in C programmieren (oder bist bereit, C-Beispiele zu lesen) und willst Prozesse, Speicher, Nebenläufigkeit und Dateisysteme aus Sicht des Betriebssystems verstehen.

Was du in 9 Einheiten lernst

Jede Einheit enthält alle neun Lernwerkzeuge

  • Lernleitfaden
  • Zusammenfassung
  • Interaktive Lektionen
  • Übungsfragen
  • Karteikarten
  • Erklär Es
  • Schlüsselbegriffe
  • Lernzettel
  • Konzeptkarte
  1. Erkläre, wie ein Betriebssystem die CPU mit Prozessen, Systemaufrufen und Kontextwechseln virtualisiert, und erzeuge Prozesse mit fork, exec und wait.

    5 Lernziele
    1. 1.Erkläre, was ein Betriebssystem macht
    2. 2.Beschreibe Prozesse und ihre Zustände
    3. 3.Erzeuge und steuere Prozesse mit fork, exec und wait
    4. 4.Erkläre Benutzermodus, Kernelmodus und Systemaufrufe
    5. 5.Erkläre, wie das Betriebssystem die CPU durch eingeschränkte direkte Ausführung aufteilt
  2. Vergleiche Scheduling-Strategien wie FIFO, Shortest Job First, das Round-Robin-Verfahren und mehrstufige Rückkopplungswarteschlangen anhand von Durchlaufzeit und Antwortzeit.

    6 Lernziele
    1. 1.Beschreibe die Aufgaben eines CPU-Schedulers und die Kennzahlen zu seiner Bewertung
    2. 2.Vergleiche FIFO, Shortest Job First, das Round-Robin-Verfahren und Prioritätsscheduling
    3. 3.Plane Aufträge mit einer mehrstufigen Rückkopplungswarteschlange ein, ohne ihre Laufzeiten zu kennen
    4. 4.Teile die CPU mit Tickets, Schrittweiten und virtueller Laufzeit proportional auf
    5. 5.Plane die Ausführung auf mehreren CPUs
    6. 6.Erkläre und nutze die Scheduler realer Betriebssysteme
  3. Erkläre, wie das Betriebssystem jedem Prozess mit Basis- und Grenzregister, Segmentierung und der Verwaltung freien Speichers einen eigenen Adressraum bereitstellt.

    5 Lernziele
    1. 1.Erkläre, wie das Betriebssystem jedem Prozess einen eigenen Speicher bereitstellt
    2. 2.Nutze die Speicherverwaltungsschnittstelle und erkläre ihre Unterstützung durch das Betriebssystem
    3. 3.Übersetze Adressen mit Basis- und Grenzregister
    4. 4.Übersetze Adressen durch Segmentierung
    5. 5.Verwalte freien Speicher und berücksichtige Fragmentierung
  4. Übersetze Adressen mit Seitentabellen und TLBs, vergleiche mehrstufige Seitentabellen und bewerte Seitenersetzungsstrategien, wenn der Speicher voll ist.

    5 Lernziele
    1. 1.Übersetze virtuelle Adressen mit Seitenverwaltung
    2. 2.Beschleunige die Adressübersetzung mit dem TLB
    3. 3.Verkleinere Seitentabellen
    4. 4.Nutze durch Auslagerung mehr Speicher als den verfügbaren physischen Speicher
    5. 5.Wähle Seitenersetzungsstrategien und verhindere Seitenflattern
  5. Erzeuge Threads, finde Wettlaufsituationen und kritische Abschnitte und schütze gemeinsam genutzte Daten mit Sperren.

    5 Lernziele
    1. 1.Erkläre, was Threads sind, und erzeuge sie mit POSIX-Threads
    2. 2.Finde Wettlaufsituationen und kritische Abschnitte in nebenläufigem Code
    3. 3.Schütze gemeinsam genutzte Daten mit Sperren und Mutexen
    4. 4.Erkläre, wie Sperren mithilfe von Hardwareunterstützung implementiert werden
    5. 5.Entwirf sperrbasierte nebenläufige Datenstrukturen
  6. Koordiniere Threads mit Bedingungsvariablen und Semaphoren, löse das Erzeuger-Verbraucher- und das Leser-Schreiber-Problem und beuge Verklemmungen und anderen Nebenläufigkeitsfehlern vor.

    5 Lernziele
    1. 1.Koordiniere Threads mit Bedingungsvariablen
    2. 2.Nutze Semaphore, um Threads zu sperren, ihre Reihenfolge festzulegen und ihre Anzahl zu begrenzen
    3. 3.Erkenne und behebe Nebenläufigkeitsfehler, die keine Verklemmungen sind
    4. 4.Beuge Verklemmungen vor, vermeide und erkenne sie
    5. 5.Entwickle nebenläufige Programme mit Ereignissen statt mit Threads
  7. Erkläre, wie das Betriebssystem über Interrupts, DMA und Treiber mit Geräten kommuniziert, und vergleiche Festplatten, SSDs und RAID-Level hinsichtlich Leistung und Zuverlässigkeit.

    5 Lernziele
    1. 1.Erkläre, wie das Betriebssystem mit Geräten kommuniziert
    2. 2.Modelliere die Leistung von Festplatten und plane Festplattenanfragen
    3. 3.Erkläre die Funktionsweise flashbasierter SSDs und vergleiche sie mit Festplatten
    4. 4.Nutze RAID, um Kapazität, Leistung und Zuverlässigkeit aufeinander abzustimmen
    5. 5.Erkenne und behebe Speicherfehler mithilfe von Prüfsummen
  8. Nutze die Datei- und Verzeichnisschnittstelle, erkläre, wie Dateisysteme Daten mit Inodes und Belegungsstrukturen speichern, und vergleiche Journaling und logstrukturierte Ansätze für Konsistenz bei Abstürzen.

    6 Lernziele
    1. 1.Nutze die Datei- und Verzeichnisschnittstelle
    2. 2.Erkläre, wie ein einfaches Dateisystem Daten speichert und findet
    3. 3.Erkläre, wie das Fast File System Lokalität zur Beschleunigung nutzt
    4. 4.Sichere die Konsistenz eines Dateisystems bei Abstürzen
    5. 5.Erkläre, wie ein logstrukturiertes Dateisystem schreibt und Speicherplatz zurückgewinnt
    6. 6.Vergleiche, wie verteilte Dateisysteme Dateien über ein Netzwerk bereitstellen
  9. Erkläre, wie Betriebssysteme Benutzer authentifizieren, den Zugriff auf Ressourcen kontrollieren und Anwendungen mit virtuellen Maschinen und Containern isolieren.

    5 Lernziele
    1. 1.Erkläre, wie Hardware und Kernel das System schützen
    2. 2.Authentifiziere Benutzer und weise Prozessen eine Identität zu
    3. 3.Kontrolliere den Zugriff auf Dateien und andere Ressourcen
    4. 4.Führe Betriebssysteme in virtuellen Maschinen aus
    5. 5.Isoliere Anwendungen mit Containern
Informatik – Computer, Algorithmen, Internet und KI verstehen (Anfänger)

Du möchtest dir einen breiten, verständlichen ersten Überblick über die Informatik verschaffen – wie Computer, Daten, Algorithmen, das Internet und KI funktionieren –, bevor oder während du programmieren lernst.

Erstelle deine eigenen Lernmaterialien

Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.

Jetzt starten