Speicherverwaltung & Dateisysteme: Paging, Segmentierung & Algorithmen

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 4,4 KB

Optionen der Seitentabelle

Die Seitentabelle ist vollständig in Hardware implementiert. Der Vorteil ist, dass wir einen Hochgeschwindigkeits-Speicherzugriff erhalten. Der Nachteil ist, dass es problematisch wird, wenn die Seitentabelle sehr groß ist.

Segmentierung und Paging

Sowohl die Segmentierung als auch das Paging bieten erhebliche Vorteile. Einige Multics-Systeme und IBMs 370-Serie kombinierten beide Techniken, wobei die Segmente eine mehrseitige Größe hatten. Diese Methode der Segmentierung und Paging funktioniert wie folgt: Der Zugriff erfolgt über eine virtuelle Adresse, die Felder für Segment, Standort und Offset enthält. Das Segmentfeld wird verwendet, um auf eine Segmenttabelle zuzugreifen. Jeder Eintrag in dieser Tabelle verweist direkt auf die Seitentabelle, die diesem Segment zugeordnet ist. Die Adresse aus der Seitentabelle wird dann mit dem Offset kombiniert, um die reale physische Adresse zu bilden. Ein assoziativer Speicher (TLB) kann verwendet werden, um die Übersetzung zu beschleunigen.

MS-DOS Segmente

Wenn ein Programm versucht, einen Speicherblock einer bestimmten Größe anzufordern, weist MS-DOS diesen Block zu. Ist der angeforderte Block zu groß, unterteilt MS-DOS den zugewiesenen Block und erstellt einen neuen freien Block. Wenn eine Anwendung einen Speicherblock freigibt, aktualisiert MS-DOS seinen Status, um anzuzeigen, dass er verfügbar ist. Wenn ein Programm die Größe des benötigten Speichers reduziert, erstellt MS-DOS einen neuen Speichersteuerblock für den freigegebenen Speicher.

Segmenttypen

  • Datensegment: Hier können Daten gelesen und geschrieben, aber keine Programmcodes ausgeführt werden.
  • Codesegment: Hier können Programmcodes ausgeführt werden, aber es kann weder gelesen noch geschrieben werden.
  • Systemsegmente: Beschreiben verschiedene Arten von Segmenten und dienen alle der Verwaltung des geschützten Modus.

Virtueller Speicher

Virtueller Speicher ist eine Technik, mit der ein Betriebssystem vorgibt, mehr Arbeitsspeicher zu haben, als physisch vorhanden ist. Zur Implementierung des virtuellen Speichers wird ein sekundäres Speichermedium mit schnellem Zugriff verwendet, in der Regel die Festplatte des Geräts.

Grundlagen des virtuellen Speichers

Ein virtuelles Speichersystem wird durch eine Seitenabruf- und Speicherverwaltungsmethode implementiert. Es nutzt einen grundlegenden Mechanismus zum Auslagern von Seiten aus dem Hauptspeicher auf die Festplatte und zum Zurückladen dieser Seiten in den Speicher.

Methoden zum Laden von Programmen

Es gibt zwei Methoden für das Laden von Programmen in den Speicher:

  1. Demand Paging (Seitenabruf bei Bedarf): Ermöglicht die Ausführung von Prozessen, ohne dass alle Seiten im Voraus geladen werden müssen. Seiten werden erst bei Bedarf geladen, was zu Seitenfehlern führen kann.
  2. Pre-Paging: Das Betriebssystem versucht vorauszusehen, welche Seiten für die Ausführung des Prozesses benötigt werden, und lädt diese proaktiv.

Seitenersetzungsalgorithmen

Seitenersetzungsalgorithmen werden verwendet, um festzustellen, welche Seiten auf die Festplatte ausgelagert werden sollen, wenn neue Seiten geladen werden müssen und kein freier Speicher verfügbar ist. Es gibt drei grundlegende Algorithmen:

  1. MIN-Algorithmus (Optimaler Algorithmus): Wählt die Seite(n) aus, die am längsten nicht mehr benötigt werden. Dieser Algorithmus ist in der Praxis nicht implementierbar, da er die zukünftige Nutzung kennen müsste.
  2. FIFO-Algorithmus (First-In, First-Out): Lagert die Seite aus, die am längsten im Speicher war.
  3. LRU-Algorithmus (Least Recently Used): Lagert die Seite aus, die am längsten nicht mehr verwendet wurde. Dieser Algorithmus nutzt die vergangene Nutzung, um die zukünftige vorherzusagen, und ist einer der nützlichsten.

Dateiverwaltungssysteme

Ein Dateiverwaltungssystem ist eine Software, die Dienste für Benutzer und Anwendungen bereitstellt, wie z.B. den Zugriff auf Dateien und die Verwaltung von Dateipfaden. Es erspart es Benutzern und Programmierern, für jede Anwendung spezielle Software zur Dateiverwaltung entwickeln zu müssen, und bietet ein zentrales Mittel zur Kontrolle dieser Funktionen.

Verwandte Einträge: