Der Zweck der Speicherverwaltung besteht darin, die Hauptspeicherkapazität zu erweitern und die Effizienz der Hauptspeichernutzung zu verbessern. Speicherverwaltung bezieht sich auf die Verwaltungstechnologie des Hauptspeichers. Sie dient hauptsächlich der effizienten Nutzung des Hauptspeichers und der Erweiterung der Hauptspeicherkapazität durch eine angemessene Zuweisung und Verwaltung des Hauptspeichers. Zu den Hauptfunktionen der Speicherverwaltung gehören die Zuweisung und Rückgewinnung von Hauptspeicherplatz, die Verbesserung der Hauptspeicherauslastung, die Erweiterung des Hauptspeichers und der wirksame Schutz von Hauptspeicherinformationen.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.
Der Zweck der Speicherverwaltung besteht darin, die Hauptspeicherkapazität zu erweitern und die Effizienz der Hauptspeichernutzung zu verbessern.
Speicherverwaltung ist eine Verwaltungstechnologie für den Hauptspeicher. Ihr Hauptzweck besteht darin, eine effiziente Nutzung des Hauptspeichers zu erreichen und die Hauptspeicherkapazität durch rationelle Zuweisung und Verwaltung des Hauptspeichers zu erweitern.
Der Gegenstand der Speicherverwaltung ist der Hauptspeicher. 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 usw segmentiertes Paging und virtuelles Speichermanagement.
Partitionsspeicher
Es gibt drei verschiedene Möglichkeiten, den Partitionsspeicher zu verwalten: statische Partition, variable Partition und verschiebbare Partition.
Statische Partition
Die Speicherverwaltung der statischen Partition besteht darin, den zuweisbaren Hauptspeicherplatz im Voraus in mehrere aufeinanderfolgende Bereiche aufzuteilen. 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.
Seitenspeicher
Paging-Speicherverwaltung besteht darin, den logischen Adressraum eines Prozesses in mehrere gleich große Abschnitte zu unterteilen, die als Seiten oder Seiten bezeichnet werden, und jede Seite beginnend bei 0 zu nummerieren, z. B. Seite 0, Seite 1 usw. 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 ist 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.
Segmentseitenspeicher
Das Grundprinzip des Segmentseitensystems ist eine Kombination aus der grundlegenden segmentierten Speicherverwaltungsmethode und der grundlegenden Paging-Speicherverwaltungsmethode. Das heißt, das Benutzerprogramm wird zuerst in mehrere Segmente unterteilt und dann aufgeteilt Teilen Sie jedes Segment in mehrere Seiten 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, das Programm weist während seines Betriebs häufig die Merkmale auf, in einem bestimmten lokalen Bereich ausgeführt zu werden. 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 im externen Speicher abgelegt, wenn sie vorübergehend nicht verwendet werden. 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.
Weitere Informationen zu diesem Thema finden Sie in der Spalte „FAQ“!
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!