74 - 5 Verfahrensweisen der Speicherzuteilung [ID:27650]
50 von 145 angezeigt

Nun wir haben jetzt einen kleinen Eindruck bekommen, wie die Lochliste abgespeichert wird und wie da

der Bezug zur lineal überliegenden Adressraumkonzepten eines Betriebssystems letztendlich

aussieht. Jetzt wollen wir uns mal anschauen, wie man denn eigentlich so eine Lochliste verarbeitet,

nach welchen Strategien die Verarbeitung da eigentlich läuft. Also die Verfahrensweisen stehen

jetzt im Vordergrund. Nun zunächst gehen wir mal der Einfachheit halber wirklich nur davon aus,

es ist eine lineare Lochliste, eine dynamische Datenstruktur, eine einfach verkettete Liste.

Da stellt sich dann grundsätzlich erstmal die Frage, wenn man jetzt sozusagen in dieser

Liste nach Löchern sucht, welche Art von Loch möchte man denn haben. Denn es ist so,

dass wenn wir jetzt praktisch einen Speicherbereich einer gewünschten Größe haben,

dann suchen wir nach einem Loch dieser Größe, wo wir mindestens diese Anforderung erfüllen können.

Wir müssen auch davon ausgehen, dass die Löcher, die wir da halt haben, irgendwie alle größer sind,

als das, was gerade angefordert ist. Und es ist die Frage, wie wir denn damit umgehen.

Ob wir dann einfach das gesamte Loch jeweils, das am besten passende Loch in hoch der Form zurückgeben,

oder ob wir aus diesem Loch dann nur diese angeforderte Größe halt herausschneiden und wieder

einen Verschnitt erhalten, den man dann typischerweise wieder neu in so einer Liste einsortieren muss,

wenn die Elemente dieser Liste der Größe nach sortiert sind. Und diese grundsätzliche Sortierungsstrategie

der Größe nach steht jetzt hier mal auf dieser Folie im Vordergrund, wo wir sagen, die Lochliste

ist der Größe nach auf- oder absteigend sortiert. Und da haben wir dann schon zwei unterschiedliche

Techniken. Die eine Technik, best fit, versteht die Lochliste als aufsteigend sortierte Löcher.

Im Endeffekt, und dann versucht man, das kleinste passende Loch zu finden. Man kann davon ausgehen,

dass wenn praktisch in der Liste die Löcher größer werden, dass der Suchaufwand dadurch

minimiert werden soll. Im Endeffekt und zum Teil eben auch der Verschnitt dabei minimiert wird.

Man wird immer das kleinste passende Loch sozusagen finden. Und wenn man da noch was

rausschneiden muss, bleibt etwas kleineres übrig, was denn erneut einzusortieren wäre.

Dieser erneute Einsortierungsvorgang startet dann vorne wieder, wo die kleineren Löcher sind und

wird mit einer gewissen Wahrscheinlichkeit eben auch schnell die Stelle finden, wo denn dieser Rest,

dieses kleinere Restloch denn eigentlich platziert ist. Nun, wenn man aber so eine Liste halt nun hat

nach best fit organisiert und man lässt das System jeweils lang laufen. Dann wird man feststellen,

dass man mit diesem Verfahren typischerweise eher kleinere Löcher hinterlässt, die denn für

jeweils kommende Speicheranforderungen der Prozesse vielleicht ihm dennoch zu klein sind und man

demzufür in der Liste nach hinten gehen muss. Das heißt, der Suchaufwand steigt durchaus bei best fit.

durchaus bei Bestfit. Vorne eher kleinere Löcher hinterlassen. Wir müssen weiter nach hinten in

diese Liste rein und damit haben wir zeitmäßig gesehen einen höheren Aufwand, eine Wartezeit,

wenn man so will, bis man dann halt das passende Loch gefunden hat. Eine andere Rangehensweise ist

Worstfit. Da ist die Liste genau umgekehrt sortiert. Das heißt vorne sind die größeren

Löcher und nach hinten hin wird werden die Löcher dann halt immer kleiner absteigende

Lochgrößen. Man sucht das größte passende Loch im Endeffekt und kriegt natürlich da eine sehr

schnelle Zuteilungsentscheidung. Wenn man jetzt mal annehmen würde, dass diese Speicheranforderung

erfüllbar ist, man einfach das erste Loch dann vorne nimmt, ja, rausschneidet und dann den Rest

natürlich wieder einsortieren muss. Für den Einsortiervorgang möglicherweise man jetzt,

je nachdem wie groß oder klein der Verschnitt ist, man mehr oder weniger viel Zeit benötigt,

bis man denn praktisch in der Liste die entsprechende Position gefunden hat. Wenn

die Speicheranforderung, die wir stellen, einfach zu groß ist, das sieht man dann gleich an der

Größe des ersten Lochs in der Liste, da kann man also ganz schnell auch eine Aussage darüber

treffen, ob diese Anforderung überhaupt erfüllbar ist. Die Situation hier ist, dass wir vorne eher

immer größere Löcher hinterlassen. Wir haben große Löcher, wo wir von der Liste am Anfang damit

starten. Wir hinterlassen durchaus eher größere Löcher, aber es hängt natürlich sehr stark von

den Speicheranforderungen ab, bei mehr oder weniger konstantem Suchaufwand, weil wir nämlich sehr

schnell eben eine Aussage treffen können, ob überhaupt genügend Speicher für diese Anforderung

zur Verfügung steht. Nun aber wichtig ist, in beiden Fällen muss erneut einsortiert werden,

Teil eines Kapitels:
12.2 Speicherzuteilung

Zugänglich über

Offener Zugang

Dauer

00:15:46 Min

Aufnahmedatum

2021-01-12

Hochgeladen am

2021-01-12 13:59:54

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen