Paging und Segmentierung
Paging in Betriebssystemen ist ein Speicherverwaltungsschema, bei dem ein Computer Daten speichert und aus einem Sekundärspeicher zur Verwendung im Hauptspeicher abruft. In diesem Schema ruft das Betriebssystem Daten aus dem sekundären Speicher in Blöcken gleicher Größe ab, die als Seiten bezeichnet werden.
Die Hauptidee hinter dem Paging besteht darin, jeden Prozess in Form von Seiten aufzuteilen. Der Hauptspeicher wird auch in Form von Frames aufgeteilt, und daher soll eine Seite des Prozesses in einem Frame des Speichers gespeichert werden.
Das Paging verringert die Effizienz des Systems, da es dieselbe Funktion in verschiedene Seiten aufteilen kann, die gleichzeitig in den Speicher geladen werden können oder nicht.
Segmentierung andererseits ist eine Speicherverwaltungstechnik, bei der der Speicher in Teile variabler Größe unterteilt wird. Jedes Teil wird dann als Segment bezeichnet, dh es kann einem Prozess zugeordnet werden.
Obwohl das Paging eher dem Betriebssystem als dem Benutzer entspricht, da es alle Prozesse in die Form von Seiten aufteilt, ist die Segmentierung viel besser, da es den Prozess in Segmente aufteilt, wobei jedes Segment die gleiche Art von Funktionen darstellt, z. B. die Hauptfunktion in einer Segment und Bibliotheksfunktion im anderen Segment.
Vor- und Nachteile der Segmentierung
Vorteile
- Es gibt weniger Overhead bei der Segmentierung
- Es ist sehr viel einfacher, Segmente zu verschieben als den gesamten Adressraum.
- Es fehlt eine interne Fragmentierung, weil eine externe Fragmentierung durchgeführt werden muss.
- Die Segmenttabelle hat im Vergleich zur Seitentabelle beim Paging eine geringere Größe.
- Die durchschnittliche Größe des Segments ist relativ größer als die tatsächliche Größe der Seite.
Nachteile
- Es kann externe Fragmentierung enthalten
- Aufgrund der variablen Größe ist es schwierig, ansteckenden Speicher einer Partition zuzuweisen.
- Diese Speicherverwaltungstechnik ist zu teuer.
Hauptunterschied
- Die Segmentierung ermöglicht die Aufteilung von Programmen, Daten und Codes in unabhängige Adressräume. Diese Bereiche helfen beim Schutz und beim Teilen der Programme. Auf der anderen Seite wird Paging verwendet, wenn eine große lineare Adresse erhalten wird. Dies geschieht normalerweise, ohne dass mehr physischen Speicher gekauft werden muss.
- Bei der Segmentierung ordnet die segmentierte Tabelle die logische Adresse der physischen Adresse zu und enthält die segmentierte Zahl und den Offset (Segmentgrenze). Beim Paging bildet die Seitentabelle die logische Adresse auf die physikalische Adresse ab und enthält die Basisadresse jeder Seite, die in den Rahmen des physikalischen Speicherplatzes gespeichert ist.
- Die Segmentierung ermöglicht die gemeinsame Nutzung von Prozeduren, während das Paging keine gemeinsame Nutzung von Prozeduren zulässt.
- Die Segmentierung kann in der Lage sein, Verfahren und Daten getrennt voneinander zu unterscheiden und zu sichern, während beim Paging Verfahren und Daten nicht getrennt voneinander unterschieden und gesichert werden können.
- Die Segmentierung kann zu einer externen Fragmentierung führen, da der Speicher mit Blöcken variabler Größe gefüllt wird. Im Gegensatz dazu kann Paging zu einer internen Fragmentierung führen, da die Seite eine feste Blockgröße hat, aber es kann vorkommen, dass der Prozess nicht die gesamte Blockgröße erfasst, was die interne Fragmentierung im Speicher erzeugt.
- Einer der weiteren Vorteile der Segmentierung ist, dass sie sichtbar ist und von Entwicklern gesehen werden kann. Dieser Prozess kann das allgemeine Wachstum der Modularität und Datenstruktur bewältigen und den Austausch und den Schutz von Daten unterstützen. Andererseits besteht der Vorteil des Paging darin, dass die Einheiten, die sich über den Hauptspeicher bewegen, die gleiche Größe und feste Größe haben. Daher sind komplizierte Speicherverwaltungsalgorithmen zum Ausnutzen des Verhaltens des Programms nicht möglich.
- Die Segmentierung besteht aus dynamischer Verknüpfung und dynamischem Laden, während Paging aus statischer Verknüpfung und dynamischem Laden besteht.
- Bei der Segmentierung erfordert die Änderung von Daten oder Prozeduren das Kompilieren nur des betroffenen Segments, nicht des gesamten Programms. Andererseits erfordert beim Paging die Änderung von Daten oder Prozeduren das Kompilieren des gesamten Programms.
- Bei der Segmentierung gibt es viele unabhängige Adressräume, während beim Paging der Adressraum eindimensional ist.
- Bei der Segmentierung wird die Größe der segmentierten Seite vom Benutzer festgelegt. Andererseits wird beim Paging die Größe der Seite durch die Hardware bestimmt oder spezifiziert.
- Bei der Segmentierung gibt der Benutzer die Adresse in zwei Größen an, dh Segmentnummer und Offset. Beim Paging stellt der Benutzer nur eine einzelne ganze Zahl als Adresse bereit, die von der Hardware in eine Seitennummer und einen Offset unterteilt wird.
- Die Segmentierung ermöglicht es den Programmierern, die Speichergrenzen vorab zu kennen. Dies geschieht normalerweise, wenn der Programmierer versucht, Speicherplatzfunktionen und Variablen zuzuweisen und versucht, die Nur-Lese-Speicherverletzung zu erreichen, die schließlich zu Segmentierungsfehlern führt. Andererseits ist das Paging für Programmierer transparent und klar, da das System es automatisch verwaltet.
LESEN SIE WEITER: Unterschied zwischen logischer und physischer Adresse im Betriebssystem
Paging vs. Segmentierung in Tabellenform
VERGLEICHSGRUNDLAGE | SEGMENTIERUNG | PAGIEREN |
Wann wird verwendet | Die Segmentierung ermöglicht die Aufteilung von Programmen, Daten und Codes in unabhängige Adressräume. Diese Bereiche helfen beim Schutz und beim Teilen der Programme. | Paging wird verwendet, wenn eine große lineare Adresse abgerufen wird. Dies geschieht normalerweise, ohne dass mehr physischen Speicher gekauft werden muss. |
Tabellenkarten | Bei der Segmentierung ordnet die segmentierte Tabelle die logische Adresse der physischen Adresse zu und enthält die segmentierte Zahl und den Offset (Segmentgrenze). | Beim Paging bildet die Seitentabelle die logische Adresse auf die physikalische Adresse ab und enthält die Basisadresse jeder Seite, die in den Rahmen des physikalischen Speicherplatzes gespeichert ist. |
Teilen von Verfahren | Die Segmentierung ermöglicht die gemeinsame Nutzung von Prozeduren. | Paging erlaubt keine gemeinsame Nutzung von Prozeduren. |
Unterscheidung von sicheren Verfahren & Daten | Durch die Segmentierung können Verfahren und Daten getrennt voneinander unterschieden und gesichert werden. | Beim Paging werden Verfahren und Daten nicht getrennt voneinander unterschieden und gesichert. |
Ergebnis | Die Segmentierung kann zu einer externen Fragmentierung führen, da der Speicher mit Blöcken variabler Größe gefüllt wird. | Das Paging kann zu einer internen Fragmentierung führen, da die Seite eine feste Blockgröße hat, aber es kann vorkommen, dass der Prozess nicht die gesamte Blockgröße erfasst, was die interne Fragmentierung im Speicher erzeugt. |
Vorteil | Vorteil der Segmentierung ist, dass sie sichtbar ist und von Entwicklern gesehen werden kann. Dieser Prozess kann das allgemeine Wachstum der Modularität und Datenstruktur bewältigen und den Austausch und den Schutz von Daten unterstützen. | Vorteil des Pagings ist, dass die Einheiten, die sich über den Hauptspeicher bewegen, gleich groß und fest sind. Daher sind komplizierte Speicherverwaltungsalgorithmen zum Ausnutzen des Verhaltens des Programms nicht möglich. |
Bestandteile | Die Segmentierung besteht aus dynamischer Verknüpfung und dynamischem Laden. | Das Paging besteht aus statischer Verlinkung und dynamischem Laden. |
Datenänderung | Bei der Segmentierung erfordert die Änderung von Daten oder Prozeduren das Kompilieren nur des betroffenen Segments, nicht des gesamten Programms. | Beim Paging erfordert die Änderung von Daten oder Prozeduren das Kompilieren des gesamten Programms. |
Adressräume | Bei der Segmentierung stehen viele unabhängige Adressräume zur Verfügung. | Beim Paging ist der Adressraum eindimensional. |
Größe der Seite | Bei der Segmentierung wird die Größe der segmentierten Seite vom Benutzer festgelegt. | Beim Paging wird die Größe der Seite durch die Hardware bestimmt oder spezifiziert. |
Der Benutzer | Bei der Segmentierung gibt der Benutzer die Adresse in zwei Größen an, dh Segmentnummer und Offset. | Beim Paging stellt der Benutzer nur eine einzelne ganze Zahl als Adresse bereit, die von der Hardware in eine Seitennummer und einen Offset unterteilt wird. |
Programmierer | Die Segmentierung ermöglicht es den Programmierern, die Speichergrenzen vorab zu kennen. | Das Paging ist für Programmierer transparent und klar, da das System es automatisch verwaltet. |
Lesen Sie auch: Unterschied zwischen Prozess und Thread