Virtuelle Adresse

Vorgegebene Adresse

Adresse im Online-Wörterbuch: Adresse in einem virtuellen Speicher. - Eine virtuelle Startadresse ist nicht erforderlich. Das virtuelle Seitenformat entspricht immer dem physikalischen Seitenformat.

mw-headline" id="Geschichte">Geschichte[Bearbeiten | < Quelltext bearbeiten]

Schema-Image eines Virtual Memory Managements: links: rechts: Die virtuelle Speicherverwaltung (VMM) ist eine besondere Speicherverwaltung in einem Rechner. Der englische Begriff bedeutet eine Hypallokation - nicht der Managementprozess, sondern der zu verwaltete Datenspeicher ist virtual. Virtueller Gedächtnis ist der Adreßraum, den das Betriebsystem einem vom tatsächlichen Arbeitsgedächtnis unabhängigem Prozeß zur Verfuegung stellt. In diesem Fall handelt es sich um einen Adreßraum.

Auch in den Betriebsystemen dominierte mit dem SC das Weiterbildungskonzept der Prozesse (mit Intel mit Protected Mode in Intel 80286 und Intel 80386 mit Memory Management Unit), mit Microsoft von Microsoft Windows 95. Die eigentliche Begründung für eine Entnahme von Gedächtnisadressen mit Virtuellem Adressraum war die Standardisierung der Nutzung und die mögl. Kombination unterschiedlicher Gedächtnisquellen.

Weil es nur eine Art von Adresse gibt, mit der man so programmieren kann, als wäre nur ein einziger Arbeitsspeicher verfügbar. "Â "Â "Programme ("horizontale Trennung"): FÃ?r Software kann nicht auf den Speichermedium anderer Software zugegriffen werden (z.B. im Fehlerfall); Prozesse gegen das Originalbetriebssystem ("vertikale Hierarchie"): Die Funktion des Betriebes darf nicht durch (fehlerhafte) Anwenderprogramme gefÃ?hrdet werden.

Ein weiteres nützliches Merkmal des digitalen Adressraumes ist die Fähigkeit, jedem Prozess einen zunächst nicht fragmentierten, ausschließlichen Speicherplatz zur VerfÃ? In der Regel würde es ohne virtuellem Arbeitsspeicher zu einer Fragmentierung des (physischen) Adressraumes (prozessübergreifend) durch virtuellem Arbeitsspeicher (pro Prozess und in der Regel wesentlich größerer Adreßraum als der physische Adressraum) kommen. Arbeitsspeicher ) kann weitestgehend verhindert werden, dass der Adreßraum eines Vorgangs durch einen anderen Prozess durchbrochen wird.

physikalischer Arbeitsspeicher wird dem Prozeß im 2 GB großen digitalen Adreßraum als durchgängig dargestellt. Die Computeranlage versorgt jeden Prozeß mit Anschriften von 0 bis n-1 mit einem anscheinend angrenzenden Ortsspeicherbereich, worin n die Grösse dieses Speicherbereiches ist. Tatsächlich handelt es sich bei diesem Gedächtnisbereich um einzelne Blätter einer definierten Grösse ("Seiten", auch "Kacheln") innerhalb des digitalen Adressraumes des Vorgangs.

Im Gegenzug werden diese zusätzlichen Seiten auf physikalische Seiten gemappt, die sich an einer Stelle im physikalischen Arbeitsspeicher oder gar in einer Swap-Datei befinden. Wenn ein Prozess auf eine Gedächtnisadresse zugreift (eine virtuelle Adresse, der Prozess weiß nicht einmal andere Adressen), setzt die Speicherverwaltungseinheit (MMU; normalerweise in Kombination mit einem TLB) des Gesamtsystems diese in die zugeordnete physikalische Adresse um.

Bei der so genannten Pagetabelle handelt es sich um die Tabellendarstellung, mit der virtuelle Pageframes in physikalische Pageframes umgewandelt werden. Mit Hilfe dieser Maske kann die MMU die virtuelle Adresse in echte Adresse umwandeln. Wenn die virtuelle Seite nicht genutzt wird, wird gekennzeichnet, dass keine echte Seite für sie genutzt wird; wenn die Seite ausgelagert wird, wird gekennzeichnet, dass / wo der Content in der Page-Datei abgelegt ist (auch "swapfile" genannt).

Bei der optimalen Blattgröße (Größe einer Seite) handelt es sich um einen Kompromiß zwischen der Frequenz der Blattwechsel und der Tabellengröße (übliche Größen: 4 Kilo für 32-Bit-Virt. Adressbereich, 4 MiB mit 64-Bit-virt.adressraum). Die virtuelle Adresse ist somit eine Position im Arbeitsspeicher eines Computersystemes, dessen Betriebsystem die virtuelle Arbeitsspeicherverwaltung zur Adressvergabe ausnutzt. Man nennt die Summe aller (möglichen) intelligenten Anschriften (eines Prozesses) auch den sogenannten intelligenten Anredebereich.

