Speicherverwaltung im Betriebssystem: Zusammenhängend, Auslagern, Fragmentieren

Inhaltsverzeichnis:

Anonim

Was ist Speicherverwaltung?

Bei der Speicherverwaltung werden der Computerspeicher gesteuert und koordiniert, wobei verschiedenen laufenden Programmen Teile zugewiesen werden, die als Blöcke bezeichnet werden, um die Gesamtleistung des Systems zu optimieren.

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

In diesem Tutorial zum Betriebssystem lernen Sie:

  • Was ist Speicherverwaltung?
  • Warum Speicherverwaltung verwenden?
  • Speicherverwaltungstechniken
  • Was ist Tauschen?
  • Was ist Speicherzuweisung?
  • Was ist Paging?
  • Was ist eine Fragmentierungsmethode?
  • Was ist Segmentierung?
  • Was ist dynamisches Laden?
  • Was ist dynamische Verknüpfung?
  • Unterschied zwischen statischer und dynamischer Belastung
  • Unterschied zwischen statischer und dynamischer Verknüpfung

Warum Speicherverwaltung verwenden?

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

  • Hier 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 ordnet den Speicherplatz Anwendungsroutinen zu.
  • Stellen Sie außerdem sicher, dass sich diese Anwendungen nicht gegenseitig stören.
  • Hilft, verschiedene Prozesse voreinander zu schützen
  • Es speichert die Programme so, dass der Speicher in vollem Umfang genutzt wird.

Speicherverwaltungstechniken

Hier sind einige der wichtigsten Speicherverwaltungstechniken:

Einzelne zusammenhängende Zuordnung

Dies ist die einfachste Speicherverwaltungstechnik. Bei dieser Methode 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 MS-DOS-Betriebssystem auf diese Weise Speicher zu. Ein eingebettetes System läuft auch auf einer einzelnen Anwendung.

Partitionierte Zuordnung

Es unterteilt den Primärspeicher in verschiedene Speicherpartitionen, bei denen es sich hauptsächlich 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 beim Starten eine Partition zuzuweisen und beim Beenden die Zuordnung aufzuheben.

Paged Memory Management

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 bietet.

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?

Das Austauschen ist eine Methode, bei der der Prozess vorübergehend vom Hauptspeicher in den Sicherungsspeicher verschoben werden soll. Es wird später zur weiteren Ausführung in den Speicher zurückgebracht.

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 Austauschs

Hier sind die wichtigsten Vorteile / Vorteile des Austauschs:

  • Es bietet einen höheren Grad an Multiprogrammierung.
  • Ermöglicht dynamische Verlagerung. Wenn beispielsweise die Adressbindung zur Ausführungszeit verwendet wird, können Prozesse an verschiedenen Orten ausgetauscht werden. Andernfalls sollten bei Kompilierungs- und Ladezeitbindungen Prozesse an denselben Speicherort verschoben werden.
  • Es hilft, den Speicher besser zu nutzen.
  • Minimale Verschwendung von CPU-Zeit nach Abschluss, sodass sie problemlos auf eine prioritätsbasierte Planungsmethode angewendet werden kann, um deren 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. Niedriger Speicher - Das Betriebssystem befindet sich in diesem Speichertyp.
  2. Hoher Speicher - Benutzerprozesse werden in hohem Speicher 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 eine interne Fragmentierung zu vermeiden.

Nachfolgend sind die verschiedenen Partitionszuweisungsschemata aufgeführt:

  • Erste Anpassung: Bei dieser Typanpassung wird die Partition zugewiesen. Dies ist der erste ausreichende Block ab dem Beginn des Hauptspeichers.
  • Beste Anpassung: Der Prozess wird der Partition zugewiesen, die die erste kleinste Partition unter den freien Partitionen ist.
  • Schlechteste Anpassung: Der Prozess wird der Partition zugeordnet, die die größte ausreichend frei verfügbare Partition im Hauptspeicher ist.
  • Nächste Anpassung: Es ähnelt größtenteils der ersten Anpassung, aber diese Anpassung sucht nach der ersten ausreichenden Partition vom letzten Zuordnungspunkt.

Was ist Paging?

Paging ist ein Speichermechanismus, mit dem das Betriebssystem Prozesse in Form von Seiten aus dem Sekundärspeicher in den Hauptspeicher abrufen kann. Bei der Paging-Methode wird der Hauptspeicher in kleine physische Speicherblöcke fester Größe unterteilt, die als Frames bezeichnet werden. Die Größe eines Frames sollte der Größe einer Seite entsprechen, um den Hauptspeicher maximal zu nutzen 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.

