Empfohlen, 2019

Tipp Der Redaktion

Unterschied zwischen benachbarter und nicht zusammenhängender Speicherzuordnung

Der Speicher ist ein großes Byte-Array, wobei jedes Byte seine eigene Adresse hat. Die Speicherzuordnung kann in zwei Verfahren, zusammenhängende Speicherzuordnung und nicht zusammenhängende Speicherzuordnung, klassifiziert werden. Der Hauptunterschied zwischen benachbarter und nicht zusammenhängender Speicherzuordnung besteht darin, dass die fortlaufende Speicherzuordnung die aufeinanderfolgenden Speicherblöcke einem Prozess anfordert, der nach Speicherplatz anfordert, während die nicht zusammenhängende Speicherzuordnung die separaten Speicherblöcke an einer anderen Stelle im Speicherraum in nicht aufeinander folgender Weise zuordnet ein Prozess, der Speicher anfordert. Einige weitere Unterschiede zwischen der Zuordnung von zusammenhängendem und nicht zusammenhängendem Speicher werden mit Hilfe der unten gezeigten Vergleichstabelle erläutert.

Vergleichstabelle

Basis der VergleichAngrenzende SpeicherzuordnungNicht zusammenhängende Speicherzuordnung
BasicOrdnet einem Prozess aufeinanderfolgende Speicherblöcke zu.Ordnet einem Prozess separate Speicherblöcke zu.
GemeinkostenBei der zusammenhängenden Speicherzuordnung ist während der Ausführung eines Prozesses nicht der Aufwand für die Adressübersetzung zu beachten.Die nicht zusammenhängende Speicherzuordnung hat während der Ausführung eines Prozesses einen zusätzlichen Aufwand für die Adressübersetzung.
AusführungsrateEin Prozess führt einen Fatser in zusammenhängender Speicherzuordnung ausEin Prozess wird bei der nicht zusammenhängenden Speicherzuordnung vergleichsweise langsamer ausgeführt.
LösungDer Speicherplatz muss in eine Partition mit fester Größe unterteilt werden, und jede Partition wird nur einem einzelnen Prozess zugeordnet.Unterteilen Sie den Prozess in mehrere Blöcke und platzieren Sie diese in verschiedenen Teilen des Speichers, je nach verfügbarem Speicherplatz.
TabelleEine Tabelle wird vom Betriebssystem verwaltet, das die Liste der verfügbaren und belegten Partitionen im Speicherbereich verwaltetFür jeden Prozess, der die Basisadressen jedes Blocks enthält, der von einem Prozess im Speicher abgerufen wurde, muss eine Tabelle verwaltet werden.

Definition der zusammenhängenden Speicherzuordnung

Das Betriebssystem und die Prozesse des Benutzers müssen beide im Hauptspeicher untergebracht werden. Daher ist der Hauptspeicher in zwei Partitionen unterteilt: Auf einer Partition befindet sich das Betriebssystem und auf der anderen die Benutzerprozesse. Unter normalen Bedingungen müssen sich die verschiedenen Benutzerprozesse gleichzeitig im Speicher befinden. Daher ist es wichtig, die Zuordnung des Speichers zu den Prozessen zu berücksichtigen.

Die zusammenhängende Speicherzuordnung ist eine der Methoden der Speicherzuordnung. Wenn bei einer zusammenhängenden Speicherzuordnung ein Prozess den Speicher anfordert, wird dem Prozess ein einzelner zusammenhängender Abschnitt von Speicherblöcken entsprechend seiner Anforderung zugewiesen.

Die zusammenhängende Speicherzuordnung kann erreicht werden, indem der Speicher in eine Partition fester Größe aufgeteilt wird und jede Partition nur einem einzelnen Prozess zugeordnet wird. Dies verursacht jedoch den Grad der Mehrfachprogrammierung, der sich auf die Anzahl der festen Partitionen im Speicher beschränkt. Die zusammenhängende Speicherzuordnung führt auch zur internen Fragmentierung . Wenn beispielsweise ein Speicherblock fester Größe, der einem Prozess zugewiesen ist, etwas größer ist als seine Anforderung, wird der verbleibende Speicherplatz im Block als interne Fragmentierung bezeichnet. Wenn der in der Partition befindliche Prozess beendet ist, wird die Partition für den anderen Prozess verfügbar.

