Betriebssysteme - Speicherverwaltung und Interprozesskommunikation

Jul 8, 2024

Betriebssysteme - Speicherverwaltung und Interprozesskommunikation

Ankündigungen

Studienleistungen

  • Aufgabenblöcke 1.0 bis 1.2 und 3 + A4
  • Bestehensgrenze für Aufgabenblock 1.0 bis 2 reduziert von 15 auf 10 Punkte
  • Kommunikationsprobleme zu Semesterbeginn: Aufgabe 0 wurde oft nicht abgegeben
  • Zweiter Aufgabenblock (A3 und A4): Bestehensgrenze bleibt bei 10 von 20 Punkten

Virtuelle Meetingräume

  • Meetingräume für Übungen umgezogen
  • Nutzung des Fachschaftsservers ermöglicht
  • Neue Raumadressen auf der Betriebssystem-Webseite

Klausurtermine

  • Klausurtermine bleiben unverändert
  • 31.07. und 21.09.
  • Änderung der Uhrzeit: Nebenprüfung am 21.09. jetzt um 14 Uhr

Wöchentliche Hinweise

  • Hackathons: Empfehlung, diese zu nutzen, bei Schwierigkeiten mit Aufgaben
  • Fragestunde monatlich um 15:15 Uhr

Letzte Sitzung: Interprozesskommunikation (IPC)

  • Nachrichtenbasierte Primitive
  • Unterschiede in Synchronisation und Adressierung
  • Lokale IPC unter Unix: Signale, Pipes (eindirektional und gepuffert), und Message Queues
  • Netzwerkbasierte IPC: Sockets (bidirektional und gepuffert)

Speicherverwaltung

Speicherverwaltung und Hauptaufgaben

  • Dynamische Speicherzuteilung
  • Schutz des Speichers
  • Speicherknappheit handhaben: Ein- und Auslagern von Prozessen

Speicherzuteilungsstrategien

  • Platzierungsstrategien: Wo wird neuer Speicher zugeteilt?
    • First Fit
    • Next Fit/Rotating First Fit
    • Best Fit
    • Worst Fit
  • Ladestrategien: Wann wird ausgelagerter Speicher wieder eingelagert?
  • Ersetzungsstrategien: Welche Speicherinhalte werden verdrängt?
    • Least Recently Used (LRU)
    • First In First Out (FIFO)

Frei-Speicher-Verwaltungsmethoden

  • Bitlisten
    • Vorteile und Nachteile
  • Verkettete Listen
    • Freie und belegte Speicherbereiche
    • Verwaltung im freien Speicher
  • Buddy-System
    • Segmentierung in Zweierpotenzen
    • Effiziente Verwaltung weniger kleinen Lücken

Verschnitt und Fragmentierung

  • Externer Verschnitt: Speicher außerhalb der zugeteilten Bereiche
  • Interner Verschnitt: Unbenutzter Speicher innerhalb der zugeteilten Bereiche
  • Fragmentierung durch dynamische Speicherzuteilungen
  • Kompaktieren als Lösung

Zeitliche Bindung von Adressen

Absolute und dynamische Adressierung

  • Absolute Bindung: zur Übersetzungszeit
  • Statische Bindung: zur Ladezeit
  • Dynamische Bindung: zur Laufzeit (Hardwareunterstützung)

Beispiel Bindung und Laden von Programmen

  • Übersetzung von C Code zu Assembler und Maschinencode
  • Verlinkung (Linking) und Laden (Loading) von Objektdateien

Segmentbasierte Adressabildung

  • Logische vs. physische Adressen
  • Hardwareunterstützung durch Memory Management Unit (MMU)
  • Verwaltung durch Segmenttabellen
  • Gemeinsame Speichersegmente für Prozesse

Probleme und Lösungen der Segmentierung

  • Fragmentierung und Verschnitt
  • Kompaktieren von Speicher
  • Gemeinsame Nutzung von Segmente

Ausblick

  • Weitere Diskussion von seitenbasierter Adressabbildung in der nächsten Vorlesung
  • Dringende Fragen und Terminankündigungen