Der Zweck der Speicherverwaltung besteht darin, Benutzern die Arbeit zu erleichtern und die Speichernutzung zu verbessern. Das Ziel der Speicherverwaltung ist der Hauptspeicher, auch Speicher genannt. Zu seinen Hauptfunktionen gehören die Zuweisung und Wiederverwendung von Hauptspeicherplatz, die Verbesserung der Hauptspeichernutzung und die Erweiterung des Hauptspeichers Hauptspeicherinformationen werden effektiv geschützt.
Der Zweck der Speicherverwaltung besteht darin, Benutzern die Arbeit zu erleichtern und die Speichernutzung zu verbessern.
Der Gegenstand der Speicherverwaltung ist der Hauptspeicher, auch Arbeitsspeicher genannt. Zu seinen Hauptfunktionen gehören die Zuweisung und Rückgewinnung von Hauptspeicherplatz, die Verbesserung der Hauptspeicherauslastung, die Erweiterung des Hauptspeichers und der wirksame Schutz von Hauptspeicherinformationen.
Speicherverwaltungslösung
Der Hauptzweck der Speicherverwaltungslösung besteht darin, das Problem zu lösen, dass mehrere Benutzer den Hauptspeicher verwenden. Die Speicherverwaltungslösung umfasst hauptsächlich Partitionsspeicherverwaltung, Paging-Speicherverwaltung, segmentierte Speicherverwaltung und segmentierte Seiten Speicherverwaltung und virtuelle Speicherverwaltung.
Partitionsspeicher
Es gibt drei verschiedene Möglichkeiten, den Partitionsspeicher zu verwalten: statische Partition, variable Partition und verschiebbare Partition.
Statische Partition
Bei der statischen Partitionsspeicherverwaltung wird der zuweisbare Hauptspeicherplatz im Voraus in mehrere aufeinanderfolgende Bereiche aufgeteilt. Die Größe jedes Bereichs kann gleich oder unterschiedlich sein. Um die Zuordnung und Nutzung jeder Partition zu erklären, muss die Speicherverwaltung eine „Hauptspeicherzuordnungstabelle“ erstellen. Die Hauptspeicherzuordnungstabelle gibt die Startadresse und Länge jeder Partition an. Das Belegt-Flag-Bit in der Tabelle wird verwendet, um anzuzeigen, ob die Partition belegt ist. Wenn das Belegt-Flag-Bit „0“ ist, bedeutet dies, dass die Partition nicht belegt war besetzt. Wählen Sie bei der Zuweisung von Hauptspeicher immer die Partitionen mit dem Flag „0“ aus. Wenn eine Partition einem Job zugewiesen wird, geben Sie in der Spalte „Belegungsflag“ den Namen des Jobs ein, der die Partition belegt. Bei Verwendung der statischen Partitionsspeicherverwaltung ist die Auslastung des Hauptspeicherplatzes nicht hoch. [2]
Variable Partitionierung
Die variable Partitionierungsmethode besteht darin, die Partitionen entsprechend der Größe des Auftrags zu unterteilen. Wenn ein Job geladen werden soll, prüfen Sie, ob genügend Platz im Hauptspeicher vorhanden ist, basierend auf der vom Job benötigten Menge. Wenn vorhanden, teilen Sie eine Partition entsprechend der erforderlichen Menge auf und weisen Sie sie dem Job zu nicht, lassen Sie den Job auf Hauptspeicherplatz warten. Da die Größe der Partition entsprechend den tatsächlichen Anforderungen des Auftrags bestimmt wird und die Anzahl der Partitionen ebenfalls zufällig ist, kann die Verschwendung von Hauptspeicherplatz bei der Methode mit festen Partitionen überwunden werden.
Beim Laden und Evakuieren von Jobs wird der Hauptspeicherplatz in viele Partitionen aufgeteilt, einige Partitionen werden von Jobs belegt und einige Partitionen sind frei. Wenn ein neuer Job geladen werden muss, müssen Sie einen ausreichend großen freien Bereich finden und den Job in diesen Bereich laden. Wenn der gefundene freie Bereich größer ist als die Jobanforderungen, wird der ursprüngliche freie Bereich nach dem Laden des Jobs in zwei Teile geteilt . Ein Teil davon ist durch den Arbeitsplatz belegt; der andere Teil ist in einen kleineren freien Bereich unterteilt. Wenn eine Hauptreihe evakuiert wird und der zurückgegebene Bereich an andere freie Bereiche angrenzt, kann er zu einem größeren freien Bereich zusammengefasst werden, um das Laden großer Aufträge zu erleichtern.
Variabler Partitionsplanungsalgorithmus
1) Erster Anpassungsalgorithmus. Bei jeder Zuweisung wird die nicht zugewiesene Tabelle immer sequentiell durchsucht, bis der erste freie Bereich gefunden wird, der die Längenanforderung erfüllt. Teilen Sie den gefundenen nicht zugewiesenen Bereich auf, ein Teil davon ist dem Job zugewiesen und der andere Teil ist immer noch ein freier Bereich. Dieser Zuordnungsalgorithmus kann einen großen Raum in kleine Bereiche aufteilen, wodurch mehr Hauptspeicher-„Fragmente“ entstehen.
2) Bester Anpassungsalgorithmus. Wählen Sie aus dem freien Bereich die kleinste Partition aus, die den Auftragsanforderungen gerecht wird. Dadurch wird sichergestellt, dass kein größerer Bereich unterteilt wird, was es einfacher macht, große Aufträge beim Laden zu erfüllen. Bei Verwendung dieses Zuordnungsalgorithmus können die freien Bereiche stufenlos in aufsteigender Größe angeordnet werden. Beginnen Sie bei der Suche immer mit dem kleinsten Bereich, bis ein Bereich gefunden wird, der den Anforderungen entspricht.
3) Schlechtester Anpassungsalgorithmus. Wählen Sie den größten freien Bereich für den zu verwendenden Job aus, damit der verbleibende freie Bereich nicht zu klein wird. Dieser Algorithmus ist für mittlere und kleine Jobs von Vorteil. Bei Verwendung dieses Zuordnungsalgorithmus können die freien Bereiche stufenlos in absteigender Reihenfolge angeordnet werden und die Suche beginnt immer beim größten Bereich. Auf diese Weise muss die Tabelle auch neu angeordnet werden, wenn eine Partition wiederhergestellt wird.
Paging-Speicher
Paging-Speicherverwaltung besteht darin, den logischen Adressraum eines Prozesses in mehrere gleich große Teile, sogenannte Seiten oder Seiten, zu unterteilen und jede Seite beginnend bei 0 zu nummerieren, z. B. Seite 0, Seite 1, warten. Dementsprechend ist auch der Speicherplatz in mehrere Speicherblöcke mit der gleichen Größe wie die Seite unterteilt, sogenannte (physikalische) Blöcke oder Seitenrahmen, und diese sind ebenfalls nummeriert, z. B. 0#-Block, 1#-Block usw. Wenn einem Prozess Speicher zugewiesen wird, werden mehrere Seiten im Prozess in Blockeinheiten in mehrere physische Blöcke geladen, die möglicherweise nicht zusammenhängend sind. Da die letzte Seite des Prozesses oft nicht in ein Ganzes passt, entsteht eine unbrauchbare Fragmentierung, die als „In-Page-Fragmentierung“ bezeichnet wird.
Segmentierter Speicher
Bei der segmentierten Speicherverwaltungsmethode wird der Adressraum des Jobs in mehrere Segmente unterteilt, und jedes Segment definiert einen Satz logischer Informationen. Beispielsweise gibt es das Hauptprogrammsegment MAIN, das Unterprogrammsegment X, das Datensegment D, das Stapelsegment S usw. Jedes Segment hat seinen eigenen Namen. Der Einfachheit halber kann anstelle des Segmentnamens normalerweise eine Segmentnummer verwendet werden. Jedes Segment wird beginnend bei 0 adressiert und verwendet einen fortlaufenden Adressraum. Die Länge des Segments wird durch die Länge der entsprechenden logischen Informationsgruppe bestimmt, sodass die Länge jedes Segments unterschiedlich ist. Da der Adressraum des gesamten Jobs in mehrere Segmente unterteilt ist, ist er zweidimensional. Das heißt, seine logische Adresse besteht aus der Segmentnummer (Segmentname) und der Adresse innerhalb des Segments.
Segmentierter Seitenspeicher
Das Grundprinzip des segmentierten Seitensystems ist eine Kombination aus der grundlegenden segmentierten Speicherverwaltungsmethode und der grundlegenden Paging-Speicherverwaltungsmethode. Das heißt, das Benutzerprogramm wird zuerst in mehrere Segmente und dann in jedes Segment unterteilt Teilen Sie die Seite in mehrere Segmente auf und geben Sie jedem Segment einen Segmentnamen.
Virtueller Speicher
Wenn der Speicherplatzbedarf des Programms größer ist als der tatsächliche Speicherplatz, erschwert dies die Ausführung des Programms. Die virtuelle Speichertechnologie nutzt tatsächlichen Speicherplatz und einen relativ großen externen Speicherplatz, um einen virtuellen Speicherplatz zu bilden, der viel größer ist als der tatsächliche Speicherplatz. Das Programm wird in diesem virtuellen Speicherplatz ausgeführt. Die Grundlage für die Realisierung des virtuellen Speichers ist das Lokalitätsprinzip des Programms, das heißt, während des laufenden Prozesses spiegelt das Programm häufig die Merkmale der Ausführung innerhalb eines bestimmten lokalen Bereichs wider. Im Laufe der Zeit werden häufig dieselben Befehlssegmente und Daten ausgeführt (sogenannte zeitliche Lokalität). Im Raum werden häufig Anweisungen und Daten in einem bestimmten lokalen Speicherbereich ausgeführt (sogenannte räumliche Lokalität). Oder lass dich überhaupt nicht rennen. Der virtuelle Speicher unterteilt den von einem Programm benötigten Speicherplatz in mehrere Seiten oder Segmente. Die vom Programm verwendeten Seiten und Segmente werden im Speicher abgelegt und bei Nichtgebrauch vorübergehend im externen Speicher abgelegt. Wenn die Seiten und Segmente im externen Speicher verwendet werden, werden sie in den Speicher übertragen und umgekehrt an den externen Speicher gesendet. In den Speicher geladene Seiten oder Segmente können verstreut sein.
Das obige ist der detaillierte Inhalt vonWas ist der Zweck der Speicherverwaltung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!