Lediglich Betriebsysteme, die virtuelles Speichermanagement einsetzen, können einen digitalen Adreßraum erzeugen und Gedächtnisseiten zuordnen, die nicht physikalisch an den Programmer oder das Progamm gebunden sind, als sinnvoll zusammenhängender Deduktionsbereich. Die folgenden Grundsätze sind dem Virtual Storage Management heute allgemein bekannt: Ein Speicherverwaltungsgerät wandelt die virtuelle Adresse in eine echte physikalische Adresse um.

Dabei wird der durch die Summe aller verfügbaren Virtual Address definiert, der den Virtual State for mt, in Speicherbereiche aufgeteilt, die die gleiche Grösse haben wie der eigentliche physikalische Arbeitssta. Ein Blatt des digitalen Adressraumes wird auf eine Seite (Pageframe) des physikalischen Adressraumes gemappt. in der Grösse des digitalen Speicherplatzes, in der Speichergrösse, die eine Seite einnimmt, in der Weise, dass die Speicherverwaltungseinheit aus der digitalen Adresse eine physikalische Adresse errechnet.

Bei der Anforderung von Arbeitsspeicher durch ein externes System hat das System die Freiheit, den angefragten Arbeitsspeicher dem betreffenden System im digitalen Speicherbereich des Verfahrens zuzuweisen. Durch clevere Plazierungsstrategien kann die durchgängige Zersplitterung des digitalen Adressraumes verringert werden, was bei einer Vielzahl von Storage-Anforderungen und Releases sowie bei einem hochgefüllten digitalen Adreßraum sehr wichtig wird.

ist eine Strategie zur Auswahl der geeigneten Adressen: Paginierung des Intel 80386, mit einer Seitengröße von 4 KB. In engem Zusammenhang bezieht sich der Ausdruck Blättern nur auf den Prozess der Zuordnung der digitalen auf die physikalischen Domains. Swappen ist das Auslagern eines echten RAM-Speicherbereichs in einen anderen, zweiten Arbeitsspeicher, üblicherweise in eine Swap-Datei auf eine Harddisk durch das Betriebsystem.

Der Grundgedanke dabei ist, dass die Harddisk in herkömmlichen Rechnern viel grösser ist als der zur Verfügung stehende freie Speichers (RAM): Indem man auch den Festplattenplatz nutzt, um Speicheranforderungen von Programmangeboten zu dienen, können Anforderungen, die über den verfügbaren RAM-Speicherspezifikation liegen, dann über den Auslagerungsspeicher für jeden Vorgang mit mehr virtuellem als physikalisch verfügbaren Arbeitsspeicher bereitgestellt werden.

Nachteilig ist, dass der auf der Harddisk gespeicherte Arbeitsspeicher viel träger ist als der RAM-Zugriff - mit diesem Verfahren können jedoch Programme mit einem hohen Arbeitsspeicherbedarf arbeiten. Wenn möglich, werden oft genutzte Webseiten im RAM gehalten. Dabei werden ab einem bestimmten RAM-Level spezielle Verfahren ("Page Stealer") gestartet, um seit einiger Zeit nicht mehr genutzte Webseiten outzusourcen, um zusätzliche physikalische Kapazitäten zu schaffen, so dass das Gesamtsystem rasch auf eine korrespondierende Anfrage reagiert werden kann.

Eine Seitenstörung tritt auf, wenn ein Progamm auf eine nicht im Arbeitsspeicher befindliche und ausgelagerte Webseite zugreift. der Fehler tritt auf. Da sich die Druckseite nun physikalisch an einer anderen Position als bisher befinden kann, wird die Seitentabelle von der Speicherverwaltungseinheit entsprechend angepasst. Der virtuelle Adressraum wird nicht verändert.

Der Fehler einer Seite führt nicht zu einem Abbruch, sondern zu einer Handlung, die es dem Prozess ermöglicht, die Verarbeitung normal fortzusetzen. Dabei kann die Rechnerleistung sehr stark zusammenbrechen, wenn aufgrund von großem Speichermangel auch oft benutzte Seiten auslagert werden müssen, und das Gesamtsystem sich vor allem mit der Bearbeitung von Pagefehlern befassen muss. Seitenknacker und die Fallen greifen beide auf die Swap-Datei zu und laden zu einem bestimmten Zeitpunkt die betreffenden Harddisk.

Das Anzeigen der einzelnen Blätter erfolgt in Gestalt einer digitalen Uhr mit Ziffen. Für Systeme ohne virtuellem Speichermanagement besteht die Möglichkeit einer kontinuierlichen Zersplitterung des tatsächlichen Speicherplatzes über die gesamte Betriebszeit. Es kann ohne virtuelles Speichermanagement passieren, dass mehrere Programmläufe trotz konstantem Speicherbedarf aufgrund von Zersplitterung teilweise nicht serviert werden können, obwohl immer genügend freier Arbeitsspeicher vorhanden ist.