In dem Variablenpartitionierungsschema führt das Betriebssystem eine Tabelle, die angibt, welche Partition des Speichers frei ist und welche von den Prozessen belegt ist. Die zusammenhängende Speicherzuweisung beschleunigt die Ausführung eines Prozesses, indem der Overhead der Adressumsetzung reduziert wird.

Definition Nicht zusammenhängende Speicherzuordnung

Die nicht zusammenhängende Speicherzuordnung ermöglicht es einem Prozess , die verschiedenen Speicherblöcke an verschiedenen Stellen im Speicher entsprechend seiner Anforderung zu erfassen. Die nicht zusammenhängende Speicherzuordnung reduziert auch den durch interne und externe Fragmentierung verursachten Speicherplatzverlust . Bei der Verwendung der Speicherlöcher, die während der internen und externen Fragmentierung erstellt wurden.

Paging und Segmentierung sind die zwei Möglichkeiten, mit denen der physikalische Adressraum eines Prozesses nicht zusammenhängend ist. Bei der nicht zusammenhängenden Speicherzuordnung wird der Prozess in Blöcke (Seiten oder Segmente) unterteilt, die je nach Verfügbarkeit des Speichers in den verschiedenen Bereich des Speicherplatzes platziert werden.

Die nicht zusammenhängende Speicherzuordnung hat den Vorteil, dass weniger Speicherplatz benötigt wird, der Aufwand für die Adressübersetzung wird jedoch erhöht . Da sich die Teile des Prozesses an einer anderen Stelle im Speicher befinden, verlangsamt sich die Ausführung des Speichers, da bei der Adressübersetzung Zeit benötigt wird.

Hier muss das Betriebssystem die Tabelle für jeden Prozess verwalten, die die Basisadresse jedes Blocks enthält, der vom Prozess im Speicherplatz abgerufen wird.

Hauptunterschiede zwischen benachbarter und nicht zusammenhängender Speicherzuordnung

  1. Der grundlegende Unterschied zwischen fortlaufender und nicht zusammenhängender Speicherzuordnung besteht darin, dass die fortlaufende Zuordnung dem Prozess einen einzelnen zusammenhängenden Speicherblock zuordnet, während die nicht zusammenhängende Zuordnung den Prozess in mehrere Blöcke aufteilt und sie in den unterschiedlichen Adressraum des Speichers, dh nicht zusammenhängend, platziert .
  2. Bei der zusammenhängenden Speicherzuordnung wird der Prozess in einem zusammenhängenden Speicherplatz gespeichert. Es gibt also keinen zusätzlichen Aufwand für die Adressübersetzung während der Ausführung. Bei der nicht zusammenhängenden Speicherzuordnung ist jedoch ein zusätzlicher Aufwand für die Adressumsetzung während der Prozessausführung erforderlich, da die Prozessblöcke im Speicherbereich verteilt sind.
  3. Der in einem zusammenhängenden Speicher gespeicherte Prozess wird im Vergleich zu einem in einem nicht zusammenhängenden Speicherbereich gespeicherten Prozess schneller ausgeführt .
  4. Die Lösung für die zusammenhängende Speicherzuweisung besteht darin , den Speicherplatz in eine Partition fester Größe aufzuteilen und eine Partition nur einem einzelnen Prozess zuzuweisen. Andererseits wird bei der nichtkontingenten Speicherzuordnung ein Prozess in mehrere Blöcke unterteilt, und jeder Block wird an verschiedenen Stellen im Speicher angeordnet, je nach Verfügbarkeit des Speichers.
  5. Bei der zusammenhängenden Speicherzuordnung muss das Betriebssystem eine Tabelle führen, die angibt, welche Partition für den Prozess verfügbar ist und welche von dem Prozess belegt wird. Bei der nicht zusammenhängenden Speicherzuordnung wird für jeden Prozess eine Tabelle verwaltet , die die Basisadresse jedes Blocks des Prozesses angibt, der sich in dem Speicherbereich befindet.

Fazit:

Durch die benachbarte Speicherzuweisung entstehen keine zusätzlichen Kosten und die Ausführungsgeschwindigkeit des Prozesses wird beschleunigt, der Speicherplatz wird jedoch erhöht . Die nicht zusammenhängende Speicherzuordnung führt wiederum zu Overheads der Adressumsetzung, verringert die Ausführungsgeschwindigkeit eines Prozesses, erhöht jedoch die Speicherauslastung . Es gibt also Vor- und Nachteile beider Verteilungsmethoden.

Top