Speicherverwaltung im Betriebssystem: zusammenhängend, Swapping, Fragmentierung

Was ist Speicherverwaltung?

Speicherverwaltung ist der Prozess des Steuerns und Koordinierens des Computerspeichers, wobei Teile, die als Blöcke bekannt sind, verschiedenen laufenden Programmen zugewiesen werden, um die Gesamtleistung des Systems zu optimieren.

Es ist die wichtigste Funktion eines Betriebssystems, die den Primärspeicher verwaltet. Es hilft Prozessen, sich zwischen dem Hauptspeicher und der Ausführungsplatte hin und her zu bewegen. Es hilft dem Betriebssystem, jeden Speicherort zu verfolgen, unabhängig davon, ob er einem Prozess zugeordnet ist oder frei bleibt.

In diesem Betriebssystem-Tutorial lernen Sie:

Warum Speicherverwaltung verwenden?

Hier sind Gründe für die Verwendung der Speicherverwaltung:

  • Es ermöglicht Ihnen zu überprüfen, wie viel Speicher Prozessen zugewiesen werden muss, die entscheiden, welcher Prozessor zu welcher Zeit Speicher erhalten soll.
  • Verfolgt, wenn Inventar freigegeben oder nicht zugewiesen wird. Entsprechend wird der Status aktualisiert.
  • Es weist den Platz Anwendungsroutinen zu.
  • Stellen Sie auch sicher, 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 Zuweisung

Es ist die einfachste Speicherverwaltungstechnik. Bei diesem Verfahren stehen alle Arten von Computerspeicher mit Ausnahme eines kleinen Teils, der für das Betriebssystem reserviert ist, für eine Anwendung zur Verfügung. Beispielsweise weist das Betriebssystem MS-DOS auf diese Weise Speicher zu. Ein eingebettetes System läuft auch auf einer einzigen Anwendung.

Partitionierte Zuweisung

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 gestartet wird, und die Zuordnung aufzuheben, wenn er endet.

Ausgelagerte Speicherverwaltung

Bei dieser Methode wird der Hauptspeicher des Computers in Einheiten mit fester Größe unterteilt, die als Seitenrahmen bezeichnet werden. Diese Hardware-Speicherverwaltungseinheit bildet Seiten in Rahmen ab, die auf Seitenbasis zugewiesen werden sollten.

Segmentierte Speicherverwaltung

Segmentierter Speicher ist die einzige Speicherverwaltungsmethode, die dem Programm des Benutzers 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 Tauschen?

Swapping ist eine Methode, bei der der Prozess temporär vom Hauptspeicher in den Sicherungsspeicher ausgelagert werden soll. Es wird später zur weiteren Ausführung 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, direkt auf diese Speicherbilder zuzugreifen.

Vorteile des Tauschens

Hier sind die wichtigsten Vorteile/Vorteile des Tauschens:

  • Es bietet einen höheren Grad an Multiprogramming.
  • Ermöglicht dynamische Verlagerung. Wenn beispielsweise die Adressbindung zur Ausführungszeit verwendet wird, können Prozesse an verschiedenen Orten ausgetauscht werden. Andernfalls sollten Prozesse im Fall von Kompilierungs- und Ladezeitbindungen an denselben Ort verschoben werden.
  • Es hilft, den Speicher besser auszulasten.
  • Minimale Verschwendung von CPU-Zeit nach Abschluss, sodass es leicht auf eine prioritätsbasierte Planungsmethode angewendet werden kann, um die Leistung zu verbessern.

Was ist Speicherzuweisung?

Die Speicherzuweisung ist ein Prozess, bei dem Computerprogrammen Speicher oder Speicherplatz zugewiesen wird.

Hier wird der Hauptspeicher in zwei Arten von Partitionen unterteilt

  1. Wenig Speicher - Das Betriebssystem befindet sich in diesem Speichertyp.
  2. Hoher Speicher - Benutzerprozesse werden im hohen Speicher gehalten.

Partitionszuweisung

Der Speicher ist in verschiedene Blöcke oder Partitionen unterteilt. Jeder Prozess wird entsprechend der Anforderung zugeordnet. Die Partitionszuweisung ist eine ideale Methode, um eine interne Fragmentierung zu vermeiden.

Im Folgenden sind die verschiedenen Partitionszuweisungsschemata aufgeführt:

  • Erster Fit : Bei dieser Typanpassung wird die Partition allokiert, die der erste ausreichende Block vom Anfang des Hauptspeichers ist.
  • Beste Passform: Es ordnet den Prozess der Partition zu, die die erste kleinste Partition unter den freien Partitionen ist.
  • Schlechteste Passform: Es ordnet den Prozess dem Partition, das ist die größte ausreichend frei verfügbare Partition im Hauptspeicher.
  • Nächste Passform: Es ähnelt größtenteils dem ersten Fit, aber dieser Fit sucht nach der ersten ausreichenden Partition vom letzten Zuordnungspunkt.

Was ist Paging?

