Virtueller Speicher
Im Computer, virtueller Speicher, oder Virtueller Speicher[b] ist ein Speicherverwaltung Technik, die eine "idealisierte Abstraktion der Speicherressourcen bietet, die tatsächlich auf einer bestimmten Maschine verfügbar sind"[3] Dies "schafft die Illusion für Benutzer eines sehr großen (Haupt-) Speichers".[4]
Die Computer BetriebssystemVerwenden einer Kombination aus Hardware und Software, Karten Speicheradressen verwendet von einem Programm genannt Virtuelle Adressen, hinein physische Adressen in Computerspeicher. Hauptspeicher, wie durch einen Prozess oder eine Aufgabe ersichtlich, als zusammenhängender erscheint Adressraum oder Sammlung von zusammenhängendem Zusammenhang Segmente. Das Betriebssystem verwaltet Virtuelle Adressräume und die Zuordnung des realen Speichers zum virtuellen Speicher. Adressübersetzungshardware in der CPU, die häufig als als bezeichnet wird Speicherverwaltungseinheit (MMU) übersetzt automatisch virtuelle Adressen in physische Adressen. Die Software innerhalb des Betriebssystems kann diese Funktionen erweitern und z. B. nutzen. Festplattenspeicher, um einen virtuellen Adressraum bereitzustellen, der die Kapazität des realen Speichers überschreiten kann und damit mehr Speicher referenziert, als physikalisch im Computer vorhanden ist.
Zu den primären Vorteilen des virtuellen Speichers gehören die Befreiung von Anwendungen von der Verwaltung eines gemeinsam genutzten Speicherplatzes und der Fähigkeit, Speicher zu teilen, die von verwendet werden, nach Bibliotheken zwischen Prozessen, erhöhter Sicherheit aufgrund von Speicherisolation und konzeptionell mehr Speicher als physikalisch verfügbar sein kann, wobei die Technik von verwendet wird Paging oder Segmentierung.
Eigenschaften
Der virtuelle Speicher erleichtert die Anwendungsprogrammierung durch Versteck Zersplitterung des physischen Gedächtnisses; Durch Delegieren des Kernels die Belastung der Verwaltung der Speicherhierarchie (Beseitigen Sie die Notwendigkeit des Programms Overlays ausdrücklich); und wenn jeder Prozess in seinem eigenen speziellen Adressraum ausgeführt wird, indem die Notwendigkeit vermieden wird Umzug Programmcode oder auf Speicher mit dem auf Speicher zugreifen relative Adressierung.
Speichervirtualisierung kann als Verallgemeinerung des Konzepts des virtuellen Gedächtnisses angesehen werden.
Verwendungszweck
Virtueller Gedächtnis ist ein wesentlicher Bestandteil eines modernen Rechnerarchitektur; Implementierungen erfordern normalerweise Hardwareunterstützung, normalerweise in Form von a Speicherverwaltungseinheit in das eingebaut Zentralprozessor. Zwar nicht notwendig, Emulatoren und virtuelle Maschinen kann den Hardware -Support verwenden, um die Leistung ihrer virtuellen Speicherimplementierungen zu erhöhen.[5] Ältere Betriebssysteme wie die für die Mainframes der 1960er Jahre und diejenigen für PCs der frühen bis Mitte der 1980er Jahre (z. B.,,, DOS),[6] im Allgemeinen keine virtuelle Speicherfunktionalität haben,[zweifelhaft ] Zu den bemerkenswerten Ausnahmen für Mainframes der 1960er Jahre gehören jedoch::
- das Atlas Supervisor für die Atlas
- Das Multiprogrammierungssystem für die Electrologica x8 (Software -basierter virtueller Speicher ohne Hardwareunterstützung)
- MCP für die Burroughs B5000
- MTS, TSS/360 und CP/CMS für die IBM System/360 Modell 67
- Mehrheit für die GE 645
- Das Zeit teilen Betriebssystem für die RCA -Spektren 70/46
In den 1960er und frühen 70er Jahren war der Computerspeicher sehr teuer. Die Einführung des virtuellen Speichers bietet Softwaresystemen mit großen Speicheranforderungen, auf Computern mit weniger realem Speicher auszuführen. Die Einsparungen von diesem sorgten für einen starken Anreiz, für alle Systeme auf den virtuellen Speicher zu wechseln. Die zusätzliche Fähigkeit, virtuelle Adressräume bereitzustellen, fügte ein weiteres Maß an Sicherheit und Zuverlässigkeit hinzu, wodurch das virtuelle Speicher für den Markt noch attraktiver wurde.
Die meisten modernen Betriebssysteme, die den virtuellen Speicher unterstützen Prozess in seiner eigenen engagierten Adressraum. Jedes Programm scheint somit einen alleinigen Zugriff auf den virtuellen Speicher zu haben. Einige ältere Betriebssysteme (wie z. OS/VS1 und OS/VS2 SVS) und sogar moderne (wie z. Ibm i) sind Einzeladressraum Betriebssysteme Dadurch werden alle Prozesse in einem einzigen Adressraum ausgeführt, der aus virtualisiertem Speicher besteht.
Eingebettete Systeme und andere spezielle Computersysteme, die sehr schnelle und/oder sehr konsistente Reaktionszeiten erfordern Determinismus; Virtuelle Speichersysteme auslösen unvorhersehbar Fallen Dies kann unerwünschte und unvorhersehbare Verzögerungen als Reaktion auf die Eingabe erzeugen, insbesondere wenn die Falle aus dem Sekundärspeicher in den Hauptspeicher gelesen werden muss. Die Hardware, um virtuelle Adressen in physische Adressen zu übersetzen, erfordert in der Regel einen signifikanten Chip -Bereich zum Implementieren, und nicht alle Chips, die in eingebetteten Systemen verwendet werden, umfassen diese Hardware. Dies ist ein weiterer Grund, warum einige dieser Systeme keinen virtuellen Speicher verwenden.
Geschichte
In den 1940er und 1950er Jahren mussten alle größeren Programme Logik für die Verwaltung der Primär- und Sekundärspeicherung enthalten, wie z. Überlagerung. Der virtuelle Speicher wurde daher nicht nur eingeführt, um den primären Speicher zu erweitern, sondern eine solche Erweiterung so einfach wie möglich für Programmierer zu machen.[7] Etwas erlauben Multiprogrammierung und Multitasking, viele frühe Systeme teilten den Speicher zwischen mehreren Programmen ohne virtuellen Speicher, wie zum Beispiel frühe Modelle der PDP-10 über Register.
Eine Behauptung, dass das Konzept des virtuellen Gedächtnisses zuerst von Deutsch entwickelt wurde Physiker Fritz-Rudolf Güntsch am Technische Universität Berlin 1956 in seiner Doktorarbeit, Logisches Design eines digitalen Computers mit mehreren asynchronen rotierenden Drums und automatischer Hochgeschwindigkeitsspeicherbetrieb[8][9] Steht nicht auf sorgfältige Prüfung auf. Der von Güntsch vorgeschlagene Computer (aber nie gebaut) hatte einen Adressraum von 105 Wörter, die genau auf die 10 kartiert wurden5 Worte der Trommeln, d.h. Die Adressen waren echte Adressen und es gab keine Form der indirekten Zuordnung, ein Schlüsselmerkmal des virtuellen Speichers. Was Grütsch erfinderte, war eine Form von Cache-SpeicherDa sein Hochgeschwindigkeitsspeicher eine Kopie einiger Codeblöcke oder Daten aus den Trommeln enthalten sollte. In der Tat schrieb er (wie in der Übersetzung zitiert[10]): „Der Programmierer muss die Existenz des primären Gedächtnisses nicht respektieren (er muss nicht einmal wissen, dass es existiert), denn es gibt nur eine Art von Adressen (sic) mit welcher programmieren kann, als gäbe es nur einen Speicher. “ Dies ist genau die Situation in Computern mit Cache -Speicher, eines der frühesten kommerziellen Beispiele, die das IBM -System/360 Modell 85 waren.[11] Im Modell 85 waren alle Adressen reale Adressen, die sich auf den Hauptkerngeschäft beziehen. Ein Halbleiter -Cache -Store, der für den Benutzer unsichtbar ist, enthielt den Inhalt der Teile des Hauptgeschäfts, die vom aktuell ausführenden Programm verwendet werden. Dies ist genau analog zu Güntschs System, das als Mittel zur Verbesserung der Leistung konzipiert ist, anstatt die Probleme mit der Mehrprogrammierung zu lösen.
Das erste echte virtuelle Speichersystem war das implementierte am implementierten Universität von Manchester So erstellen Sie ein einstufiges Speichersystem[12] Im Rahmen des Atlas Computer. Es wurde a Paging Mechanismus, um die virtuellen Adressen zu dem Programmierer zu dem realen Speicher zuzuordnen, der aus 16.384 Primärwörtern bestand Kerngedächtnis mit zusätzlichen 98.304 Sekundärwörtern Drum -Speicher.[13] Der erste Atlas wurde 1962 in Auftrag gegeben, aber bis 1959 wurden arbeitende Prototypen von Paging entwickelt.[7]: 2[14][15] 1961 die Burroughs Corporation Unabhängig voneinander den ersten kommerziellen Computer mit virtuellem Speicher veröffentlicht, die B5000, mit Segmentierung eher als paging.[16][17]
Bevor der virtuelle Speicher in Mainstream -Betriebssystemen implementiert werden konnte, mussten viele Probleme behoben werden. Dynamische Adressübersetzung erforderte teure und schwer zu bauen spezialisierte Hardware. Die ersten Implementierungen verlangsamten den Zugriff auf den Speicher geringfügig.[7] Es gab Sorgen, dass neue systemweite Algorithmen, die Sekundärspeicher verwenden, weniger effektiv wären als bisher verwendete anwendungsspezifische Algorithmen. Bis 1969 war die Debatte über den virtuellen Speicher für kommerzielle Computer vorbei;[7] ein IBM Forschungsteam angeführt von David Sayre zeigten, dass ihr virtuelles Speicher -Overlay -System konsequent besser funktionierte als die besten manuell kontrollierten Systeme.[18] In den 1970er Jahren lieferte die IBM 370-Serie ihre virtuellen Storage-basierten Betriebssysteme für Unternehmensbenutzer, um mehrere ältere Systeme in weniger, leistungsfähigere Mainframes zu migrieren, die den Preis/die Leistung verbessert hatten. Der Erste Minicomputer Virtuelle Erinnerung einzuführen war der Norweger Nord-1; In den 1970er Jahren implementierten andere Minicomputer virtuelles Gedächtnis, insbesondere Vax Modelle laufen VMs.
Der virtuelle Gedächtnis wurde in die eingeführt x86 Architektur mit dem Sicherheitsmodus des Intel 80286 Prozessor, aber sein Segment -Tausch -Technik skalierte schlecht auf größere Segmentgrößen. Das Intel 80386 führte die Paging -Unterstützung unter den vorhandenen vor Segmentierung Ebene und Aktivierung der Seitenfehlerausnahme von Ketten mit anderen Ausnahmen ohne Doppelfehler. Das Ladesegmentdeskriptoren war jedoch ein teurer Betrieb, der dazu führte, dass Betriebssystemdesigner ausschließlich auf Paging und nicht auf eine Kombination aus Paging und Segmentierung angewiesen waren.
Virtuelles Gedächtnis
Nahezu alle aktuellen Implementierungen der virtuellen Speicher teilen a Virtueller Adressraum hinein Seiten, Blöcke von zusammenhängenden virtuellen Speicheradressen. Seiten über zeitgenössisch[c] Systeme sind normalerweise mindestens 4 Kilobytes in Größe; Systeme mit großen virtuellen Adressbereichen oder Mengen des realen Speichers verwenden im Allgemeinen größere Seitengrößen.[19]
Seitentabellen
Seitentabellen werden verwendet, um die von der Anwendung angezeigten virtuellen Adressen zu übersetzen physische Adressen von der Hardware verwendet, um Anweisungen zu verarbeiten;[20] Eine solche Hardware, die mit dieser spezifischen Übersetzung umgeht, wird oft als die bezeichnet Speicherverwaltungseinheit. Jeder Eintrag in der Seitentabelle enthält ein Flag, das angibt, ob sich die entsprechende Seite im realen Speicher befindet oder nicht. Wenn es sich im realen Speicher befindet, enthält der Eintrag von Seitentabellen die reale Speicheradresse, an der die Seite gespeichert ist. Wenn eine Referenz auf eine Seite von der Hardware erfolgt, wenn der Eintrag der Seite Tabelle für die Seite angibt, dass sie sich derzeit nicht im realen Speicher befindet, erhöht die Hardware a Seitenfehler Ausnahme, auf die Paging -Supervisor -Komponente des Betriebssystem.
Systeme können eine Seitentabelle für das gesamte System, separate Seitentabellen für jede Anwendung und jedes Segment, einen Baum mit Seitentabellen für große Segmente oder eine Kombination davon haben. Wenn es nur eine Seitentabelle gibt, verschiedene Anwendungen gleichzeitig laufen Verwenden Sie verschiedene Teile eines einzelnen Bereichs virtueller Adressen. Wenn mehrere Seiten- oder Segmenttabellen vorhanden sind, gibt es mehrere virtuelle Adressräume und gleichzeitige Anwendungen mit separaten Seitentabellen, die zu verschiedenen realen Adressen umgeleitet werden.
Einige frühere Systeme mit kleineren realen Speichergrößen, wie die SDS 940, Gebraucht Seitenregister Anstelle von Seitentabellen im Speicher für Adressübersetzung.
Paging Supervisor
Dieser Teil des Betriebssystems erstellt und verwaltet Seitentabellen. Wenn die Hardware eine Seitungsfehlerausnahme auswirkt, kann der Paging -Supervisor eine von mehreren Aktionen ausführen:
- Wenn die virtuelle Adresse ungültig ist, signalisiert der Paging Supervisor einen Fehler. Abhängig vom Betriebssystem kann das Betriebssystem eine Ausnahme in der Anwendung hervorrufen.
- Wenn die Seite nicht initialisiert ist, kann ein neuer Seitenrahmen zugewiesen und gelöscht werden.
- Wenn es einen gestohlenen Seitenrahmen gibt, der die gewünschte Seite enthält, wird dieser Seitenrahmen wiederverwendet.
- Wenn der Fehler auf einen Schreibversuch auf einer Kopie-On-Read-Seite zurückzuführen ist, wird ein kostenloser Seitenrahmen und der Inhalt der alten Seitenkopien zugewiesen.
- Wenn die virtuelle Adresse eine gültige Seite in einer Speicher-Mapping-Datei oder einer Paging-Datei ist, wird ein kostenloser Seitenrahmen zugewiesen und die Seite gelesen.
In den meisten Fällen wird ein Update für die Seitentabelle vorhanden sein, gefolgt von der Reinigung des Übersetzungs -Lookaside -Puffers (TLB), und das System startet die Anweisung, die die Ausnahme verursacht.
Wenn bereits der gesamte physische Speicher verwendet wird, muss der Paging-Supervisor eine Seite im Primärspeicher freigeben, um die ausgetauschte Seite zu halten. Der Vorgesetzte verwendet eine von einer Vielzahl von einer Vielzahl von Seitenersatzalgorithmen wie zum Beispiel zuletzt benutzt Um zu bestimmen, welche Seite frei ist.
Pages Pages
Betriebssysteme haben Speicherbereiche, die sind festgesteckt (Nie gegen Sekundärspeicher ausgetauscht). Andere verwendete Begriffe sind gesperrt, Fest, oder verdrahtet Seiten. Zum Beispiel, unterbrechen Mechanismen stützen sich auf eine Reihe von Zeigern auf ihre Handler, wie z. I/o Fertigstellung und Seitenfehler. Wenn die Seiten, die diese Zeiger oder den von ihnen aufgerufenen Code enthalten, einlebig wären, würde die Unterbrechung der Unterbrechung weitaus komplexer und zeitaufwändiger werden, insbesondere bei Seitenstörungen. Daher ist ein Teil der Seitentabellenstrukturen nicht zulehabel.
Einige Seiten können für kurze Zeiträume festgehalten werden, andere können für lange Zeiträume festgehalten werden, und noch andere müssen dauerhaft festgehalten werden. Zum Beispiel:
- Der Paging Supervisor Code und die Treiber für Sekundärspeichergeräte, auf denen Seiten wohnen, müssen dauerhaft festgehalten werden, da sonst Paging nicht einmal funktionieren würde, da der erforderliche Code nicht verfügbar wäre.
- Timing-abhängige Komponenten können festgehalten werden, um Verzögerungen bei variablen Paging zu vermeiden.
- Datenpuffer auf die direkt durch periphere Geräte zugegriffen werden, die verwendet werden direkter Speicherzugriff oder E/A -Kanäle muss in festgesteckten Seiten wohnen, während der E/A -Betrieb im Gange ist, weil solche Geräte und die Busse worauf sie beigefügt sind, erwarten Sie Datenpuffer, die sich an physischen Speicheradressen befinden. unabhängig davon, ob der Bus eine hat Speicherverwaltungseinheit für I/O, Transfers können nicht gestoppt werden, wenn ein Seitenfehler auftritt, und dann neu gestartet, wenn der Seitenfehler verarbeitet wurde.[warum?]
In den Betriebssystemen von IBM für System/370 und Nachfolgesysteme ist der Begriff "fest", und solche Seiten können langfristig festgelegt oder kurzfristig festgelegt oder nicht fixiert sein (d. H. Lebbar). Systemkontrollstrukturen sind häufig langfristig fest (gemessen in der Wandverrückungszeit, d. H. Die Zeit, die in Sekunden gemessen wird, anstatt in Fraktionen von einer Sekunde gemessen), während E/A-Puffer normalerweise kurzfristig fixiert sind (normalerweise in signifikant gemessen Weniger als Wandverkaufszeit, möglicherweise für zehn Millisekunden). In der Tat verfügt das Betriebssystem über eine spezielle Einrichtung, um diese kurzfristigen festen Datenpuffer zu "schnell zu reparieren" (fixiert, die durchgeführt werden, ohne auf ein zeitaufwändiges zurückgreifen zu können Aufrufanweisung).
Mehrheit verwendete den Begriff "verdrahtet". OpenVMS und Fenster Beziehen Sie sich auf Seiten, die vorübergehend nicht pagbar gemacht wurden (wie bei E/A -Puffern) als "gesperrt" und einfach "nicht pagbar" für diejenigen, die niemals zuletzt sind. Das Einzel -Unix -Spezifikation Verwendet auch den Begriff "gesperrt" in der Spezifikation für mlock()
, ebenso wie das mlock()
Mannseiten Auf viele Unix-artig Systeme.
Virtual-Real-Operation
Im OS/VS1 und ähnliche Oses, einige Teile des Systemspeichers werden im "Virtual-Real" -Modus "V = R" bezeichnet. In diesem Modus entspricht jede virtuelle Adresse derselben realen Adresse. Dieser Modus wird für verwendet unterbrechen Mechanismen für den Paging-Supervisor und die Seitentabellen in älteren Systemen und für Anwendungsprogramme mit nicht standardmäßigem E/A-Management. Zum Beispiel hat IBMs Z/OS 3 Modi (virtuell-virtuell, virtuell-real und virtuell fixiert).[21][Seite benötigt]
Prügel
Wann Paging und Seite stehlen werden verwendet, ein Problem genannt ""Prügel"Kann auftreten, bei dem der Computer ungeeignet viel Zeit damit verbringt, Seiten in und von einem Hintergrund zu übertragen, wodurch die nützliche Arbeit verlangsamt wird. Ein Aufgabe Workingset ist der Mindestsatz von Seiten, die sich im Speicher befinden sollten, damit es nützliche Fortschritte erzielt. Thrashing tritt auf, wenn nicht genügend Speicher zur Verfügung steht, um die Arbeitssätze aller aktiven Programme zu speichern. Das Hinzufügen von realem Speicher ist die einfachste Antwort, aber die Verbesserung des Anwendungsdesigns, der Planung und des Speicherverbrauchs kann helfen. Eine andere Lösung besteht darin, die Anzahl der aktiven Aufgaben auf dem System zu verringern. Dies reduziert die Nachfrage auf das reale Speicher, indem das gesamte Arbeitssatz von einem oder mehreren Prozessen ausgetauscht wird.
Segmentierter virtueller Speicher
Einige Systeme wie die Burroughs B5500,[22] verwenden Segmentierung Anstelle von Paging, indem virtuelle Adressräume in Segmente variabler Länge unterteilt werden. Eine virtuelle Adresse hier besteht aus einer Segmentnummer und einem Offset innerhalb des Segments. Das Intel 80286 Unterstützt ein ähnliches Segmentierungsschema als Option, wird jedoch selten verwendet. Segmentierung und Paging können zusammen verwendet werden, indem jedes Segment in Seiten unterteilt wird. Systeme mit dieser Speicherstruktur, wie z. Mehrheit und IBM System/38, sind in der Regel Paging-vorgehende Segmentierung, die den Speicherschutz bieten.[23][24][25]
In dem Intel 80386 und später IA-32 Prozessoren, die Segmente wohnen in a 32-Bit linearer, ausgelasteter Adressraum. Segmente können in diesen Raum in und aus bewegt werden; Seiten dort können "Seite" in und aus dem Hauptspeicher und aus dem Hauptspeicher und zwei Ebenen des virtuellen Speichers bereitstellen. Nur wenige Betriebssysteme tun dies, sondern verwenden nur Paging. Frühe, nicht hardwareunterstützte x86 Virtualisierung Lösungen kombiniert Paging und Segmentierung, da X86 Paging nur zwei Schutzdomänen bietet, während ein VMM-, Gast -Betriebssystem oder ein Gästeantragsstack drei benötigt.[26]: 22 Der Unterschied zwischen Paging- und Segmentierungssystemen betrifft nicht nur die Speicherteilung. Die Segmentierung ist für Benutzerprozesse als Teil der Speichermodellsemantik sichtbar. Daher wird anstelle des Gedächtnisses, der wie ein einzelner großer Raum aussieht, in mehrere Räume strukturiert.
Dieser Unterschied hat wichtige Konsequenzen; Ein Segment ist keine Seite mit variabler Länge oder einfacher Möglichkeit, den Adressraum zu verlängern. Segmentierung, die ein einstufiges Speichermodell bereitstellen kann, bei dem keine Unterscheidung zwischen Prozessspeicher und Dateisystem besteht, besteht nur aus einer Liste von Segmenten (Dateien), die in den potenziellen Adressraum des Prozesses zugeordnet sind.[27]
Dies ist nicht dasselbe wie die Mechanismen, die durch Anrufe wie z. MMAP und Win32's mapViewoffile, da Inter-File-Zeiger beim Zuordnen von Dateien nicht an semi-erbitären Orten funktionieren. In Multics wird eine Datei (oder ein Segment aus einer Mehrsegmentdatei) in ein Segment im Adressraum zugeordnet, sodass Dateien immer an einer Segmentgrenze abgebildet werden. Der Verknüpfungsabschnitt einer Datei kann Zeiger enthalten, für die der Versuch, den Zeiger in ein Register zu laden, oder eine indirekte Referenz durch ihn zu einer Falle verursacht. Der ungelöste Zeiger enthält einen Hinweis auf den Namen des Segments, auf den sich der Zeiger bezieht, und einen Versatz innerhalb des Segments; Der Handler für die Trap ändert das Segment in den Adressraum, legt die Segmentnummer in den Zeiger ein, ändert das Tag-Feld im Zeiger, sodass er keine Falle mehr verursacht und zu dem Code zurückkehrt Die Anweisung, die die Falle verursachte.[28] Dies beseitigt die Notwendigkeit eines Linker vollständig[7] und funktioniert, wenn verschiedene Prozesse dieselbe Datei an verschiedenen Stellen in ihren privaten Adressräumen abbilden.[29]
Adressraumtausch
Einige Betriebssysteme sorgen für den gesamten Austausch AdressräumeZusätzlich zu den Einrichtungen für Paging und Segmentierung. In diesem Fall schreibt das Betriebssystem diese Seiten und Segmente, die derzeit in realem Speicher sind, um Dateien auszutauschen. In einem Swap-In liest das Betriebssystem die Daten aus den Swap-Dateien zurück, liest jedoch nicht automatisch Seiten zurück, die zum Zeitpunkt des Swap-Out-Betriebs ausgeführt wurden.
IBM MVS, aus OS/VS2 Release 2 durch Z/OSsorgt für das Markieren eines Adressraums als unerschütterlich; Dadurch wird keine Seiten im Adressraum festgelegt. Dies kann für die Dauer eines Jobs durchgeführt werden[30] Hauptprogramm in der Tabelle Program Properties mit einer ungehörbaren Flagge. Darüber hinaus kann ein privilegierter Code einen Adressraum vorübergehend mit einem Sysevent nicht verfolgt werden Aufrufanweisung (SVC); Bestimmte Änderungen[31] In den Adressspace -Eigenschaften müssen das Betriebssystem es ausgetauscht und dann mit Sysevent Transwap wieder eintauschen.[32]
Swapping erfordert nicht unbedingt die Speicherverwaltungshardware, wenn beispielsweise mehrere Jobs in und aus demselben Speicherbereich ausgetauscht werden.
Siehe auch
- CPU -Design
- Seite (Computing)
- Cache -Algorithmen
- Speicherzuweisung
- Speicherverwaltung (Betriebssysteme)
- Sicherheitsmodus, ein x86 Modus, der einen virtuellen Speicher ermöglicht.
- Cuda steckte den Speicher fest
- Heterogene Systemarchitektur, eine Reihe von Spezifikationen, die den Kartenspeicher von RAM und Grafik vereinen sollen
- Speichervirtualisierung
Anmerkungen
- ^ Frühe Systeme verwendet Schlagzeug; zeitgenössische Systeme verwenden Scheiben oder Festkörpergedächtnis
- ^ IBM verwendet den Begriff Virtueller Speicher auf Mainframe -Betriebssystemen. Diese Nutzung läuft von TSS[1] auf der 360/67 durch Z/OS[2] an Z/Architektur.
- ^ IBM Dos/vs, OS/VS1 und Dos/vs Nur 2 KB -Seiten unterstützt.
Verweise
- ^ "Systemkomponenten: Dynamischer Umzug" (PDF). System/360 Model 67 Time Sharing System Vorläufige technische Zusammenfassung (PDF). IBM. 1966. p. 21. C20-1647-0.
- ^ "BCP (Basiskontrollprogramm)" (PDF). Z/OS Version 2 Release 4 Z/OS Einführung und Release -Handbuch (PDF). IBM. 22. September 2020. p. 3. GA32-0887-40.
- ^ Bhattacharjee, Abhishek; Lustig, Daniel (2017). Architektur- und Betriebssystemunterstützung für den virtuellen Speicher. Morgan & Claypool Publishers. p. 1. ISBN 9781627056021. Abgerufen 16. Oktober 2017.
- ^ Haldar, Sibsankar; Aravind, Alex Alagarsamy (2010). Betriebssysteme. Pearson Education India. p. 269. ISBN 978-8131730225. Abgerufen 16. Oktober 2017.
- ^ "AMD-V ™ verschachteltes Paging" (PDF). AMD. Abgerufen 28. April 2015.
- ^ "Windows Version History". Microsoft. 23. September 2011. archiviert von das Original am 8. Januar 2015. Abgerufen 9. März 2015.
- ^ a b c d e Denning, Peter (1997). "Bevor das Gedächtnis virtuell war" (PDF). Am Anfang: Erinnerungen an Software -Pioniere.
- ^ Jessen, Elke (2004). "Ursprung des Virtual Memory Concept". IEEE Annals of the History of Computing. 26 (4): 71–72.
- ^ Jessen, E. (1996). "Die Entwickung des Virtuellen Speichers". Informatik-Spektrum (auf Deutsch). 19 (4): 216–219. doi:10.1007/s002870050034. ISSN 0170-6012. S2CID 11514875.
- ^ Jessen (2004).
- ^ Liptay, J.S. (1968), "Strukturelle Aspekte des Systems/360 Modell 85 - The Cache", IBM Systems Journal, 7: 15–21, doi:10.1147/sj.71.0015
- ^ Kilburn, T.; Edwards, D.B.G.; Lanigan, M. J.; Sumner, F. H. (1962), "Ein-Level-Speichersystem", IRE Trans EC-11 (2): 223–235, doi:10.1109/tec.1962.5219356
- ^ "Ferranti Atlas 1 & 2 - Systemarchitektur" (PDF). 12. November 2009.
- ^ R. J. Creasy ","Der Ursprung des VM/370-Zeit-Sharing-Systems",", IBM Journal of Research & Development, Vol. 25, Nr. 5 (September 1981), p. 486
- ^ "Der Atlas". Archiviert von das Original am 6. Oktober 2014.
- ^ Joyner, Ian. "Burroughs". Archiviert von das Original am 10. Mai 2017.
- ^ Cragon, Harvey G. (1996). Speichersysteme und Pipeline -Prozessoren. Jones und Bartlett Publishers. p. 113. ISBN 978-0-86720-474-2.
- ^ Sayre, D. (1969). "Ist die automatische" Faltung "von Programmen effizient genug, um Handbuch zu verdrängen?". Kommunikation der ACM. 12 (12): 656–660. doi:10.1145/363626.363629. S2CID 15655353.
- ^ Quintero, Dino; et al. (1. Mai 2013). IBM Power Systems Performance Guide: Implementierung und Optimierung. IBM Corporation. p. 138. ISBN 978-0738437668. Abgerufen 18. Juli 2017.
- ^ Sharma, DP (2009). Grundlage für Betriebssysteme. Excel Books India. p. 62. ISBN 978-81-7446-626-6. Abgerufen 18. Juli 2017.
- ^ "Z/OS Basic Skills Information Center: Z/OS -Konzepte" (PDF).
- ^ Burroughs (1964). Burroughs B5500 Informationsverarbeitungssystem Referenzhandbuch (PDF). Burroughs Corporation. 1021326. Abgerufen 28. November 2013.
- ^ GE-645 Systemhandbuch (PDF). Januar 1968. S. 21–30. Abgerufen 25. Februar 2022.
- ^ Corbató, F.J.; Vyssotsky, V. A. "Einführung und Übersicht über das Mehrschichtsystem". Abgerufen 13. November 2007.
- ^ Glaser, Edward L.; Couleur, John F. & Oliver, G. A. "Systemdesign eines Computers für die Zeitfreigabeanwendungen".
- ^ "J. E. Smith, R. Uhlig (14. August 2005) Virtuelle Maschinen: Architekturen, Implementierungen und Anwendungen, Hotchips 17, Tutorial 1, Teil 2 " (PDF).
- ^ Bensoussan, André; Clingen, Charlest.; Daley, Robert C. (Mai 1972). "Die mehrfache virtuelle Erinnerung: Konzepte und Design". Kommunikation der ACM. 15 (5): 308–318. Citeseerx 10.1.1.10.6731. doi:10.1145/355602.361306. S2CID 6434322.
- ^ "Multics -Ausführungsumgebung". Multiders.org. Abgerufen 9. Oktober 2016.
- ^ Organick, Elliott I. (1972). Das Multics -System: Eine Untersuchung seiner Struktur. MIT Press. ISBN 978-0-262-15012-5.
- ^ Die wichtigste Voraussetzung ist, dass das Programm APF autorisiert wird.
- ^ z. B. Anfordern Sie die Verwendung des bevorzugten Speichers
- ^ "Steuertausch (nicht wap, okswap, transwap)". IBM Knowledge Center. Z/OS-MVS-Programmierung: Autorisierte Assembler-Dienste Referenz Set-WTO SA23-1375-00. 1990–2014. Abgerufen 9. Oktober 2016.
Weitere Lektüre
- Hennessy, John L.; und Patterson, David A.; Computerarchitektur, ein quantitativer Ansatz ( ISBN1-55860-724-2)
Externe Links
- Betriebssysteme: drei einfache Stückevon Remzi H. Arpaci-Dusseau und Andrea C. Arpaci-Dusseau. Arpaci-Dusseau Books, 2014. Relevante Kapitel: Adressräume Adressübersetzung Segmentierung Einführung in Paging Tlbs Erweiterte Seitentabellen Tausch: Mechanismen Tausch: Richtlinien
- "Time-Sharing-Supervisor-Programme" von Michael T. Alexander in Erweiterte Themen in der Systemprogrammierung, Seconience der University of Michigan Engineering 1970 (überarbeitet Mai 1971), vergleicht die Ansätze für Planungs- und Ressourcenzuweisungen, einschließlich virtueller Speicher und Paging, die in vier Mainframe -Betriebssystemen verwendet werden: CP-67, TSS/360, MTS, und Mehrheit.
- Linuxmm: Linux -Speicherverwaltung.
- Geburt des Linux -Kernels, Mailinglisten -Diskussion.
- Der Virtual-Memory-Manager in Windows NT, Randy Kath, Microsoft Developer Network Technology Group, 12. Dezember 1992 Bei der Wayback -Maschine (Archiviert 22. Juni 2010)