Manchmal werden Prozesse, die nicht in der Lage sind, Speicherblöcken zuzuordnen, weil ihre geringe Größe und Speicherblöcke immer ungenutzt bleiben, als Fragmentierung bezeichnet. Diese Art von Problem tritt während eines dynamischen Speicherzuweisungssystems auf, wenn die freien Blöcke recht klein sind, sodass keine Anforderung erfüllt werden 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 auszuführen.

Was ist Segmentierung?

Die Segmentierungsmethode funktioniert fast ähnlich wie das Paging. Der einzige Unterschied zwischen den beiden besteht darin, dass Segmente eine variable Länge haben, während bei der Paging-Methode die Seiten immer eine feste Größe haben.

Ein Programmsegment enthält die Hauptfunktion, Datenstrukturen, Dienstprogrammfunktionen usw. des Programms. Das Betriebssystem verwaltet eine Segmentzuordnungstabelle für alle Prozesse. Es enthält auch eine Liste der freien Speicherblöcke sowie deren Größe, Segmentnummern und Speicherplätze im Hauptspeicher oder im virtuellen Speicher.

Was ist dynamisches Laden?

Das dynamische 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. Das dynamische Laden bietet auch eine bessere Speicherplatznutzung.

Was ist dynamische Verknüpfung?

Das Verknüpfen ist eine Methode, mit der das Betriebssystem verschiedene Codemodule und Daten in einer einzigen ausführbaren Datei sammeln und zusammenführen kann. Die Datei kann in den Speicher geladen und ausgeführt werden. Das Betriebssystem kann Bibliotheken auf Systemebene mit einem Programm verknüpfen, das die Bibliotheken beim Laden 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
Das statische 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 ein externes Modul oder eine Programmabhängigkeit erforderlich ist. In einem dynamisch geladenen Programm werden Referenzen bereitgestellt und das Laden erfolgt zum Zeitpunkt der Ausführung.
Beim Laden 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
Die statische Verknüpfung wird verwendet, um alle anderen Module, die von einem Programm benötigt werden, zu einem einzigen ausführbaren Code zu kombinieren. Dies hilft dem Betriebssystem, Laufzeitabhängigkeiten zu vermeiden. Wenn eine dynamische Verknüpfung 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 werden der Computerspeicher gesteuert und koordiniert, wobei verschiedenen laufenden Programmen Teile zugewiesen werden, die als Blöcke bezeichnet werden, um die Gesamtleistung des Systems zu optimieren.
  • Hier können Sie überprüfen, wie viel Speicher Prozessen zugewiesen werden muss, die entscheiden, welcher Prozessor zu welchem ​​Zeitpunkt Speicher erhalten soll.
  • Bei der einzelnen zusammenhängenden Zuordnung 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 Zuordnung unterteilt den Primärspeicher in verschiedene Speicherpartitionen, bei denen es sich hauptsächlich um zusammenhängende Speicherbereiche handelt
  • Die Paged Memory Management-Methode unterteilt den Hauptspeicher des Computers in Einheiten mit fester Größe, die als Seitenrahmen bezeichnet werden
  • Segmentierter Speicher ist die einzige Speicherverwaltungsmethode, die dem Benutzerprogramm keinen linearen und zusammenhängenden Adressraum bietet.
  • Das Austauschen ist eine Methode, bei der der Prozess vorübergehend vom Hauptspeicher in den Sicherungsspeicher verschoben werden soll. Es wird später zur weiteren Ausführung in den Speicher zurückgebracht.
  • Die Speicherzuweisung ist ein Prozess, bei dem Computerprogrammen Speicher oder Speicherplatz zugewiesen wird.
  • Paging ist ein Speichermechanismus, mit dem das Betriebssystem Prozesse in Form von Seiten aus dem Sekundärspeicher in den Hauptspeicher abrufen kann.
  • Fragmentierung bezieht sich auf den Zustand einer Festplatte, in dem Dateien in auf der Festplatte verstreute Teile unterteilt sind.
  • Die Segmentierungsmethode funktioniert fast ähnlich wie das Paging. Der einzige Unterschied zwischen den beiden besteht darin, dass Segmente eine variable Länge haben, während bei der Paging-Methode die Seiten immer eine feste Größe haben.
  • Das dynamische 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 Codemodule und Daten in einer einzigen ausführbaren Datei sammeln und zusammenführen kann.