MS-DOS, ein Betriebssystem ohne virtuelle Speicherverwaltung, hat zum Beispiel ein ähnliches Problemfeld mit Treiber und TSR-Programme; es wurde der Versuch unternommen, das Problemfeld mit komplexen Speicheroptimierungsprogrammen (EMM386. EXE, QEMM etc.) zu verkleinern. Mit diesen Speicheroptimierungen wurde unter anderem angestrebt, den Device-Treiber und das TSR-Programm so fragmentiert wie möglich in den physikalischen Arbeitsspeicher zu bringen, um so große Speicherblocks für nachfolgende Programme zur Verfugung zu haben.

Die virtuelle Speicherverwaltung stellt jedem Startprogramm einen immer gleichbleibenden, nicht fragmentierten Speicherplatz zur Verfügung. Allerdings können bei Programmen mit virtueller Speicherverwaltung auch kontinuierlich explizit Speicherzuweisungen und Deallokationen (malloc(), free()) oder schwerfällige Fixed Program Libraries (DLLs)[8] verwendet werden, um ihren digitalen Speicherplatz selbst zu zersplittern und damit auch in laufzeitabhängigen Out-of-Memory-Situationen zu durchlaufen. In den 2000er Jahren am Ende der 32-Bit-PC-Ära (4-GB-Grenze) war dies ein praxisnahes Phänomen; der virtuelle Adreßraum war nicht mehr wesentlich größer als die übliche physikalische RAM-Erweiterung, und immer mehr Anwendungen nutzten eine entsprechende Menge an Speicher.

Für speicherintensive Applikationen wie wissenschaftliche Forschungssimulationen (z.B. mit Matlab) oder komplexe 3D-Computerspiele (z.B. Gotik 3[9], Oberster Befehlshaber[10]) hat dies trotz "ausreichendem" physischen und virtuellem (Gesamt)Speicher zu häufigen Außer-Speicherungsproblemen geführt. Wenn der virtuelle Speicherplatz jedoch wesentlich grösser ist als die Prozessanforderungen, ist die Zersplitterung des digitalen Speicherplatzes kein praktikables Hindernis, da es genügend Alternativen für unzersplitterte Anschriften und Adressräume gibt.

Durch die 64-Bit x86 AMD64-Architektur wurden die Größen des Virtual Address Space signifikant erhöht (auch um dieses Phänomen zu beheben), und auf absehbare Zeit sollte die Zersplitterung des Virtual Memory bei PC-Programmen keine große Bedeutung haben. Dann sollte das Betriebsystem die virtuelle Seiten eines Thoms den echten Seitenrahmen zuweisen, die mit dem Rechner verbunden sind, der den Thin berechnet.

AMD64-Architektur: Von den 64-Bit-Versionen der virtuellen Speicheradressen werden in der ersten CPU-Generation physikalisch jeweils 50 Bits für die virtuelle Speicherverwaltung bereitgestellt (die ersten 16-Bit-Typen der virtuellen Adresse müssen eine Folgeversion des 48-Bit[11] sein, d.h. 0000hex oder FFFFhex). Der Adreßraum ist auf 2^48 Bytes begrenzt. IA-32-Architektur: Eine virtuelle Adresse ist 32 Bits lang.

IA-32 Architektur mit PAE: Eine virtuelle Adresse ist 32 Bits lang. Wenn auf eine Adresse zugegriffen wird, der gerade keine physikalische Gedächtnisseite zugewiesen ist, muss das Betriebsystem die Speicherverwaltungseinheit daran erinnern, an dieser Position eine spezifische kostenlose Gedächtnisseite anzuzeigen. Anhand der Bestimmung der virtuellen Adresse kann die Grösse des digitalen Adressraumes errechnet werden.

Zum Beispiel ist in einer IA-32-Architektur eine virtuelle Adresse 32-Bit breit, zwei mal 10-Bit für eine zweistöckige Page-Tabelle und 12-Bit für den Offsette. Damit können 210 × 210 × 210 × 212 Bytes angesprochen werden. Ursprung des Konzepts des mémoire virtuellem Speicher. Der Aufbau eines intelligenten Arbeitsspeichers. "Enfin, 22 Minuten vor Schluss, stoppt das Spiel, weil die virtuelle Größe die 2,6 GB Barriere erreicht hat, für die wir dieses Gerät neu konfiguriert haben.

Diese Warteschlange ist vielleicht das Beunruhigendste an dieser Stelle, dass der Oberste Befehlshaber nicht weiß, dass er keinen Benutzerplatz mehr in seinem virtuellen Adresspool hat, weil wir mit einer generischen Fehlermeldung aus dem Spiel geworfen werden".

Mehr zum Thema