Unterschied zwischen Paging und Segmentierung

Unterschied zwischen Paging und Segmentierung

Speicherverwaltung ist eine der grundlegenden Funktionen des Betriebssystems. Moderne Betriebssysteme ermöglichen es jedem Prozess, mehr virtuellen Speicher zu erhalten als die Gesamtgröße des tatsächlichen (physischen) Speichers auf einem bestimmten Computersystem. Das Hauptziel der Speicherverwaltung ist das, indem ein großer, aber langsamer Speicher mit einem kleinen, aber hohen Geschwindigkeitsgedächtnis kombiniert wird, um den Effekt eines größeren Hochgeschwindigkeitsspeichers zu erzielen.

Was ist Paging?

Die Trennung zwischen fester und variabler Partitionierung ist in Bezug. Eine mögliche Lösung für das Problem der Fragmentierung besteht darin, dass der Prozess nicht in einen kontinuierlichen Speicherblock geschrieben werden kann. Das Programm kann willkürlich im Speicher verstreut werden. In diesem Fall ist das Arbeitsspeicher in kleinere Blöcke der festen Größe als Rahmen unterteilt. Der logische Adressraum des Programms ist ebenfalls in Blöcke derselben Größe unterteilt, die als Seiten bezeichnet werden. Wenn ein Programm in den Speicher eingegeben wird, werden die Seiten in kostenlose Speicherrahmen geschrieben. Um Programme von einer Festplatte auf einen Arbeitsspeicher zu übertragen, ist die Festplatte auch in Frames der gleichen Größe wie die Speicherrahmen unterteilt. Somit wird ein Rahmen aus der Festplatte in einen Frame des Arbeitsspeichers geschrieben. Das Paging -System arbeitet folgendermaßen: Wenn das Programm zur Ausführung akzeptiert wird, wird seine Größe berechnet, was mit der erforderlichen Anzahl von Seiten ausgedrückt wird. Wenn eine ausreichende Anzahl von Frames kostenlos ist, wird der Vorgang auf der Speicherseite pro Seite aufgezeichnet. Gleichzeitig wird die Anzahl der Frames, in denen jede Seite geschrieben wird.

Was ist Segmentierung?

Das Benutzerprogramm und die zugehörigen Daten können in eine Reihe von Segmenten unterteilt werden. Segmente aller Programme müssen nicht gleich groß sein, obwohl es eine maximale Segmentlänge gibt. Wie bei Paging besteht die logische Adresse, die die Segmentierung verwendet, aus zwei Teilen, in diesem Fall die Anzahl der Segmente und Versetzungen innerhalb dieses Segments. Aufgrund der Verwendung von Segmenten unterschiedlicher Größen ähnelt die Segmentierung der dynamischen Partitionierung. In Abwesenheit eines Overlay -Schemas oder der Verwendung des virtuellen Speichers muss alle Programmsegmente für die Ausführung in den Speicher geladen werden. Der Unterschied zu einer dynamischen Partitionierung besteht darin, dass die Segmentierung mehr als eine Partition erfolgen kann und dass diese Partition nicht benachbart sein muss. Die Segmentierung löst das Problem der internen Fragmentierung sowie das Problem der externen Fragmentierung sowie das Problem der dynamischen Partitionierung. Da der Prozess jedoch in eine Reihe kleinerer Teile unterteilt ist, ist die externe Fragmentierung typischerweise kleiner. Im Gegensatz zu Paging, das für den Programmierer unsichtbar ist, ist die Segmentierung normalerweise sichtbar und geeignet für die Organisation von Programmen und Daten. Für die modulare Programmierung können das Programm oder die Daten weiter in mehrere kleinere Segmente unterteilt werden. Der Nachteil dieser Technik ist, dass der Programmierer die Einschränkungen der maximalen Segmentgröße kennen muss. Die nächste Bequemlichkeit der Verwendung von Segmenten unterschiedlicher Größen ist, dass es keine prospektive Verbindung zwischen logischen und physischen Adressen gibt. Ähnlich wie bei Paging verwendet die einfache Segmentierungstechnik die Segmente Tabelle für jeden Prozess und eine Liste der verfügbaren Blöcke im Hauptspeicher.

Unterschied zwischen Paging und Segmentierung

1. Konzept der Paging und Segmentierung

Paging liefert einen virtuellen und einen physischen Adressraum und einen sekundären Speicherraum auf Blöcken (Seiten) mit gleichen Längen. Auf diese Weise kann der kontinuierliche virtuelle Adressraum dem Dispersionsprozess (nicht unbedingt ständig verteilt) im realen Adressraum und im Sekundärspeicher zugewiesen werden. Sogar die Seite als Begriff bezieht sich eher auf Speicher als auf logische Objekte, die auf Programmebene sichtbar sind. Die Segmentierung liefert einen virtuellen Adressraum für Blöcke (Segmente), der direkt den Objekten auf Programmebene entspricht. Aus diesem Grund hat das Segment keine feste Länge, sodass selbst die Segmentgröße während der Programmausführung geändert werden kann. Schutz und Aufteilung sind daher auf Objektebene möglich, und es gibt sichtbare Prozesse, bei denen eine Segmentierung durchgeführt wird.

2. Merkmale von Paging und Segmentierung

Der Anwendungsentwickler ist sich der Paging nicht bewusst. Er schreibt Programme, als wäre der Speicher linear, und das Betriebssystem und der Prozessor sind besorgt über seine Partitionierung und Konvertierung in virtuelle Adressen. Programmierer auf Segmentierungssystemen listet jedoch zwei Teile der Adresse, Segment und Seite in ihren Programmen auf. Alle Seiten haben die gleiche Größe, während die Segmente unterschiedlich sind. Die Segmentierung verfügt über mehrere lineare Adressräume und nur eine Paging. Segmente ermöglichen eine logische Partitionierung und den Schutz von Anwendungskomponenten und Seiten nicht.

3. Vorteile von Paging und Segmentierung

Paging, das für den Programmierer transparent ist, eliminiert die externe Fragmentierung und sorgt somit effizient die Verwendung des Hauptspeichers. Die Teile, die in und aus dem Hauptspeicher ein- und aussteigen. Die Segmentierung ist für den Entwickler sichtbar und kann das Wachstum von Datenstruktur, Modularität und Unterstützung für Austausch und Schutz bewältigen.

Paging vs. Segmentierung: Vergleichstabelle

Paging

Segmentierung

Feste Seitengröße Segmente sind nicht in Größe festgelegt
für den Programmierer unsichtbar für den Programmierer sichtbar
Ein linearer Adressraum Mehrere lineare Adressräume
Ermöglicht keine logische Partitionierung und den Schutz von Anwendungskomponenten erlaubt

Zusammenfassung von Paging und Segmentierung

  • Paging basiert auf der Verteilung des gesamten Adressraums auf Blöcken fester Länge, die als Speicher betrieben werden. Darüber hinaus ist es notwendig, ein Mittel zur Markierung des verfügbaren Speicheres bereitzustellen, der durch das Vorhandensein des „Headers“ jeder Seite ausgeführt werden kann, die den Status der Seite angibt (globale verlinkte Liste, auf der jeder Knoten auf die nächste freie Seite verweist) oder nach Platzieren Sie die kostenlose Seitenadresse in das globale Array, das normalerweise die schlechteste Lösung ist.
  • Segmentierung bedeutet, den Adressraum in Segmente aufzuteilen, die eindeutig die Zugriffsrechte für den MMU -Prozessor übertragen haben. Innerhalb des Segments vermitteln die Prozesse genau so viel Speicher wie erforderlich, aber das Problem der Speicherverwaltung besteht darin.