Speicherkonzepte

Es existieren unterschiedliche Speicherkonzepte zum Ansteuern des Speichers.

 

Überblick

Folgende Speicherkonzepte sind von Bedeutung:

Direkte Speicherverwaltung

Swapping

Segmentorientierter Speicher

Seitenorientierter Speicher

Virtueller Speicher

= Arbeitsspeicher

> Arbeitsspeicher

> Arbeitsspeicher

> Arbeitsspeicher

Kleinste Einheit für Aus-/Einlagern

Gesamtes Programm/Prozess + Daten

Segment

Seite (Page)

Größe

Fix

Variabel, abhängig von Prozess und Daten

Variabel große Segmente

Gleich große Seiten (Pages)

 

Direkte Speicherverwaltung

Bei der direkten Speicherverwaltung wird ausschließlich der vorhandene physikalische Hauptspeicher (RAM) zur Adressierung verwendet. Die direkte Speicherverwaltung wird nur bei einfach eingebetteten Systemen eingesetzt, da sie nur auf den Einprogrammbetrieb ausgerichtet ist und sich mehrere Prozesse untereinander durch die Speicherverwaltung behindern würden.

 

Swapping

Beim Swapping werden RAM-Speicherbereiche in einen sekundären Speicher ausgelagert. Typischerweise werden die Daten in einer Auslagerungsdatei auf der Festplatte des Computers gespeichert. Wird ein Prozess ausgelagert, da er derzeit nicht aktiv ist oder ein „wichtigerer“ Prozess den Speicherbereich benötigt, werden alle Daten und der Programmcode vollständig in die Auslagerungsdatei verschoben. Aus diesem Grund lässt sich ein Prozess auch nur ausführen, wenn er nicht ausgelagert ist.

Im Gegensatz zum Swapping ist der virtuelle Speicher in der Lage Prozesse zum Teil auf dem RAM (Hauptspeicher) und zum anderen Teil auf dem externen Speicher abzulegen.

 

Virtueller Speicher

Ein virtueller Speicher vereint Hauptspeicher und externe Speicher so, dass er wie ein einziger Speicher auf das System wirkt. Das führt zu mehr Speicheradressen, als der reelle Hauptspeicher wirklich besitzt. Dieser virtuelle Adressraum wird von der Speicherverwaltung des Betriebssystems verwaltet. Bei der Nutzung werden Teile der RAM-Inhalte, die derzeit nicht benötigt werden, temporär auf den externen Speicher ausgelagert.

Beim virtuellen Speicher unterscheidet man zwischen zwei Organisationsformen: Segmentorientierter Speicher, Seitenorientierter Speicher.

 

Segmentorientierte Speicherverwaltung

Bei der segmentorientierten Speicherverwaltung ist der virtuelle Speicher in Segmente eingeteilt, die verschieden groß sein können und unabhängige Adressräume besitzen. Die Größe eines Segments kann sich während der Ausführung ändern, was zum Vorteil hat, dass der vorhandene Speicherraum durch die Segmentierung optimal genutzt werden kann. Andererseits werden aufwendige Algorithmen benötigt, um eine hohe Fragmentierung zu verhindern.

 

Segmenttabelle:

Segment-Nr. Länge (Größe) ValidBit reelle Anfangsadresse (VCN)
0 1428 1 1000
1 1000 0 10000
2 253 1 500

Segmentorientierte Speicherverwaltung

Offset: Der Offset (Zeilenadresse) stellt die Positionsnummer eines Speicherworts innerhalb des Segments (Segmentadresse) dar.

Valid-Bit: Das Valid-Bit gibt an, ob das Segment im Hauptspeicher liegt.

 

Seitenorientierte Speicherverwaltung

Bei der seitenorientierten Speicherverwaltung ist der virtuelle Speicher in gleich große Stücke, die sogenannten Seiten, unterteilt. Dies hat den Vorteil, dass keine Speicherbereiche im Hauptspeicher ungenutzt bleiben. Andererseits ist die Größe einer Seite nicht an den Prozess angepasst. Werden die Daten einer Seite nicht benötigt, wird sie ausgelagert und eine andere Seite kann geladen werden.

  • Größe des virtuellen Speichers wird durch die Anzahl der Adressbits bestimmt
  • Anzahl Seiten

Aufgabe

Eine Speicherverwaltung verwendet Seiten mit einer Größe von 4 KByte. Der virtuelle 16-Bit-Adressraum wird auf einem Achtel so großen Arbeitsspeicher (RAM) abgebildet.

  1. Bestimme die Seitenzahl des virtuellen Speichers.
  2. Bestimme auf wie viele virtuelle Seiten „gleichzeitig“ zugegriffen werden kann.

Lösung

16 Adressbits → 216 = 65536 Bytes = 64 KiB virtueller Speicher

Anzahl Seiten im virtuellen Speicher:= 16 Seiten

64 KiB virtueller Speicher * 1/8 so großen Arbeitsspeicher = 8 KiB großer Arbeitsspeicher

= 2 Seiten im Arbeitsspeicher

Ram/Virtueller Speicher - Seitenorientierte Speicherverwaltung

 

Merken

Merken

Merken