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
Presenters
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