Paging ist ein Speichermechanismus, der es dem Betriebssystem ermöglicht, Prozesse aus dem sekundären Speicher in Form von Seiten in den Hauptspeicher abzurufen. Beim Paging-Verfahren wird der Hauptspeicher in kleine physische Speicherblöcke fester Größe unterteilt, die als Frames bezeichnet werden. Die Größe eines Frames sollte der einer Seite entsprechen, um eine maximale Auslastung des Hauptspeichers zu erreichen und eine externe Fragmentierung zu vermeiden. Paging wird für einen schnelleren Zugriff auf Daten verwendet 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 verwendet zu werden.

Dass Prozesse nicht in der Lage sind, Speicherblöcke zuzuweisen, weil seine Größe gering ist und Speicherblöcke immer ungenutzt bleiben, wird als Fragmentierung bezeichnet. Diese Art von Problem tritt während eines dynamischen Speicherzuweisungssystems auf, wenn freie Blöcke recht klein sind, so dass es keine Anforderung erfüllen kann.

Zwei Arten von Fragmentierungsmethoden sind:

  1. Externe Fragmentierung
  2. 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 immer noch gut genug ist, um den gesamten Prozess zu tragen.

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 beim Paging-Verfahren immer eine feste Größe haben.

Ein Programmsegment enthält die Hauptfunktion des Programms, Datenstrukturen, Dienstprogrammfunktionen usw. Das OS unterhält eine Segmentabbildungstabelle für alle Prozesse. Es 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?

Dynamisches Laden ist eine Routine eines Programms, die erst geladen wird, wenn das Programm es 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 bietet auch eine bessere Speicherplatznutzung.

Was ist dynamische Verknüpfung?

Das Verknüpfen ist eine Methode, mit der das Betriebssystem verschiedene Code- und Datenmodule sammeln und in einer einzigen ausführbaren Datei zusammenführen kann. Die Datei kann in den Speicher geladen und ausgeführt werden. Das Betriebssystem kann Bibliotheken auf Systemebene in ein Programm einbinden, 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

Statisches Laden Dynamisches Laden
Statisches Laden wird verwendet, wenn Sie Ihr Programm statisch laden möchten. Dann wird zum Zeitpunkt der Kompilierung das gesamte Programm gelinkt und kompiliert, ohne dass externe Module oder Programmabhängigkeiten erforderlich sind.In einem dynamisch geladenen Programm werden Referenzen bereitgestellt und das Laden erfolgt zum Zeitpunkt der Ausführung.
Zur Ladezeit wird das gesamte Programm in den Speicher geladen und startet seine 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
Statisches Linken wird verwendet, um alle anderen Module, die von einem Programm benötigt werden, in einem einzigen ausführbaren Code zu kombinieren. 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 wird.

Zusammenfassung:

  • Die Speicherverwaltung ist der Prozess des Steuerns und Koordinierens des Computerspeichers, wobei Abschnitte, die Blöcke genannt werden, verschiedenen laufenden Programmen zugewiesen werden, um die Gesamtleistung des Systems zu optimieren.
  • Es ermöglicht Ihnen zu überprüfen, wie viel Speicher Prozessen zugewiesen werden muss, die entscheiden, welcher Prozessor zu welcher Zeit Speicher erhalten soll.
  • Bei der Single Contiguous Allocation sind alle Arten von Computerspeicher mit Ausnahme eines kleinen Teils, der für das Betriebssystem reserviert ist, für eine Anwendung verfügbar
  • Die Methode der partitionierten Zuweisung unterteilt den Primärspeicher in verschiedene Speicherpartitionen, bei denen es sich hauptsächlich um zusammenhängende Speicherbereiche handelt
  • Die Methode der ausgelagerten Speicherverwaltung teilt den Hauptspeicher des Computers in Einheiten mit fester Größe, die als Seitenrahmen bezeichnet werden
  • Segmentierter Speicher ist die einzige Speicherverwaltungsmethode, die dem Programm des Benutzers keinen linearen und zusammenhängenden Adressraum zur Verfügung stellt.
  • Swapping ist eine Methode, bei der der Prozess temporär vom Hauptspeicher in den Sicherungsspeicher ausgelagert werden soll. Es wird später zur weiteren Ausführung in den Speicher zurückgeholt.
  • Die Speicherzuweisung ist ein Prozess, bei dem Computerprogrammen Speicher oder Speicherplatz zugewiesen wird.
  • Paging ist ein Speichermechanismus, der es dem Betriebssystem ermöglicht, Prozesse aus dem sekundären Speicher in Form von Seiten in den Hauptspeicher abzurufen.
  • Fragmentierung bezieht sich auf den Zustand einer Festplatte, bei dem Dateien in Teile aufgeteilt sind, die über die Festplatte verstreut sind.
  • 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 beim Paging-Verfahren immer eine feste Größe haben.
  • Dynamisches Laden ist eine Routine eines Programms, die erst geladen wird, wenn das Programm es aufruft.
  • Das Verknüpfen ist eine Methode, mit der das Betriebssystem verschiedene Code- und Datenmodule sammeln und in einer einzigen ausführbaren Datei zusammenführen kann.