72 - 3 Freispeicherorganisation [ID:27646]
50 von 250 angezeigt

Ja, die Platzierungsstrategie, die im Zentrum der Freispeicherverwaltung steht,

die schauen wir uns jetzt an. Hier gehen wir zunächst auf die Freispeicherorganisation ein,

das heißt also wie die freien Bereiche, die nicht belegt werden, also von den Prozessen,

denn die überhaupt organisiert sind, wie die technisch gesehen repräsentiert werden. Hier

werden wir auch sehen, dass die Abspeicherung der Verwaltungsstrukturen von solchen freien

Speicherbereichen eben auch ein bisschen davon abhängt, welches Adressraumkonzept man im

Rechensystem, im Betriebssystem im Wesentlichen verfolgt. Und da schlagen wir ja noch eine kleine

Brücke zu dem Stoff von der letzten Vorlesungsstunde. Und am Ende dieses Abschnitts gehe ich auf

konkrete Verfahrensweisen ein, die dann praktisch auf Basis der Verwaltungsstrukturen von freien

Speicher, denn einfach auch solche freien Bereiche bei Bedarf denn suchen und den Prozessen dann

entsprechend zuteilen. Nun, Verwaltung der freien Speicherbereiche ist im Zentrum. Diese freien

Bereiche werden als Hohlräume bezeichnet. Das ist ein Hohlräum innerhalb eines Hauptspeichers,

allgemein kann man auch sagen Arbeitsspeichers, aber im Fokus soll wirklich der Hauptspeicher

halt hier als Begriff stehen. Der reale Adressraum, der Speicher, der verwendet werden kann von den

Prozessen im Teil des realen Adressraums. Da befindet sich denn dieser Hohlraum. Der wird

in der Literatur auch als Loch bezeichnet und es kann mehrere solcher Löcher in dem realen

Adressraum nun geben. In jedem Fall ist es so, dass die Struktur der Hohlräume unterschiedlich ist.

In Abhängigkeit auch von der Adressraumverwaltungstechnik, also ob wir Seiten oder

Segmentierung zum Beispiel verwenden, so sind die Hohlräume, die Löcher von einer festen oder

variablen Größe ausgelegt. Entsprechend dieser unterschiedlichen Darstellungsformen des

Freispeichers haben wir einerseits als Verwaltungsstruktur, um solche Löcher zu

erfassen, eine Bitkarte oder eine sogenannte Lochliste. Die Bitkarte ist also für die Hohlräume

fester Größe geeignet und die Lochliste eben für Hohlräume variabler Größe. Hier, wenn wir von

der Bitkarte sprechen, dann fokussiert man meistens eigentlich auf sogenannte Seitennummer

der Adressräume. Also Paging ist hier im Endeffekt die Grundlage und dann wird mit jedem Bit in

dieser Bitkarte dann praktisch zum Ausdruck gebracht, ob ein bestimmter Seitenrahmen frei ist oder

sozusagen belegt ist von einem Prozess. Damit haben wir eine recht grobkörnige Speichervergabe.

Wir wollen zwar auf der Maschinenprogramm-Ebene Beiz, einzelne Beiz praktisch anfordern, aber

man bekommt dann praktisch auf Basis solch einer Verwaltungsstruktur vom Betriebssystem eben immer

komplette Seiten oder Seitenrahmen praktisch zur Führung gestellt. Ein interessanter Punkt hierbei

ist eigentlich, dass man davon ausgehen kann, dass alle diese Hohlräume, die wir haben, einfachweise

alle gleich groß sind, gleich gut bei der Löchersuche, die letztendlich sind. Da muss man

also jetzt keine großen Strategien sich überlegen, wo man sagt, was wäre denn das beste Loch,

sozusagen der beste freie Speicherbereich, den man hier verfügbar haben kann. Wenn man es ein

bisschen genauer betrachtet, wenn man mir auf die Hardware halt runter gibt, dann kann es da schon

sehr wohl Unterschiede halt geben, aber im Allgemeinen würde man sagen, dadurch, dass die

Löcher alle gleich groß sind, ist die Löchersuche eigentlich recht einfach. Wir haben also keine

godischen, müssen keine großen strategischen Überlegungen treffen, zu entscheiden, welches

Loch ist denn jetzt für den Prozess, der einer Speicheranforderung stellt, das bessere Loch.

Anders sieht es bei der Lochliste aus, also da, wo wir Hohlräume variabler Größe haben. Technisch

wird diese Repräsentationsform typischerweise für segmentierte Adressräume verwendet. Da können

wir dann sehr wohl eine sehr feinkörnige Speichervergabe haben. In der Theorie bis zu

einem einzelnen Byte runter in der Realität haben wir hier schon größere Einheiten, wie wir gleich

noch sehen werden, einfach aus Gründen der Effizienz, aber rein von der Theorie, kann man

sagen, man könnte also hier mit einer Lochliste sozusagen Löcher verwalten, die tatsächlich nur

ein einzelnes Byte denn jetzt jeweils ausmachen würden. Jedes Loch, was man denn auf dieser Lochliste

hat, würde man denn verwenden, um ein Segment praktisch platzieren zu können, wenn also eine

Speicheranforderung von einem Prozess getätigt wird und dieser Speicher in einem Segment,

vielleicht in ein neues Segment, gar gefasst werden soll. Denn würde man in der Lochliste das

am besten passende Loch für diese Speicheranforderung denn suchen und den Prozess zuteilen. Hier sehen

Teil eines Kapitels:
12.2 Speicherzuteilung

Zugänglich über

Offener Zugang

Dauer

00:26:39 Min

Aufnahmedatum

2021-01-12

Hochgeladen am

2021-01-12 15:38:36

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen