Speicherverwaltung im Betriebssystem: Angrenzend, Austausch, Fragmentierung
Was ist Speicherverwaltung?
Speicherverwaltung ist der Prozess der Steuerung und Koordinierung des Computerspeichers, bei dem den verschiedenen laufenden Programmen Teile, sogenannte Blöcke, zugewiesen werden, um die Gesamtleistung des Systems zu optimieren.
Die wichtigste Funktion eines Betriebssystems ist die Verwaltung des Hauptspeichers. Sie hilft Prozessen, zwischen dem Hauptspeicher und der Ausführungsdiskette hin- und herzuwechseln. Sie hilft dem Betriebssystem, jeden Speicherort im Auge zu behalten, unabhängig davon, ob er einem Prozess zugewiesen ist oder frei bleibt.
Warum Speicherverwaltung verwenden?
Hier sind Gründe für die Verwendung der Speicherverwaltung:
- Damit können Sie überprüfen, wie viel Speicher Prozessen zugewiesen werden muss, die entscheiden, welcher Prozessor zu welchem Zeitpunkt Speicher erhalten soll.
- Verfolgt, wann immer Inventar freigegeben oder nicht zugewiesen wird. Demnach wird der Status aktualisiert.
- Es weist den Platz den Anwendungsroutinen zu.
- Außerdem wird sichergestellt, dass sich diese Anwendungen nicht gegenseitig stören.
- Hilft, verschiedene Prozesse voreinander zu schützen
- Es legt die Programme im Speicher ab, so dass der Speicher voll ausgenutzt wird.
Techniken zur Speicherverwaltung
Hier sind einige der wichtigsten Speicherverwaltungstechniken:
Einzelne zusammenhängende Zuordnung
Dies ist die einfachste Speicherverwaltungstechnik. Bei dieser Methode steht der gesamte Computerspeicher, mit Ausnahme eines kleinen Teils, der für das Betriebssystem reserviert ist, einer Anwendung zur Verfügung. Das Betriebssystem MS-DOS beispielsweise weist den Speicher auf diese Weise zu. Ein eingebettetes System läuft ebenfalls auf einer einzigen Anwendung.
Partitionierte Zuordnung
Es unterteilt den Primärspeicher in verschiedene Speicherpartitionen, bei denen es sich meist um zusammenhängende Speicherbereiche handelt. Jede Partition speichert alle Informationen für eine bestimmte Aufgabe oder einen bestimmten Job. Diese Methode besteht darin, einem Job eine Partition zuzuweisen, wenn er startet, und die Zuordnung aufzuheben, wenn er endet.
Ausgelagerte Speicherverwaltung
Diese Methode unterteilt den Hauptspeicher des Computers in Einheiten fester Größe, die als Seitenrahmen bezeichnet werden. Diese Hardware-Speicherverwaltungseinheit ordnet Seiten Frames zu, die auf Seitenbasis zugewiesen werden sollten.
Segmentierte Speicherverwaltung
Segmentierter Speicher ist die einzige Speicherverwaltungsmethode, die dem Benutzerprogramm keinen linearen und zusammenhängenden Adressraum zur Verfügung stellt.
Segmente benötigen Hardwareunterstützung in Form einer Segmenttabelle. Es enthält die physikalische Adresse des Abschnitts im Speicher, die Größe und andere Daten wie Zugriffsschutzbits und Status.
Was ist Swapping?
Swapping ist eine Methode, bei der der Prozess vorübergehend vom Hauptspeicher in den Sicherungsspeicher ausgelagert wird. Später wird er zur weiteren Ausführung wieder in den Speicher zurückgeholt.
Der Sicherungsspeicher ist eine Festplatte oder ein anderes sekundäres Speichergerät, das groß genug sein sollte, um Kopien aller Speicherabbilder für alle Benutzer aufzunehmen. Es ist auch in der Lage, direkten Zugriff auf diese Speicherbilder zu bieten.
Vorteile des Tauschens
Hier sind die wichtigsten Vorteile/Vorteile des Tauschens:
- Es bietet einen höheren Grad an Multiprogrammierung.
- Ermöglicht dynamische Verschiebung. Wenn beispielsweise die Adressbindung zur Ausführungszeit verwendet wird, können Prozesse an verschiedenen Standorten ausgetauscht werden. Andernfalls sollten Prozesse im Falle von Kompilierungs- und Ladezeitbindungen an denselben Speicherort verschoben werden.
- Es hilft, den Speicher besser auszunutzen.
- Minimale Verschwendung von CPU-Zeit bei Abschluss, sodass es problemlos auf eine prioritätsbasierte Planungsmethode angewendet werden kann, um die Leistung zu verbessern.
Was ist Speicherzuweisung?
Bei der Speicherzuweisung handelt es sich um einen Prozess, bei dem Computerprogrammen Speicher oder Speicherplatz zugewiesen wird.
Dabei wird der Hauptspeicher in zwei Arten von Partitionen unterteilt
- Wenig Speicher - Betriebssystem befindet sich in dieser Art von Speicher.
- Hoher Speicher– Benutzerprozesse werden im High-Memory gehalten.
Partitionszuordnung
Der Speicher ist in verschiedene Blöcke oder Partitionen unterteilt. Jeder Prozess wird entsprechend der Anforderung zugeordnet. Die Partitionszuweisung ist eine ideale Methode, um interne Fragmentierung zu vermeiden.
Nachfolgend sind die verschiedenen Partitionszuordnungsschemata aufgeführt:
- Erster Fit: Bei dieser Typanpassung wird die Partition zugewiesen, die der erste ausreichende Block vom Anfang des Hauptspeichers ist.
- beste Passform: Es weist den Prozess der Partition zu, die die erste kleinste Partition unter den freien Partitionen ist.
- Schlechteste Passform: Es ordnet den Prozess dem zu Partition, die die größte ausreichend frei verfügbare Partition im Hauptspeicher ist.
- Nächste Passform: Es ähnelt größtenteils dem ersten Fit, aber dieser Fit sucht nach der ersten ausreichenden Partition ab dem letzten Zuordnungspunkt.
Was ist Paging?
Paging ist ein Speichermechanismus, der es dem Betriebssystem ermöglicht, Prozesse in Form von Seiten vom Sekundärspeicher in den Hauptspeicher abzurufen. Bei der Paging-Methode wird der Hauptspeicher in kleine physische Speicherblöcke mit fester Größe unterteilt, die als Frames bezeichnet werden. Die Größe eines Frames sollte der einer Seite entsprechen, um den Hauptspeicher optimal auszunutzen und externe Fragmentierung zu vermeiden. Paging dient dem schnelleren Zugriff auf Daten und ist ein logisches Konzept.
Was ist Fragmentierung?
Prozesse werden gespeichert und aus dem Speicher entfernt, wodurch freier Speicherplatz entsteht, der zu klein ist, um von anderen Prozessen genutzt zu werden.
Wenn Prozesse aufgrund ihrer geringen Größe keine Speicherblöcke zuweisen können und Speicherblöcke immer ungenutzt bleiben, wird dies manchmal als Fragmentierung bezeichnet. Diese Art von Problem tritt bei einem dynamischen Speicherzuweisungssystem auf, wenn die freien Blöcke recht klein sind und keine Anforderung erfüllt werden kann.
Zwei Arten von Fragmentierungsmethoden sind:
- Externe Fragmentierung
- Interne Fragmentierung
- Die externe Fragmentierung kann reduziert werden, indem der Speicherinhalt neu angeordnet wird, um den gesamten freien Speicher in einem einzigen Block zusammenzufassen.
- Die interne Fragmentierung kann reduziert werden, indem die kleinste Partition zugewiesen wird, die noch gut genug ist, um den gesamten Prozess zu übertragen.
Was ist Segmentierung?
Die Segmentierungsmethode funktioniert fast ähnlich wie das Paging. Der einzige Unterschied zwischen den beiden besteht darin, dass die Segmente eine variable Länge haben, während die Seiten bei der Paging-Methode immer eine feste Größe haben.
Ein Programmsegment umfasst die Hauptfunktion des Programms, Datenstrukturen, Hilfsfunktionen usw. Das Betriebssystem verwaltet eine Segmentzuordnungstabelle für alle Prozesse. Sie enthält auch eine Liste freier Speicherblöcke zusammen mit ihrer Größe, Segmentnummern und ihren Speicherorten im Hauptspeicher oder virtuellen Speicher.
Was ist dynamisches Laden?
Beim dynamischen Laden handelt es sich um eine Routine eines Programms, die erst dann geladen wird, wenn das Programm sie aufruft. Alle Routinen sollten in einem verschiebbaren Ladeformat auf der Festplatte enthalten sein. Das Hauptprogramm wird in den Speicher geladen und ausgeführt. Dynamisches Laden sorgt außerdem für eine bessere Speicherplatzausnutzung.
Was ist dynamische Verknüpfung?
Beim Verknüpfen handelt es sich um eine Methode, die dem Betriebssystem hilft, verschiedene Code- und Datenmodule zu sammeln und in einer einzigen ausführbaren Datei zusammenzuführen. Die Datei kann in den Speicher geladen und ausgeführt werden. Das Betriebssystem kann Bibliotheken auf Systemebene zu einem Programm verknüpfen, das die Bibliotheken zur Ladezeit kombiniert. Bei der dynamischen Verknüpfungsmethode werden Bibliotheken zur Ausführungszeit verknüpft, sodass die Programmcodegröße klein bleiben kann.
Unterschied zwischen statischer und dynamischer Belastung
Statische Belastung | Dynamisches Laden |
---|---|
Statisches Laden wird verwendet, wenn Sie Ihr Programm statisch laden möchten. Zum Zeitpunkt der Kompilierung wird dann das gesamte Programm verknüpft und kompiliert, ohne dass eine externe Modul- oder Programmabhängigkeit erforderlich ist. | In einem dynamisch geladenen Programm werden Referenzen bereitgestellt und der Ladevorgang erfolgt zum Zeitpunkt der Ausführung. |
Beim Laden wird das gesamte Programm in den Speicher geladen und beginnt mit der Ausführung. | Routinen der Bibliothek werden nur dann in den Speicher geladen, wenn sie im Programm benötigt werden. |
Unterschied zwischen statischer und dynamischer Verknüpfung
Hier sind die Hauptunterschiede zwischen statischer und dynamischer Verknüpfung:
Statische Verknüpfung | Dynamische Verknüpfung |
---|---|
Durch statische Verknüpfung werden alle anderen Module, die ein Programm benötigt, in einem einzigen ausführbaren Code zusammengefasst. Dies hilft dem Betriebssystem, jegliche Laufzeitabhängigkeit zu verhindern. | Wenn dynamisches Linken verwendet wird, muss das eigentliche Modul oder die Bibliothek nicht mit dem Programm verknüpft werden. Verwenden Sie stattdessen einen Verweis auf das dynamische Modul, das zum Zeitpunkt der Kompilierung und Verknüpfung bereitgestellt wurde. |
Zusammenfassung
- Bei der Speicherverwaltung handelt es sich um den Prozess der Steuerung und Koordinierung des Computerspeichers, bei dem Teile, sogenannte Blöcke, verschiedenen laufenden Programmen zugewiesen werden, um die Gesamtleistung des Systems zu optimieren.
- Damit können Sie überprüfen, wie viel Speicher Prozessen zugewiesen werden muss, die entscheiden, welcher Prozessor zu welchem Zeitpunkt Speicher erhalten soll.
- Bei der Single Contiguous Allocation stehen alle Arten von Computerspeicher mit Ausnahme eines kleinen Teils, der für das Betriebssystem reserviert ist, einer Anwendung zur Verfügung
- Die Partitioned Allocation-Methode unterteilt den Primärspeicher in verschiedene Speicherpartitionen, bei denen es sich meist um zusammenhängende Speicherbereiche handelt
- Die Paged Memory Management-Methode unterteilt den Hauptspeicher des Computers in Einheiten fester Größe, die als Seitenrahmen bezeichnet werden
- Segmentierter Speicher ist die einzige Speicherverwaltungsmethode, die dem Benutzerprogramm keinen linearen und zusammenhängenden Adressraum zur Verfügung stellt.
- Swapping ist eine Methode, bei der der Prozess vorübergehend vom Hauptspeicher in den Sicherungsspeicher ausgelagert wird. Später wird er zur weiteren Ausführung wieder in den Speicher zurückgeholt.
- Bei der Speicherzuweisung handelt es sich um einen Prozess, bei dem Computerprogrammen Speicher oder Speicherplatz zugewiesen wird.
- Paging ist ein Speichermechanismus, der es dem Betriebssystem ermöglicht, Prozesse in Form von Seiten vom Sekundärspeicher in den Hauptspeicher abzurufen.
- Unter Fragmentierung versteht man den Zustand einer Festplatte, bei dem Dateien in auf der Festplatte verstreute Teile aufgeteilt werden.
- Die Segmentierungsmethode funktioniert fast ähnlich wie das Paging. Der einzige Unterschied zwischen den beiden besteht darin, dass die Segmente eine variable Länge haben, während die Seiten bei der Paging-Methode immer eine feste Größe haben.
- Beim dynamischen Laden handelt es sich um eine Routine eines Programms, die erst dann geladen wird, wenn das Programm sie aufruft.
- Beim Verknüpfen handelt es sich um eine Methode, die dem Betriebssystem hilft, verschiedene Code- und Datenmodule zu sammeln und in einer einzigen ausführbaren Datei zusammenzuführen.