-
Bereich der
Erfindung
-
Diese Erfindung betrifft allgemein
Speicher in einem Computersystem, und insbesondere betrifft diese
Erfindung Zugreifen auf einen Speicher mit wahlfreiem Zugriff (Direktzugriffspeicher)
in einem Computersystem mit einem virtuellen Speicherbetriebssystem.
-
Hintergrund
der Erfindung
-
Auf in einem herkömmlichen Speicher mit wahlfreiem
Zugriff in Hochgeschwindigkeit (RAM, random access memory) gespeicherte
Daten kann viel schneller zugegriffen werden (z. B. oft ungefähr um einhunderttausend
Mal schneller) als auf Daten, die in einem herkömmlichen nicht flüchtigen
Speicher gespeichert sind. Dementsprechend wird Anwendungsprogrammtreibersoftware
oft so konfiguriert, dass sie Datendateien vorübergehend im RAM speichert,
wo sie anschließend
von einem oder mehreren Anwendungsprogrammen verarbeitet werden.
Diese Verwendung des RAM, das als RAM-Platte oder als Plattencache
genutzt werden kann, reduziert die Dateizugriffszeit signifikant,
wodurch sich die Zeit reduziert, die zum Verarbeiten der Daten erforderlich
ist.
-
Virtuelle Speicherbetriebssysteme
(unten beschrieben) sind oft so konfiguriert, dass sie einen geringen
Umfang des RAM („nicht
seitenorientierter Pool-Speicher")
zum vorübergehenden
Speichern von Datendateien wie oben beschrieben beiseite stellt.
Der Rest des RAM ist folglich zum Speichern von Betriebsystemcode-
und Ausführungsbetriebssystemprozessen
(„Betriebssystem-RAM") reserviert. Der
nicht seitenorientierte Pool-Speicher ist jedoch typischerweise
viel kleiner als der Betriebssys tem-RAM und kann deshalb in einem
Computersystem zu einer Engstelle werden, wenn er zum Speichern
zu vieler Daten verwendet wird.
-
Ein virtuelles Speicherbetriebssystem
ist allgemein als Betriebssystem definiert, das automatisch Daten
zwischen einem RAM und einer Festplatte seitenweise umspeichert
(d. h. überträgt), wenn Systemprozesse
ausgeführt
werden. Seitenweises Umspeichern von Daten zu und von der Festplatte konserviert
Platz im RAM, was auf diese Weise dem System ermöglicht, so zu funktionieren
als ob der physikalische RAM signifikant größer wäre als er tatsächlich ist.
Auf den RAM in einem Computersystem, das ein virtuelles Speicherbetriebssystem
betreibt, kann nur durch einen virtuellen Speicherverwaltermodul
zugegriffen werden (ein Teil des Betriebssystems), der eine Schnittstelle
zur Treibersoftware mit dem RAM besitzt. Der virtuelle Speicherverwalter umfasst
einen nicht seitenorientierten Controller zum Zugriff auf den nicht
seitenorientierten Pool-Speicher, wenn von einem Treiber eine Meldung
empfangen wird, dass Zugriff zu einer Datei (oder Daten) im nicht seitenorientierten
Pool angefragt wird.
-
Ein bekanntes virtuelles Speicherbetriebssystem
ist zum Beispiel das Betriebssystem Microsoft Windows NTTM, Version 4.0 („Microsoft Windows NTTM"),
das von der Microsoft Corp. in Redmond, Washington vertrieben wird.
Der Betrieb des virtuellen Speicherbetriebssystems, wie des Betriebssystems
Microsoft Windows NTTM ist ausführlicher
in „Inside
Windows NT" von
Helen Custer, copyright 1993 von Microsoft Press beschrieben. Wie
den Fachleuten bekannt ist, umfasst Windows NTTM einen
virtuellen Speicherverwalter wie die oben beschriebenen. Dieser
virtuelle Speicherverwalter nutzt eine Vielzahl von virtuellen Speicherverwalterfunktionen,
um den Zugriff zum System-RAM zu steuern.
-
Wie oben angegeben ist nur ein begrenzter Umfang
an Platz im RAM dem nicht seitenorientierten Pool-Speicher zugeordnet.
Zum Beispiel erlaubt das Betriebssystem Windows NTTM maximal
192 Megabyte RAM-Volumen für
den nicht seitenorientierten Pool-Speicher in einem System mit einem
RAM von vier Gigabyte oder mehr. Dementsprechend reserviert das
Betriebssystem in einem solchen Fall die übrigen 3808 Megabyte für Betriebssystem-RAM. Wie
andere virtuelle Speicherbetriebssysteme erfordert das Betriebssystem
Windows NTTM ein Minimum von nur sechzehn
Megabyte RAM für
richtigen Betrieb. Die Zuordnung von 3808 Megabyte für Betriebssystem-RAM
ist deshalb nicht notwendig.
-
Der im IBM Technical Disclosure Bulletin Band
28, Nr. 4 1985 veröffentlichte
technische Artikel „Dynamic
Storage Pool Memory" offenbart
ein System zum Verwalten des Speicherns von Daten in einem Computer.
Der dynamische Speicherpoolverwalter (DSPM, dynamic storage pool
manager) stellt eine leicht anzuwendende Schnittstelle für Systemkomponenten
zur Verfügung,
die Speichervolumen im Systemwarteschlangenraum zuweist und freistellt, und
Speicherfragmentierung und Nutzung der Zentraleinheit (CPU, central
processing unit) effizient verwaltet. Es ist kein Verständnis der
internen Vorgänge des
Computers erforderlich.
-
Wenn die Signalarbeitslast zunimmt,
zeigt der DSPM die Menge und Lage von freiem Speicherplatz an. Falls
nötig schafft
der DSPM zusätzlichen Seitenspeicherraum
aus dem Hauptspeicher. Wenn die Systemaktivität abnimmt, gibt der DSPM Speicherseiten
an den Speicherverwalter zurück.
Um die Effizienz zu erhöhen,
unterstützen
die DSPM zahlreiche Warteschlangen, die entsprechend der Anzahl freier
Elemente in der Warteschlange geordnet sind. Daten, die gespeichert
werden sollen, werden der Warteschlage zugewiesen, die die am nächsten liegende
Anzahl von freien Elementen aufweist, aber nicht kleiner ist als
die Größe der zu
speichernden Datendatei. Wenn die Größe nicht exakt passt, wird der übrige Speicherplatz
dem freien Pool zurückgegeben.
-
Zusammenfassung
der Erfindung
-
Gemäß einem Aspekt der Erfindung
kennzeichnet ein Verfahren, eine Vorrichtung und ein Computerprogrammprodukt
zum Zugriff auf Direktzugriffsspeicher (RAM) in einem Computersystem,
auf dem ein virtuelles Betriebssystem läuft, einen Teil des RAM als
Systemspeicher zur Verwendung durch das Betriebssystem. Diese Speicherkennzeichnung
erzeugt folglich einen Restspeicher im RAM. Auf den Restspeicher
kann nach Empfang einer Zugriffsmeldung, die Zugriff auf den Restspeicher
anfordert, durch einen virtuellen Speicherverwalter direkt zugegriffen
werden. Der virtuelle Speicherverwalter wird so gesteuert, dass
er seinen nicht seitenorientierten Pool-Controller umgeht, wenn
er auf den Restspeicher zugreift. Umgehen des nicht seitenorientierten Pool-Controllers vergrößert signifikant
den Umfang des verfügbaren
RAM, der zum vorübergehenden Speichern
von Datendateien verwendet werden kann.
-
Dementsprechend stellt die Erfindung
ein Verfahren zur Verfügung
für den
Zugriff auf den Direktzugriffsspeicher in einem Computersystem,
auf dem ein virtuelles Speicherbetriebssystem läuft, wobei das Computersystem
einen virtuellen Speicherverwalter für den Zugriff auf den Direktzugriffsspeicher
umfasst, wobei der virtuelle Speicherverwalter über einen nicht seitenorientierten
Pool-Controller für den
Zugriff auf einen vom Betriebssystem reservierten, nicht seitenorientierten
Pool-Speicheranteil des Direktzugriffsspeichers verfügt, wobei
das Verfahren die Schritte umfasst: Kennzeichnen eines Teils des Direktzugriffsspeichers
als Systemspeicher für
die Nutzung durch das Betriebssystem, wobei der Schritt der Kennzeichnung
einen Restspeicher erzeugt, wobei es sich beim Restspeicher um den
Direktzugriffsspeicher handelt, der nicht als Systemspeicher gekennzeichnet
ist; Empfangen einer Zugriffsmeldung für den Zugriff auf den Restspeicher;
und Steuern des virtuellen Spei cherverwalters, nachdem die Zugriffsmeldung
empfangen wurde, um den nicht seitenorientierten Pool-Controller
zu umgehen und direkt auf den Restspeicher zuzugreifen.
-
Gemäß einem anderen Aspekt der
Erfindung umfasst die Zugriffsmeldung die Adresse einer Stelle im
Restspeicher, auf den zugegriffen werden soll. Es können als
Folge des Zugriffs Dateien im Restspeicher erzeugt, gelesen und/oder
beschrieben werden. In bevorzugten Ausführungsformen der Erfindung
ist der Restspeicher größer als
192 Megabyte.
-
Gemäß einem anderen Aspekt der
Erfindung, der als Plattencache (Plattenpuffer) implementiert ist,
kann eine Datei, auf die zugegriffen werden soll, entweder im Restspeicher
oder in einer Festplatte gespeichert sein, die Teil des Computersystems ist.
Es ist deshalb bestimmt, wenn die Datei im Restspeicher oder in
der Festplatte gespeichert ist. Wenn bestimmt ist, dass die Datei
im Restspeicher ist, greift der virtuelle Speicherverwalter direkt
auf den Restspeicher zu, um auf die Datei zuzugreifen. Wenn bestimmt
ist, dass die Datei in der Festplatte gespeichert ist, dann wird
die Datei von der Festplatte geholt und für anschließende Verarbeitung im Restspeicher
gespeichert.
-
Es wird auch eine Vorrichtung zur
Verfügung gestellt
zum Zugreifen auf den Direktzugriffsspeicher in einem Computersystem,
auf dem ein virtuelles Speicherbetriebssystem läuft, wobei das Computersystem
einen virtuellen Speicherverwalter für den Zugriff auf den Direktzugriffsspeicher
umfasst, wobei der virtuelle Speicherverwalter über einen nicht seitenorientierten
Pool-Controller für
den Zugriff auf einen vom Betriebssystem reservierten, nicht seitenorientierten
Pool-Speicheranteil des Direktzugriffsspeichers verfügt, wobei
die Vorrichtung folgendes umfasst: einen Konfigurationsverwalter
zum Kennzeichnen eines Teils des Direktzugriffsspeichers als Systemspeicher
für die
Nutzung durch das Be triebssystem, wobei der Konfigurationsverwalter
einen Restspeicher erzeugt, wobei es sich beim Restspeicher mindestens
um einen Teil des Direktzugriffsspeichers handelt, der nicht als
Systemspeicher gekennzeichnet ist und größer ist, als der nicht seitenorientierte
Pool-Speicheranteil,
Mittel zum Empfangen einer Zugriffsmeldung für den Zugriff auf den Restspeicher;
und Mittel zum Steuern des virtuellen Speicherverwalters, nachdem
die Zugriffsmeldung empfangen wurde, um den nicht seitenorientierten Pool-Controller
zu umgehen und direkt auf den Restspeicher zuzugreifen.
-
Die Erfindung betrifft auch ein Computerprogramm
zum Implementieren des obigen Verfahrens.
-
Kurze Beschreibung
der Zeichnungen
-
Die zuvor genannten und andere Ziele
und Vorteile der Erfindung werden besser verständlich aus der folgenden weiteren
Beschreibung mit Bezug zu den begleitenden Zeichnungen, worin:
-
1 schematisch
ein Computersystem zeigt, das mit einer bevorzugten Ausführungsform der
Erfindung verwendet werden kann.
-
2 ein
Fließbild
zeigt, das die Schritte zum Speichern einer Datei in einem Restspeicherteil des
Direktzugriffsspeichers gemäß einer
bevorzugten Ausführungsform
der Erfindung zusammenfasst.
-
3 ein
Fließbild
zeigt, das die bevorzugten Schritte zum Holen einer Datei aus dem
Restspeicher zur Verwendung in einem Anwendungsprogramm zusammenfasst.
-
Beschreibung
bevorzugter Ausführungsformen
-
1 zeigt
schematisch ein Computersystem 100, das mit einer bevorzugten
Ausführungsform der
Erfindung verwendet werden kann, um Direktzugriffsspeicher effizient
zu nutzen. Das System 100 enthält Hardware 101, die
unter anderem eine Zentraleinheit (CPU) 102 zum Verarbeiten
von Computeranweisungen, Direktzugriffsspeicher („RAM 104") für flüchtige Datenspeicherung
in Hochgeschwindigkeit und eine Festplatte 106 für nicht
flüchtige
Datenspeicherung umfasst. Das System 100 enthält auch ein
virtuelles Speicherbetriebssystem 108 sowohl zum Steuern
von Systemprozessen und als Schnittstelle zwischen einem Anwendungsprogramm 110 und
der Hardware 101. Das Betriebssystem 108 enthält einen
virtuellen Speicherverwalter 112 zum Zugreifen auf den
RAM 104 und einen Eingangs/Ausgangsverwalter („I/O Manager 114") zum Steuern der Eingabe
in und Ausgabe aus dem System 100. Auf den RAM 104 kann
nur vom virtuellen Speicherverwalter 112 zugegriffen werden
und daher ist er nicht durch irgendeinen anderen Teil des Systems 100 direkt
zugänglich.
In einer bevorzugten Ausführungsform
der Erfindung ist das Betriebssystem 108 das Betriebssystem
Microsoft Windows NTTM, Version 4.0 („Microsoft
Windows NTTM") vertrieben von der Microsoft Corp.
Obwohl es bei vielen Betriebssystemen nicht notwendig ist, kann
auch eine Hardwareabstraktionsschicht 116 („HAL") im System 100 enthalten sein,
um eine Schnittstelle des Betriebssystems 108 mit verschiedenen
Hardwarearchitekturen zu bilden. Es ist anzumerken, dass obwohl
die Erfindung in Verbindung mit dem Betriebssystem Microsoft Windows NTTM beschrieben wird, es prinzipiell auf andere
virtuelle Speicherbetriebssysteme anzuwenden ist.
-
Gemäß bevorzugter Ausführungsformen
der Erfindung ist der Umfang des RAM 104, der den Betriebssystemprozessen
zugewiesen ist („Systemspeicher") nicht auf einen
festen Maximalumfang beschränkt,
und mindestens ein Teil des Rests des RAM 104 („Restspeicher") ist dem Speichern
von Dateien oder Daten zugeordnet, die durch Anwendungsprogramme
erzeugt sind (z. B. das Anwendungsprogramm 110), die das
System 100 verwenden kann. Es ist bevorzugt, dass der Restspeicher
signifikant größer ist
als der Systemspeicher. Zum Beispiel in einem Computersystem mit
vier Gigabyte RAM 104 kann der Systemspeicher ungefähr 16 Megabyte
betragen, während
der Restspeicher 3984 Gigabyte betragen kann. Mindestens ein Teil
der 3984 Gigabyte werden verwendet, um Anwendungsdateien oder Anwendungsdaten
zu speichern.
-
Im Restspeicher gespeicherte Dateien
und Daten, die vom Anwendungsprogramm 110 während der
Betriebsdauer gelesen und modifiziert werden können, können jegliche Art von Datei
sein wie eine Datenbankdatei, die viele Megabyte von Daten enthält. Da die
Zugriffszeiten auf Dateien im RAM 104 signifikant schneller
sind als Zugriffszeiten auf Dateien in der Festplatte 106,
werden Prozesse schneller beendet, wenn die Dateien zunächst von
der Festplatte 106 in den Restspeicher verschoben werden,
bevor sie verwendet werden, und dann im Restspeicher auf sie zugegriffen
wird, wenn sie gebraucht werden. Als Beispiel sind die Zugriffszeiten
auf RAM im allgemeinen mindestens ungefähr einhunderttausend Mal schneller
als Zugriffszeiten auf die Festplatte 106.
-
Wie schematisch in 1 gezeigt ist enthält der erfindungsgemäße I/O-Manager 114 einen
Konfigurationsverwalter 120 zum Konfigurieren des RAM 104,
einen RAM-Treiber 122 zum Verwalten des Zugriffs auf den
Restspeicher und einen Dateisystemtreiber 124 zum Verwalten
des RAM-Dateisystems (unten beschrieben). Der Konfigurationsverwalter 120,
der bevorzugt ein Anwendungsprogramm ist, konfiguriert den RAM 104 vor
dem Installieren des RAM-Treibers 122. Insbesondere empfängt der
Konfigurationsverwalter 120 Konfigurationsinformation von
einem Benutzer durch Anzeigen eines Formulars mit Feldern zum Eintragen
von Konfigurationsdaten. Die Felder können enthalten:
- – Gesamter
RAM im System: die Gesamtgröße des RAM 104 im
Computersystem.
- – Restspeichergröße: die
Gesamtgröße des Restspeichers.
- – Startplatz:
die niedrigste Adresse im Restspeicher. Der letzte Adressenplatz
des Restspeichers ist diese Adresse plus die Gesamtanzahl an Adressen,
die erforderlich sind, um den gesamten Restspeicher zu enthalten.
Alle Adressen zwischen dem Startplatz und der letzten Adresse sind
deshalb Teil des Restspeichers.
- – Laufwerkskennung:
die dem Restspeicher zugeordnete Laufwerkskennung.
-
Bei Verwendung mit dem Betriebssystem
Microsoft NTTM modifiziert der Konfigurationsverwalter 120 die
Datei BOOT.INI, um die bekannte Option /MAXMEM=XXX hinzuzufügen, wo „XXX" der Gesamtumfang
des Systemspeichers ist, berechnet aus der im Formular erhaltenen
Information. Speziell ist XXX die Differenz zwischen dem Gesamtumfang
des RAM im Computersystem und dem Umfang des RAM, der als Restspeicher
zugewiesen ist. Wie den Fachleuten bekannt ist, wird die MAXMEM-Option
typischerweise zum Testen spezifischer Umfangsmengen von RAM in
einem Computersystem verwendet. Wenn zum Beispiel in einem System
mit drei Gigabyte die MAXMEM-Option auf ein Gigabyte gesetzt wird,
dann wird nur ein (spezifiziertes) Gigabyte an RAM von einem solchen
System verwendet. Die verbleibenden zwei Gigabyte werden daher nicht
verwendet. Diese übliche
Verwendung der MAXMEM-Option ermöglicht,
dass eine Sektion des RAM getestet wird, zum Beispiel ohne Teile
des RAM (z. B. die beiden Gigabyte in dem unmittelbar vorhergehenden
Beispiel) physikalisch aus dem gesamten RAM-System abzukoppeln (z.
B. die drei Gigabyte auch in dem unmittelbar vorhergehenden Beispiel).
-
Dementsprechend wird der Teil des
RAM 104, der von der MAXMEM-Option ausgewählt ist, für das Betriebssystem verwendet.
In der Tat würden, selbst
wenn der nicht seitenorientierte Pool-Speicher zum Speichern von
Datendateien für
das Anwendungsprogramm verwendet wäre, solche Dateien auch in
dem von der MAXMEM-Option gekennzeichneten RAM gespeichert. Selbstverständlich wird
in bevorzugten Ausführungsformen
der nicht seitenorientierte Pool-Speicher umgangen und auf diese
Weise versucht er nicht, Daten in solchen gekennzeichneten RAM zu
speichern. Trotzdem wird der Restspeicher (d. h. der Teil des RAM 104,
der von der MAXMEM-Option nicht gekennzeichnet ist) bevorzugt zum
Speichern von Dateien und Daten aus dem Anwendungsprogramm 110 verwendet,
wie unten ausführlicher
diskutiert wird.
-
Die in das Formular eingetragenen
Konfigurationsdaten werden bevorzugt im Systemkonfigurationsregister
gespeichert, das alle Konfigurations- und Einstelldaten für das Betriebssystem 108 enthält. Sobald
das Register ein Update erfährt
und die MAXMEM-Option eingestellt wird, kann der RAM-Treiber 122 initiiert
werden, um den RAM 104 zu teilen. Sobald er initiiert ist,
prüft der
RAM-Treiber 122 zuerst die MAXMEM-Option. Wenn sie nicht eingestellt ist, kann
der RAM-Treiber 122 eine Meldung ausgeben, die angibt,
dass die Konfigurationsdaten eingegeben werden müssen, um den Restspeicher zu
implementieren. Es können
Systemfehler auftreten, wenn die MAXMEM-Option nicht eingestellt
ist, da der RAM-Treiber 122 versuchen kann, Teile des RAM 104 zu überschreiben,
die vom Betriebssystem 108 verwendet werden. Wenn die MAXMEM-Option
eingestellt ist, dann kann jedoch ein Block von Speicherumfang im
RAM 104 zur Verwendung als Restspeicher initialisiert werden.
-
Bei Verwendung mit dem Betriebssystem
Microsoft Windows NTTM, kann zum Beispiel
eine Microsoft Windows NTTM VMM-Funktion
(Virtual Memory Manager) aufgerufen werden, um den Restspeicher zu
initialisieren. Eine solche VMM-Funktion kann zum Beispiel „MmMapioSpace" sein, die Eingabeparameter, „physikalische
Adresse", „Dateiumfang" (d. h. den Umfang
des Restspeichers) und „Cache" aufweist. Der physikalische
Adressenparameter spezifiziert die physikalische Startadresse des
Speicherblocks, der als Restspeicher reserviert ist, während der
Dateiumfangsparameter den Umfang (in Bytes) des gesamten Restspeichers
spezifiziert. Der Cacheparameter wird bevorzugt auf „FALSCH" gesetzt, wodurch
verhindert wird, dass das Betriebssystem gespeicherte Dateien in
den Cache nimmt.
-
Nachdem der Restspeicher initialisiert
ist, führt
der RAM-Treiber 122 seine Ausführung fort und arbeitet wie
vom Anwendungsprogramm 110 gefordert. Speziell wird der
RAM-Treiber 122 in Verbindung mit dem Dateisystemtreiber 124 (1) verwendet, um Dateien
im Restspeicher zu speichern, zu lesen und einzuschreiben.
-
2 zeigt
ein Fließbild,
das die Schritte einer bevorzugten Ausführungsform zum Speichern einer
Datei im Restspeicher zusammenfasst. Der Prozess beginnt bei Schritt 200,
in dem das Anwendungsprogramm 110 eine Anfragemeldung an
den I/O-Manager 114 überträgt, dass
eine Datei aus der Festplatte 106 kopiert und in den Restspeicher
verschoben werden soll. Die Meldung kann den Namen der Datei enthalten
und die Adresse der Datei auf der Festplatte 106. Der Prozess
fährt fort
zu Schritt 202, in dem der Dateisystemtreiber 124 die
nicht genutzten Adressen des Restspeichers bestimmt und die Datei
einer dieser Adressen als Startadresse zuweist. Der Dateisystemtreiber 124 speichert
dann im RAM 104 die Startadresse der Datei im Restspeicher.
-
Der Prozess fährt fort zu Schritt 204,
in dem der Dateisystemtreiber 124 eine Meldung an den RAM-Treiber 122 sendet,
um die Datei im Restspeicher zu speichern. Diese Meldung kann den
Namen der Datei, seine derzeitige Lage auf der Festplatte und die
ihr vom Dateisystemtreiber 124 zugewiesene Startadresse
enthalten. Der RAM-Treiber 122 sendet dann eine Meldung
an den virtuellen Speicherverwalter („VMM 112", virtual memory
manager), um die Datei im Restspeicher an den geeigneten Adressplätzen zu
speichern (Schritt 206). Diese Meldung kann die Information
aus der vom Dateisystemtreiber 124 empfangenen Meldung
enthalten. Als Reaktion darauf holt der VMM 112 zunächst die
Datei von der Festplatte und speichert dann die Datei an der bezeichneten
Stelle im Restspeicher (Schritt 208). Sowohl das Holen
wie das Speichern der Datei werden über eine VMM-Funktion ausgeführt.
-
Dementsprechend wird der nicht seitenorientierte
Pool-Controller umgangen und daher nicht verwendet, um die Datei
zu speichern. Wenn der nicht seitenorientierte Pool-Controller verwendet
würde, dann
wäre die
Datei auf eine Speicherung im nicht seitenorientierten Pool-Speicher
beschränkt.
Statt den Zugriff von RAM 104 auf den nicht seitenorientierten
Pool-Speicher im RAM 104 zu beschränken, ermöglicht dieser Direktspeicherzugriff
jedoch, dass mindestens ein Teil des Restspeichers zum Speichern
von Dateien verwendet wird.
-
3 zeigt
ein Fließbild,
das bevorzugte Schritte zum Holen einer gekennzeichneten Datei aus
dem Restspeicher zur Verwendung im Anwendungsprogramm 110 zusammenfasst.
Der Prozess beginnt bei Schritt 300, in dem das Anwendungsprogramm 110 eine
Anfragemeldung an den I/O-Manager 114 schickt, die das
Holden der bezeichneten Datei anfordert. Die Meldung kann den Namen
der bezeichneten Datei enthalten. Der I/O-Manager 114 richtet
als Reaktion darauf eine Meldung an den Dateisystemtreiber 124,
der die Startadresse der Datei im Computersystem 100 bestimmt
(Schritt 302). Wenn eine bevorzugte Ausführungsform
der Erfindung als RAM-Platte verwendet ist, dann wird die Datei
im Restspeicher gespeichert. Wenn alternativ eine bevorzugte Ausführungsform
der Erfindung als Plattencache verwendet ist, dann kann die Adresse
entweder im Restspeicher oder auf der Festplatte 106 liegen.
Bei Verwendung als RAM-Platte schickt der Dateisystemtreiber 124 eine
Meldung an den RAM-Treiber 122 mit der Dateistartadresse
(wenn im RAM 104) und den Namen der Datei (Schritt 304). Die
Datei kann aus dem Restspeicher gemäß der Schritte 314–318 wie
unten diskutiert geholt werden.
-
Wenn eine bevorzugte Ausführungsform
der Erfindung als Plattencache verwendet ist, dann wird in Schritt 306 bestimmt,
ob die Datei im RAM 104 oder auf der Festplatte 106 liegt.
Wenn die Adresse auf der Festplatte 106 ist, dann schickt
der RAM-Treiber 122 eine Meldung an einen SCSI-Treiber
(nicht gezeigt), um die Datei von der Festplatte 106 zu
holen (Schritt 308). Der SCSI-Treiber ortet die Datei, greift über HAL 116 auf
die Festplatte 106 zu, um die Datei zu holen (Schritt 310)
und gibt dann die Datei an das Anwendungsprogramm 110 (Schritt 312).
Die Datei kann gemäß herkömmlicher
Prozesse von der Festplatte 106 geholt und zum Anwendungsprogramm 110 gegeben
werden.
-
Wenn die Adresse im RAM 104 liegt
(d. h. im Restspeicher), dann fährt
der Prozess fort zu Schritt 314, in dem der RAM-Treiber 122 eine
Meldung an VMM 112 schickt, um die Datei vom Restspeicher
zu holen. Diese Meldung kann die Startadresse der Datei im Restspeicher
enthalten und einen Aufruf an den VMM 112, die Datei vom
RAM 104 zu holen. Als Reaktion darauf greift VMM 112 auf
den Restspeicher bei dieser Adresse zu, holt die Datei (Schritt 316)
und gibt dann über
den Dateisystemtreiber 124 (Schritt 318) die Datei
an das Programm 110. In bevorzugten Ausführungsformen
werden Speicherzugriff, Dateiholen und Dateiweitergeben von einer VMM-Funktion
ausgeführt.
-
Wie oben angegeben kann die Erfindung
als RAM-Platte oder als Plattencache implementiert sein. In jedem
Fall kann der RAM 104 verwendet werden, um große Datenvolumen
vorübergehend
zu speichern, was auf diese Weise ermöglicht, dass mehr Dateien im
RAM 104 gespeichert werden können.
-
In einer alternativen Ausführungsform
kann die Erfindung als Computerprogrammprodukt zur Verwendung mit
einem Computersystem implementiert sein. Eine solche Implementierung
kann eine Reihe von Computeranweisungen beinhalten, die entweder
auf einem konkreten Medium fixiert sind, wie einem computerlesbaren
Medium (z. B. einer Disket te, CD-ROM, ROM oder Festplatte) oder
zu einem Computersystem übertragbar
sind, über
ein Modem oder ein Schnittstellengerät, wie einem Kommunikationsadapter,
der über
ein Medium mit einem Netzwerk verbunden ist. Das Medium kann entweder ein
konkretes Medium sein (z. B. optische oder analoge Kommunikationsleitungen)
oder ein mit drahtloser Technik implementiertes Medium (z. B. Mikrowellen-,
Infrarot- oder andere Übertragungstechniken). Die
Reihe von Computeranweisungen verkörpern alle oder einen Teil
der zuvor hier mit Bezug auf das System beschriebenen Funktionalitäten. Den
Fachleuten sollte erkennbar sein, dass solche Computeranweisungen
in einer Reihe von Programmiersprachen geschrieben sein können zur
Verwendung mit vielen Computerarchitekturen oder Betriebssystemen.
Außerdem
können
solche Anweisungen in irgendeiner Speichervorrichtung gespeichert
sein, wie Halbleiter-, Magnet-, optische oder andere Speichervorrichtungen,
und können
unter Verwendung irgendeiner Kommunikationstechnik wie optische,
Infrarot-, Mikrowellen- oder
andere Übertragungstechniken übertragen
werden. Es wird angenommen, dass ein solches Computerprogrammprodukt
als entfernbares Medium mit begleitender gedruckter oder elektronischer
Dokumentation verbreitet werden kann (z. B. schrumpfverpackte Software),
in einem Computersystem vorgeladen sein kann (z. B. auf der System-ROM
oder der Festplatte) oder über
einen Server oder elektronische Anschlagtafel über das Netzwerk verbreitet
werden kann (z. B. das Internet oder World Wide Web).
-
Obwohl verschiedene beispielhafte
Ausführungsformen
der Erfindung offenbart worden sind, sollte es für die Fachleute ersichtlich
sein, dass verschiedene Veränderungen
und Modifikationen vorgenommen werden können, die einige Vorteile der
Erfindung erreichen, ohne vom wahren Rahmen der Erfindung abzuweichen.
Diese und andere offensichtliche Modifikationen sollen von den beigefügten Ansprüchen abgedeckt
sein. Nach dieser Beschreibung der Erfindung folgen die Ansprüche.