Empfohlen, 2019

Tipp Der Redaktion

Unterschied zwischen Paging und Segmentierung im Betriebssystem

Die Speicherverwaltung im Betriebssystem ist eine wesentliche Funktionalität, die die Zuweisung von Speicher zu den Prozessen für die Ausführung ermöglicht und den Speicher freigibt, wenn der Prozess nicht mehr benötigt wird. In diesem Artikel werden zwei Speicherverwaltungsschemata Paging und Segmentierung erläutert. Der grundlegende Unterschied zwischen Paging und Segmentierung besteht darin, dass "page" ein Block fester Größe ist, während ein "Segment" ein Block variabler Größe ist.

Weitere Unterschiede zwischen Paging und Segmentierung werden anhand der untenstehenden Vergleichstabelle erläutert.

Vergleichstabelle

VergleichsgrundlagePagingSegmentierung
BasicEine Seite hat eine feste Blockgröße.Ein Segment hat eine variable Größe.
ZersplitterungPaging kann zu interner Fragmentierung führen.Segmentierung kann zu externer Fragmentierung führen.
AdresseDie vom Benutzer angegebene Adresse wird nach CPU in Seitennummer und Offset unterteilt.Der Benutzer gibt für jede Adresse durch zwei Größen eine Segmentnummer und den Offset (Segmentgrenze) an.
GrößeDie Hardware entscheidet über die Seitengröße.Die Segmentgröße wird vom Benutzer festgelegt.
TabelleDas Paging beinhaltet eine Seitentabelle, die die Basisadresse jeder Seite enthält.Die Segmentierung umfasst die Segmenttabelle, die Segmentnummer und Offset (Segmentlänge) enthält.

Definition von Paging

Paging ist ein Speicherverwaltungsschema . Durch das Paging kann ein Prozess auf nicht zusammenhängende Weise in einem Speicher gespeichert werden. Durch das Speichern in nicht zusammenhängender Weise wird das Problem der externen Fragmentierung gelöst.

Zur Implementierung des Paging werden die physischen und logischen Speicherbereiche in dieselben Blöcke fester Größe unterteilt. Diese physischen Speicherblöcke mit fester Größe werden als Rahmen bezeichnet, und Blöcke mit logischem Speicher mit fester Größe werden als Seiten bezeichnet .

Wenn ein Prozess ausgeführt werden muss, werden die Prozessseiten aus dem logischen Speicherbereich in die Rahmen des physischen Speicheradressenbereichs geladen. Nun wird die von der CPU für den Zugriff auf den Frame erzeugte Adresse in zwei Teile aufgeteilt, dh Seitennummer und Seitenversatz .

Die Seitentabelle verwendet die Seitennummer als Index. Jeder Prozess hat seine eigene Seitentabelle, die die logische Adresse der physischen Adresse zuordnet. Die Seitentabelle enthält die Basisadresse der Seite, die im Rahmen des physischen Speicherplatzes gespeichert ist. Die durch die Seitentabelle definierte Basisadresse wird mit dem Seitenversatz kombiniert, um die Bildnummer im physischen Speicher zu definieren, in dem die Seite gespeichert ist.

Definition von Segmentierung

Wie Paging ist auch die Segmentierung ein Speicherverwaltungsschema . Es unterstützt die Sicht des Benutzers auf den Speicher. Der Prozess wird in Segmente mit variabler Größe unterteilt und in den Adressraum des logischen Speichers geladen.

Der logische Adressraum ist die Sammlung von Segmenten mit variabler Größe. Jedes Segment hat seinen Namen und seine Länge . Zur Ausführung werden die Segmente aus dem logischen Speicherplatz in den physischen Speicherplatz geladen.

Die vom Benutzer angegebene Adresse enthält zwei Größen: den Segmentnamen und den Offset . Die Segmente sind nummeriert und werden durch die Segmentnummer anstelle des Segmentnamens referenziert. Diese Segmentnummer wird als Index in der Segmenttabelle verwendet, und der Offsetwert bestimmt die Länge oder Grenze des Segments. Die Segmentnummer und der Offset erzeugen zusammen die Adresse des Segments im physischen Speicherbereich.

Hauptunterschiede zwischen Paging und Segmentierung

  1. Der grundlegende Unterschied zwischen Seitenwechsel und Segmentierung besteht darin, dass eine Seite immer eine feste Blockgröße hat, während ein Segment eine variable Größe hat .
  2. Paging kann zu einer internen Fragmentierung führen, da die Seite eine feste Blockgröße hat. Es kann jedoch vorkommen, dass der Prozess nicht die gesamte Blockgröße erfasst, wodurch das interne Fragment im Speicher erzeugt wird. Die Segmentierung kann zu einer externen Fragmentierung führen, da der Speicher mit Blöcken variabler Größe gefüllt ist.
  3. Beim Paging gibt der Benutzer nur eine einzelne Ganzzahl als Adresse an, die von der Hardware in Seitennummer und Offset aufgeteilt wird . Auf der anderen Seite gibt der Benutzer bei der Segmentierung die Adresse in zwei Größen an, dh Segmentnummer und Offset .
  4. Die Größe der Seite wird von der Hardware festgelegt oder festgelegt. Auf der anderen Seite wird die Größe des Segments vom Benutzer festgelegt .
  5. Beim Paging ordnet die Seitentabelle die logische Adresse der physikalischen Adresse zu und enthält die Basisadresse jeder Seite, die in den Frames des physischen Speicherplatzes gespeichert ist. Bei der Segmentierung ordnet die Segmenttabelle jedoch die logische Adresse der physikalischen Adresse zu und enthält Segmentnummer und Offset (Segmentbegrenzung).

Fazit:

Paging und Segmentierung sind beide die Speicherverwaltungsschemata . Durch Paging kann der Speicher in Blöcke mit fester Größe unterteilt werden, während die Segmentierung den Speicherplatz in Segmente mit variabler Blockgröße unterteilt . Wenn das Paging zu einer internen Fragmentierung führt, führt die Segmentierung zu einer externen Fragmentierung .

Top