-
Die
Erfindung betrifft ein Verfahren zum Verwalten eines Speichermediums
eines Computersystems sowie einen eine solche Verwaltung ausführenden
Speichermediummanager und ein diesen Speichermediummanager enthaltendes
Computersystem.
-
Die
Erfindung befasst sich mit der Problematik des Analysierens von
Datei-Abhängigkeiten
von Dateien auf einem Speichermedium und mit dem Aktualisieren von
Abhängigkeitsverknüpfungen
derart, daß ein
Bewegen/Verschieben einer verknüpften
Datei nicht die Funktionalität
der Datei mit einer Abhängigkeit
verringert. Dateiabhängigkeiten
sind vorhanden, wenn eine erste Datei Daten aus einer zweiten Datei
erfordert. Die erste Datei kann mit der zweiten Datei über eine
Registraturdatei (oder Registry-Datei) verknüpft (linked) sein, die auf
die zweite Datei verweist. Alternativ kann die erste Datei direkt
mit der zweiten Datei über
eine Bezugnahme oder Referenz auf die zweite Datei in der ersten
Datei verknüpft sein.
In Situationen, in denen Dateien von einem Ort eines Speichermediums
zu einem anderen bewegt werden, kann es sein, daß die Verknüpfungen zwischen den abhängigen Dateien
unterbrochen werden, wenn die Referenzen nicht mehr aktuell sind. Wenn
die erste Datei nicht mehr in der Lage ist, die zweite Datei zu
lokalisieren, kann es sein, daß die Funktionalität der ersten
Datei verringert wird.
-
Eine
in der Vergangenheit verwendete Lösung, um die Unterbrechung
von Verknüpfungen
abhängiger
Dateien zu vermeiden, während
sich Dateien bewegen, umfaßte
das Deinstallieren der Dateien aus ihren ursprünglichen Orten und das Wiederinstallieren
der Dateien an ihren neuen Orten. Indem die Dateien neu installiert
wurden (Reinstallation), wurden die Verknüpfungen zwischen den bewegten Dateien
und den von den bewegten Dateien abhängigen Dateien aktualisiert,
um deren aktuelle Orte zu reflektieren. Die Verknüpfungen
zu den bewegten Dateien wurden aktualisiert, indem die aktuellen
Orte der bewegten Dateien anzeigende neue Referenzen in Registraturen
oder direkt in die abhängigen
Dateien eingeschrieben wurden.
-
Ein
Nachteil dieser Lösung
bestand darin, daß der
Prozeß des
Deinstallierens und Neuinstallierens von Dateien eine beträchtliche
Zeitdauer erforderte. Darüber
hinaus kann es sein, daß wichtige
Daten und Dateien, die nachfolgend von den Dateien erzeugt und mit
den Dateien gesichert wurden, versehentlich während des Deinstallationsprozesses
gelöscht
wurden.
-
In
dem "HP-UX Linker
and Librarys User's Guide,
HP9000 Computers" von
HEWLETT-PACKARD, November 1997, B2355–90655, ist ein Linker und
ein Linker-Tool ldd beschrieben. Der Linker wird verwendet, um Dateien
während
der Kompilierung zu verknüpfen.
Die Option -W1 -L zum Kompilieren gestattet es dem Linker, einen
spezifizierten Pfad zu durchsuchen, bevor die Standardpfade für gemeinsame
Bibliotheken durchsucht werden. Das Linker-Tool ldd listet/findet
lediglich Abhängigkeiten
ausführbarer
Dateien. Darüber
hinaus druckt ldd Abhängigkeitsbeziehungen
und dynamische Pfadinformationen aus. Unter einem dynamischen Pfad
wird der Pfad verstanden, der während
des Verknüpfens
und Kompilierens gefunden wurde. Das Tool ldd wirkt an ausführbaren
Dateien, welch neu verknüpft
und neu kompiliert werden müssten,
wenn ein Pfad zu einer Datei, die verknüpft (linked) wurde, sich ändert.
-
Das
US-Patent 5,758,154 beschreibt
eine Registrierung von Computeranwendungssoftware. Wenn Anwendungssoftware
erstmalig in einen Computer geladen wird, wird eine Registrierungsroutine aufgerufen,
die Informationen aus einer Konfigurationsdatei gewinnt und die
Informationen in die Registry speichert. Jedes Mal dann, wenn eine
neuere Version einer Softwareanwendung auf einen Computer geladen
wird, wird die Registry mit den neuen Informationen überschrieben.
Ferner ist beschrieben, dass Platzhalter für Dateipfadnamen verwendet werden
können
und dass ein Server verwendet werden kann, um die Pfadnamen zu gewinnen,
um diese in die Platzhalter zu bringen. Wenn sich ein Pfadname ändert und
nur Platzhalter verwendet werden, muss der Server aktualisiert werden,
um den Pfadnamen über
die Platzhalter zu aktualisieren.
-
Aufgabe
der Erfindung ist es, die Aktualisierung von Abhängigkeiten von einer bewegten
Datei zu beschleunigen, insbesondere ein Deinstallieren und Neuinstallieren
von Dateien zu vermeiden.
-
Diese
Aufgabe wird erfindungsgemäß durch ein
Verfahren mit den Merkmalen des Anspruchs 1, einen Speichermediummanager
mit den Merkmalen des Anspruchs 12 bzw. ein Computersystem mit den Merkmalen
des Anspruchs 18 gelöst.
Vorteilhafte und/oder bevorzugte Weiterbildungen der Erfindung sind
in den Unteransprüchen
gekennzeichnet. Die vorliegende Erfindung wird beispielhaft und
nicht in einem einschränkenden
Sinne in den Figuren der begleitenden Zeichnungen veranschaulicht,
in welchen gleiche Bezugszeichen auf ähnliche Elemente hinweisen
und in welchen:
-
1 eine
Blockdarstellung eines ein Ausführungsbeispiel
der vorliegenden Erfindung implementierenden Computersystems ist;
-
2 eine
Blockdarstellung ist, die richtig verknüpfte Dateien in einem Speichermedium
veranschaulicht;
-
3 eine
Blockdarstellung ist, die Dateien in einem Speichermedium veranschaulicht,
welche Verknüpfungen
aufweisen, die unterbrochen sind;
-
4 eine
Blockdarstellung einer Verknüpfungsaktualisierungseinheit
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ist; und
-
5 ein
Ablaufdiagramm ist, das ein Verfahren zum Verwalten von Dateien
auf einem Speichermedium gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
Es
wird auf 1 Bezug genommen, in der ein
Computersystem als 100 gezeigt ist, bei welchem ein Ausführungsbeispiel
der vorliegenden Erfindung implementiert werden kann. Das Computersystem 100 enthält einen
Prozessor 101, der Datensignale verarbeitet. Der Prozessor 101 kann
ein Mikroprozessor mit einem komplexen Befehlssatz (CISC), ein Mikroprozessor
mit einem reduzierten Befehlssatz (RISC), ein Mikroprozessor mit
sehr langen Befehlsworten (VLIW), ein eine Kombination von Befehlssätzen implementierender
Prozessor oder eine andere Prozessoreinrichtung sein. 1 zeigt
ein Beispiel der vorliegenden Erfindung, das auf einem Einzel-Prozessor-Computersystem 100 implementiert ist.
Es ist jedoch klar, daß die
vorliegende Erfindung in einem Computersystem implementiert werden kann,
das mehrere Prozessoren aufweist. Der Prozessor 101 ist
mit einem CPU-Bus 110 gekoppelt, der Datensignale zwischen
dem Prozessor 101 und weiteren Komponenten in dem Computersystem 100 übermittelt.
-
Das
Computersystem 100 enthält
einen Speicher 113. Der Speicher 113 kann eine
Speichereinrichtung mit dynamischem Speicher mit wahlfreiem Zugriff
(DRAN), mit statischem Speicher mit wahlfreiem Zugriff (SRAM) oder
eine andere Speichereinrichtung sein. Der Speicher 113 kann
Befehle und durch Datensignale dargestellten Code enthalten, der
durch den Prozessor 101 ausgeführt werden kann. Ein Cache-Speicher 102 hält sich
innerhalb des Prozessors 101 auf und speichert in dem Speicher 113 gespeicherte
Datensignale. Der Cache 102 beschleunigt Speicherzugriffe
des Prozessors 101, indem er einen Vorteil aus dessen Lokalität der Zugriffe
zieht. Bei einem alternativen Ausführungsbeispiel des Computersystem 100 hält sich
der Cache 102 außerhalb
des Prozessors 101 auf.
-
Eine
Brücken-Speichersteuereinrichtung 111 ist
mit dem CPU-Bus 110 und dem Speicher 113 gekoppelt.
Die Brücken-Speichersteuereinrichtung 111 lenkt
Datensignale zwischen dem Prozessor 101, dem Speicher 113 und
weiteren Komponenten in dem Computersystem 100 und bildet
eine Brücke
für die
Datensignale zwischen dem CPU-Bus 110, dem Speicher 113 und
einem ersten I/O-Bus 120.
-
Der
erste I/O-Bus 120 kann ein Einzelbus oder eine Kombination
mehrerer Busse sein. Beispielsweise kann der erste I/O-Bus 120 einen
Peripheriekomponentenverbindungsbus (PCI-Bus), einen Personal Computer Memory
Card International Association Bus (PCMCIA-Bus), einen NuBus oder weitere
Busse umfassen. Der erste I/O-Bus 120 schafft Kommunikationsverbindungen
zwischen den Komponenten in dem Computersystem 100. Eine Netzwerksteuereinrichtung 121 ist
mit dem ersten I/O-Bus 120 gekoppelt. Die Netzwerksteuereinrichtung 121 verknüpft das
Computersystem 100 mit einem (in 1 nicht
gezeigten) Netzwerk von Computern und unterstützt die Kommunikation zwischen den
Maschinen. Eine Anzeigegerät-Steuereinrichtung 122 ist
mit dem ersten I/O-Bus 120 gekoppelt. Die Anzeigegerät-Steuereinrichtung 122 gestattet eine
Kopplung eines Anzeigegeräts
mit dem Computersystem 100 und dient als Schnittstelle
zwischen dem Anzeigegerät
und dem Computersystem 100. Die Anzeigegerät-Steuereinrichtung
kann eine Monochromanzeigeadapter(MDA)-Karte, eine Farbgrafikadapter(CGA)-Karte,
eine Verbesserte-Grafikadapter(EGA)-Karte, eine Erweiterte-Grafik-Array(XGA)-Karte
oder eine andere Anzeigegerät-Steuereinrichtung
sein. Das Anzeigegerät
kann ein Fernsehapparat, ein Computermonitor, eine Flachpaneelanzeige
oder eine andere Anzeigeeinrichtung sein. Das Anzeigegerät empfängt Datensignale
aus dem Prozessor 101 über
die Anzeigegerät-Steuereinrichtung 122 und
zeigt die Informationen und Datensignale einem Benutzer des Computersystems 100 an.
Optional ist eine Videokamera 123 mit dem ersten I/O-Bus
gekoppelt. Die Videokamera 123 dient dazu, ein Abbild eines
Objekts aufzunehmen. Die Videokamera 123 kann eine digitale
Videokamera mit einer internen digitalen Videoaufnahmehardware sein,
die das aufgenommene Bild in digitale grafische Daten umsetzt. Alternativ
kann die Videokamera 123 eine analoge Videokamera sein,
die eine digitale Videoaufnahmehardware außerhalb der Videokamera 123 zum
Digitalisieren der aufgenommenen Bilder aufweist.
-
Ein
zweiter I/O-Bus 130 kann ein Einzelbus oder eine Kombination
mehrerer Busse sein. Beispielsweise kann der zweite I/O-Bus 130 einen PCI-Bus,
einen PCMCIA-Bus, einen NuBus, einen Industriestandardarchitektur(ISA)-Bus
oder andere Busse umfassen. Der zweite I/O-Bus 130 schafft Kommunikationsverbindungen
zwischen Komponenten in dem Computersystem 100. Ein Speichermedium 131 ist
mit dem zweiten I/O-Bus 130 gekoppelt. Das
Speichermedium 131 kann eine Datenspeichereinrichtung zum
Speichern von Daten enthalten. Die Datenspeichereinrichtung kann
ein Festplattenlaufwerk, ein Diskettenlaufwerk, ein CD-ROM-Laufwerk, eine
Flash-Speichereinrichtung oder eine andere Speichereinrichtung sein.
Das Speichermedium 131 kann eine oder eine Vielzahl der
beschriebenen Datenspeichereinrichtungen enthalten.
-
Eine
Tastaturschnittstelle 132 ist mit dem zweiten I/O-Bus 130 gekoppelt.
Die Tastaturschnittstelle 132 kann eine Tastatursteuereinrichtung
oder eine andere Tastaturschnittstelle sein. Die Tastaturschnittstelle 132 kann
eine spezielle Einrichtung sein oder sie kann sich in einer anderen
Einrichtung, wie beispielsweise einer Bussteuereinrichtung oder
einem anderen Controller, aufhalten. Die Tastaturschnittstelle 132 gestattet
das Koppeln einer Tastatur mit dem Computersystem 100 und
sendet Datensignale aus einer Tastatur zu dem Computersystem 100. Eine
Audio-Steuereinrichtung 133 ist optional mit dem zweiten
I/O-Bus 130 gekoppelt. Die Audio-Steuereinrichtung 133 dient
dazu, das Aufzeichnen und die Wiedergabe von Klängen zu koordinieren, und ist ebenfalls
mit dem I/O-Bus 130 gekoppelt.
-
Eine
Busbrücke 124 koppelt
den ersten I/O-Bus 120 mit dem zweiten I/O-Bus 130.
Die Busbrücke 124 dient
dazu, Datensignale zwischen dem ersten I/O-Bus 120 und
dem zweiten I/O-Bus 130 zu Puffern und für diese
eine Brücke
zu bilden.
-
Die
vorliegende Erfindung bezieht sich auf die Verwendung des Computersystems 100 zum
Verwalten von Dateien in einem Speichermedium. Gemäß einem
Ausführungsbeispiel
wird das Verwalten von Dateien in einem Speichermedium von dem Computersystem 100 in
Erwiderung des Empfangens von Sequenzen von Befehlen aus dem Hauptspeicher 113 durch
den Prozessor 101 durchgeführt. Derartige Befehle können in
den Speicher 113 aus einem anderen computerlesbaren Medium,
wie beispielsweise der Datenspeichereinrichtung 131 oder aus
einer anderen Quelle über
die Netzwerksteuereinrichtung 121 gelesen werden. Die Ausführung der Sequenzen
von Befehlen veranlaßt
den Prozessor 101, die Dateien in dem Speichermedium zu
verwalten, wie im folgenden beschrieben werden wird. Bei einem alternativen
Ausführungsbeispiel
kann eine fest verdrahtete Schaltung anstelle der oder in Kombination
mit den Softwarebefehlen verwendet werden, um die vorliegende Erfindung
zu implementieren. So ist die vorliegende Erfindung nicht auf irgendeine
spezielle Kombination von Hardwareschaltungen und Software eingeschränkt.
-
2 ist
eine Blockdarstellung, die richtig verknüpfte Dateien in einem Speichermedium 131 veranschaulicht.
Das Speichermedium 131 speichert eine Mehrzahl von Dateien 210, 220, 230, 240 und 250.
Das Speichermedium 131 enthält eine erste Datei 210,
die eine Abhängigkeit
von einer zweiten Datei 220 aufweist. Die erste Datei 210 enthält eine
Referenz 211 zu der zweiten Datei 220, die die
erste Datei direkt mit der zweiten Datei 220 derart verknüpft, daß die erste
Datei Daten aus der zweiten Datei 220 erhalten kann. Die
Referenz 211 kann einen Pfadnamen enthalten, der einen
Ort der zweiten Datei 220 identifiziert.
-
Die
erste Datei 210 kann eine ausführbare Datei sein. Eine ausführbare Datei
enthält
Daten in einem Format, das ein Prozessor direkt ausführen kann.
Die erste Datei 210 kann eine Referenz zu einer zweiten
ausführbaren
Datei, zu einer Datei einer dynamischen Verknüpfungsbibliothek (dynamic link library),
einer Datendatei oder einer anderen Datei enthalten. Die erste Datei 210 kann
eine dynamischen Verknüpfungsbibliotheksdatei
sein. Eine dynamische Verknüpfungsbibliothek
ist eine Bibliothek ausführbarer
Funktionen oder Daten, die von anderen Dateien verwendet werden
können.
Typischerweise stellt eine dynamische Verknüpfungsbibliotheksdatei eine
oder mehrere spezielle Funktionen zur Verfügung, und eine Datei greift
auf diese Funktionen zu, indem sie eine statische oder dynamische Verknüpfung (Verbindung)
zu der dynamischen Verknüpfungsbibliotheksdatei
erzeugt. Eine statische Verknüpfung
bleibt während
einer Programmausführung
konstant, während
eine dynamische Verknüpfung
dann von dem Programm erzeugt wird, wenn sie benötigt wird. Dynamische Verknüpfungsbibliotheksdateien
können
auch Daten enthalten. Dynamische Verknüpfungsbibliotheksdateien weisen
typischerweise die Dateinamenserweiterung DLL auf. Die dynamische
Verknüpfungsbibliotheksdatei
kann eine Referenz zu einer zweiten dynamischen Verknüpfungsbibliotheksdatei
oder einer anderen Datei enthalten. Die erste Datei 210 kann
auch eine Initialisierungsdatei sein. Initialisierungsdateien sind
typischerweise einfache Textdateien, die Konfigurationsinformationen
enthalten. Diese Dateien werden von anderen Dateien verwendet, um
sich auf Referenzen und Betriebs umgebungen beziehende Informationen zu
sichern. Initialisierungsdateien weisen typischerweise die Dateinamenserweiterungen
INI auf. Initialisierungsdateien können eine Referenz zu einer
ausführbaren
Datei, einer Datendatei oder einer anderen Datei enthalten. Die
erste Datei 210 kann auch eine Abkürzungsdatei (short cut file)
sein. Abkürzungsdateien
sind Dateien, die ein Icon auf dem Bildschirm eines Benutzers erzeugen.
Wenn sie ausgewählt
werden, führen
die Abkürzungen
ein Programm in einer Datei aus, zu der die Abkürzung verknüpft ist. Eine Abkürzungsdatei
kann eine Referenz zu einer ausführbaren
Datei enthalten. Abkürzungsdateien
haben typischerweise eine Erweiterung einer Programminformationsdatei
(PIF – program
information file) oder einer Verknüpfungsdatei (LNK – link).
-
Die
zweite Datei 220 kann eine dynamische Verknüpfungsbibliotheksdatei
sein, die zu einer ersten Datei 210 verknüpft ist,
die eine dynamische Verknüpfungsbibliotheksdatei,
eine ausführbare
Datei oder eine andere Datei ist. Die zweite Datei 220 kann auch
eine ausführbare
sein, die mit einer ersten Datei 210 verknüpft ist,
die eine ausführbare
Datei, eine dynamische Verknüpfungsbibliotheksdatei,
eine Initialisierungsdatei, eine Abkürzungsdatei oder eine andere
Datei ist. Die zweite Datei 210 kann auch eine Datendatei
sein, die mit einer ersten Datei 210 verknüpft sein
kann, die eine ausführbare
Datei, eine Initialisierungsdatei oder eine andere Datei ist.
-
Das
Speichermedium 131 enthält
eine dritte Datei 230, die eine Abhängigkeit von einer vierten Datei 240 aufweist.
Die dritte Datei 230 ist mit der vierten Datei 240 über eine
Registraturdatei (Registry-Datei) 250 verknüpft. Eine
Registry-Datei 250 ist eine Datenbasis, die von einem Betriebssystem
verwendet wird, um Konfigurationsinformationen, Dateiinhalte und
Dateiortinformationen zu speichern. Die Registry-Datei 250 enthält eine
Pfadnamensdatei 251, die Dateiortinformationen speichert.
Die dritte Datei 230 ent hält eine Referenz zu einem globalen einzigartigen
Identifizierer (GUID – global
unique identifier) 231, der von der dritten Datei 230 benötigte Daten
identifiziert. Die Daten können
eine Funktion in einer dynamischen Verknüpfungsbibliotheksdatei, einer
ausführbaren
Datei, einer Datendatei oder andere Daten sein. Ein GUID wird von
einem Betriebssystem verwendet, um eine Datei den erforderlichen
Daten zuzuordnen. Das Betriebssystem durchsucht die Registry-Datei 250 und
verknüpft
die Datei, die die Daten aufweist, mit der dritten Datei 230.
Das Betriebssystem ist in der Lage, die die Daten aufweisende Datei
mit der dritten Datei 230 zu verknüpfen, weil die Registry-Datei 250 Dateiortinformationen
der Datei mit den Daten, wie beispielsweise ihren Pfadnamen, enthält. Gemäß 2 weist
die vierte Datei 240 die Daten auf und ist mit der dritten
Datei 230 über
die Registratur (Registry) 250 verknüpft.
-
Die
dritte Datei 230 kann eine dynamische Verknüpfungsbibliotheksdatei,
eine ausführbare
Datei oder eine andere Datei sein. Die vierte Datei kann eine dynamische
Verknüpfungsbibliotheksdatei
sein, die mit einer dritten Datei verknüpft ist, die eine dynamische
Verknüpfungsbibliotheksdatei,
eine ausführbare
Datei oder eine andere Datei ist. Die vierte Datei 240 kann
auch eine ausführbare
Datei sein, die mit einer dynamischen Verknüpfungsbibliotheksdatei, einer
ausführbaren
Datei oder einer anderen Datei verknüpft ist. Die vierte Datei 240 kann
auch eine Datendatei sein, die mit einer dynamischen Verknüpfungsbibliotheksdatei,
einer ausführbaren
Datei oder einer anderen Datei verknüpft ist.
-
3 ist
eine Blockdarstellung, die Dateien mit unterbrochenen Verknüpfungen
veranschaulicht. Wenn Datendateien in einem Speichermedium bewegt
werden, werden den Dateien neue Pfadnamen gegeben. Solange nicht
der Dateiname einer bewegten Datei in einer Datei, die von der bewegten
Datei abhängig
ist, oder in einer für
das Verknüpfen
der bewegten Datei verantwortlichen Registratur aktualisiert wird,
ist die Verknüpfung
(Verbindung) zu der bewegten Datei unterbrochen. 3 veranschaulicht die
in 2 gezeigten Dateien, wobei die zweite Datei 220 zu
einem neuen Ort in dem Speichermedium 131 bewegt wurde.
Der neue Ort in dem Speichermedium 131 kann beispielsweise
ein neuer Laufwerksort oder ein neues Verzeichnis sein, wobei der
zweiten Datei 220 ein neuer Pfadname gegeben wurde. Die
erste Datei 210 enthält
eine Referenz 211 zu dem alten Ort der zweiten Datei 220,
was durch den Block 320 veranschaulicht ist. Wenn somit
die erste Datei 210 versucht, auf die Daten aus der zweiten
Datei 220 zuzugreifen, ist die erste Datei 210 nicht
in der Lage, eine Schnittstelle zu der zweiten Datei 220 herzustellen.
-
3 veranschaulicht,
daß die
vierte Datei 240 zu einem neuen Ort in dem Speichermedium 131 bewegt
wurde. Der neue Ort in dem Speichermedium 131 kann beispielsweise
ein neuer Laufwerksort oder ein neues Verzeichnis sein, wobei der
vierten Datei 240 ein neuer Pfadname gegeben wurde. Die
Registry-Datei 250 enthält
eine Pfadnamensdatei 251, die eine Referenz zu dem alten
Ort der vierten Datei 240 enthält, was durch den Block 340 veranschaulicht
ist. Wenn somit ein Betriebssystem versucht, die dritte Datei 230 mit
der vierten Datei 240 zu verknüpfen, um es der dritten Datei 230 zu
ermöglichen,
auf Daten aus der vierten Datei 240 zuzugreifen, so wird
die dritte Datei 230 nicht in der Lage sein, eine Schnittstelle
zu der vierten Datei 240 herzustellen.
-
4 ist
eine Blockdarstellung, die Module veranschaulicht, die einen Speichermediummanager 400 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung implementieren. Bei einem Ausführungsbeispiel
der vorliegenden Erfindung sind die Module durch Software implementiert
und halten sich in dem Speichermedium 113 (das in 1 gezeigt ist)
als Sequenz von Befehlen auf. Es ist klar, daß die Module auch durch Hardware
als mit dem (in 1 gezeigten) Bus 120 gekoppelte
Komponenten oder als Kombination von sowohl Hardware als auch Software
implementiert werden können.
-
Block 410 repräsentiert
eine Managerschnittstelle. Die Managerschnittstelle 410 erlangt
die Identität
einer Datei, die von einem Ort in dem (in 1 gezeigten)
Speichermedium 131 zu einem anderen Ort bewegt worden ist.
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung kann die Managerschnittstelle 410 diese
Informationen direkt von einem Betriebssystem des Computersystems 100 erlangen.
Gemäß einem
alternativen Ausführungsbeispiel
der vorliegenden Erfindung kann die Managerschnittstelle 410 eine
Benutzerschnittstelle enthalten, die es einem Benutzer ermöglicht,
eine Datei zu identifizieren, die der Benutzer von einem Ort auf
dem Speichermedium zu einem anderen bewegt. Die Identität der Datei
kann ein Pfadname der Datei sein, welcher das Laufwerk und irgendein
Verzeichnis und Unterverzeichnisse, in denen die Datei gespeichert ist,
den Namen der Datei und eine Erweiterung der Datei umfassen kann.
-
Mit
der Managerschnittstelle 410 ist eine Abhängigkeitssucheinheit 420 gekoppelt.
Die Abhängigkeitssucheinheit 420 empfängt die
Identität
der Datei, die bewegt worden ist, von der Managerschnittstelle 410.
Die Abhängigkeitssucheinheit 420 durchsucht
das Speichermedium 131 nach der Identität irgendeiner Datei, die von
der Datei, die bewegt worden ist, abhängig ist und die mit dem vorhergehenden
Ort der Datei, die bewegt worden ist, verknüpft ist. Die Abhängigkeitssucheinheit 420 durchsucht
das Speichermedium 131 nach irgendeiner Datei, die auf
die Datei, die bewegt worden ist, Bezug nimmt (diese referenziert).
Die Referenz stellt eine Abhängigkeitsverknüpfung zu
der Datei, die bewegt worden ist, zur Verfügung. Die Abhängigkeitssucheinheit 420 enthält eine
Registry-Dateischnittstelle 421. Die Registry-Dateischnittstelle 421 durchsucht eine
Registry-Datei in dem Speichermedium 131 nach einer Referenz
zu der bewegten Datei. Die Registry-Dateischnittstelle 421 greift
auf eine Pfadnamensdatei in der Registry-Datei zu, die Dateiortinformationen,
wie beispielsweise den Pfadnamen, von Dateien speichert, auf die
von der Registry-Datei Bezug genommen wird. Die Registry-Datei kann
auf eine bewegte Datei Bezug nehmen, die beispielsweise eine ausführbare Datei,
eine dynamische Verknüpfungsbibliotheksdatei,
eine Datendatei, eine anwendungsspezifische Datendatei oder eine
andere Datei enthalten kann. Die Abhängigkeitssucheinheit 420 enthält eine
Dateischnittstelle 422. Die Dateischnittstelle 422 durchsucht
Nicht-Registry-Dateien in dem Speichermedium 131 nach einer
Referenz (einem Verweis) auf die bewegte Datei. Die Referenz stellt
eine Abhängigkeitsverknüpfung zu
der bewegten Datei zur Verfügung.
Die Dateischnittstelle 422 greift auf sämtliche Nicht-Registry-Dateien
auf dem Speichermedium 131 zu und durchsucht die Nicht-Registry-Dateien
nach einer Referenz, wie beispielsweise dem Pfadnamen, der bewegten
Datei. Die Nicht-Registry-Dateien, auf die zugegriffen werden kann,
umfassen dynamische Verknüpfungsbibliotheksdateien,
ausführbare
Dateien, Initialisierungsdateien, Abkürzungsdateien, und Datendateien.
Die Nicht-Registry-Dateien
können
auf eine bewegte Datei Bezug nehmen, die beispielsweise eine ausführbare Datei,
dynamische Verknüpfungsbibliotheksdatei,
Datendatei, anwendungsspezifische Datendatei oder eine andere Datei
enthalten kann. Wenn die Registry-Schnittstelle 421 oder
die Dateischnittstelle 422 eine Referenz auf die bewegte
Datei in einer anwendungsspezifischen Datendatei finden, erkennt die
Dateischnittstelle 422, daß dies eine Datei ist, die nicht-aktualisierbar
ist.
-
Eine
Aktualisierungseinheit 430 ist mit der Abhängigkeitssucheinheit 420 gekoppelt.
Die Aktualisierungseinheit 430 empfängt die Identität einer
aktualisierbaren Datei, die von der bewegten Datei abhängig ist.
Die Aktualisierungseinheit 430 aktualisiert die Referenz
(Bezugnahme, Verweis) der bewegten Datei in der Datei, die von der
bewegten Datei abhängig
ist. Die Aktualisierungseinheit 430 enthält eine Pfadschreibeinheit 431.
Die Pfadschreibeinheit 431 überschreibt einen alten Pfadnamen
der bewegten Datei mit dem neuen Pfadnamen, der den neuen Ort der
bewegten Datei wiedergibt. Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung überschreibt
die Pfadschreibeinheit 431 alte Pfadnamen der bewegten
Dateien, auf die in Registry-Dateien, Initialisierungsdateien und
anderen Dateien Bezug genommen wird. Die Aktualisierungseinheit 430 enthält eine
Pfadaktualisierungseinheit 432. Die Pfadaktualisierungseinheit 432 aktualisiert
einen Suchpfad in einer Datei, die von einer bewegten Datei abhängig ist,
derart, daß dieser
den neuen Pfadnamen der bewegten Datei enthält. Gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung aktualisiert die Pfadaktualisierungseinheit 432 Suchpfade
der bewegten Dateien, auf die in dynamischen Verknüpfungsbibliotheksdateien,
Abkürzungsdateien
und anderen Dateien Bezug genommen wird.
-
Eine
Signalisiereinheit (flagging unit) 440 ist mit der Abhängigkeitssucheinheit 420 gekoppelt.
Die Signalisiereinheit 440 empfängt die Identität von nicht-aktualisierbaren
Dateien, die auf die bewegte Datei Bezug nehmen. Anwendungsspezifische
Datendateien und Dateien, die auf anwendungsspezifische Datendateien
Bezug nehmen, sind typischerweise in einem eigenen Datenformat geschrieben, welches
das Aktualisieren der Dateien problematisch macht. Um zu verhindern,
daß eine
Datei auf einen aktualisierten Pfadnamen einer anwendungsspezifischen
Datendatei Bezug nimmt, bringt die Signalisiereinheit 440 die
bewegte Datei zu ihrem ursprünglichen
Ort zurück
und benachrichtigt den Benutzer. Gemäß einem alternativen Ausführungsbeispiel
der vorliegenden Erfindung benachrichtigt die Signalisiereinheit 440 den
Benutzer über
die unterbrochene Verknüpfung,
ohne die bewegte Datei zu ihrem ursprünglichen Ort zurückzubringen.
-
Die
Managerschnittstelle 410, die Abhängigkeitssucheinheit 430,
die Registry-Schnittstelle 421, die Dateischnittstelle 422,
die Aktualisierungseinheit 430, die Pfadschreibeinheit 431,
die Pfadaktualisierungseinheit 432 und die Signalisiereinheit 440 können unter
Verwendung einer beliebigen bekannten Schaltung oder irgendeiner
bekannten Technik implementiert werden. Bei einem Ausführungsbeispiel der
vorliegenden Erfindung, bei der der Speichermediummanager 400 in
Hardware implementiert ist, halten sich die Abhängigkeitssucheinheit 420,
die Registry-Schnittstelle 421, die Dateischnittstelle 422, die
Aktualisierungseinheit 430, die Pfadschreibeinheit 431,
die Pfadaktualisierungseinheit 432 und die Signalisiereinheit 440 sämtlich auf
einem einzigen Siliziumsubstrat auf.
-
5 ist
ein Ablaufdiagramm, das ein Verfahren zum Verwalten (Managen) eines
Speichermediums gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht. Beim Schritt 501 wird
eine Datei, die von einem ersten Ort zu einem zweiten Ort auf dem
Speichermedium bewegt wurde, identifiziert. Gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung kann die bewegte Datei durch ein Betriebssystem
oder einen Benutzer des Computersystems identifiziert werden.
-
Beim
Schritt 502 wird das Speichermedium nach einer ersten Datei
durchsucht, die eine Referenz zu der bewegten zweiten Datei aufweist.
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung werden Registry-Dateien und Nicht-Registry-Dateien
nach einer Bezugnahme (Referenz) auf die zweite Datei durchsucht.
Die Referenz auf die zweite Datei kann ein Pfadname der zweiten
Datei sein. Die Nicht-Registry-Dateien, die durchsucht werden, können dynamische
Verknüpfungsbibliotheksdateien,
ausführbare
Dateien, Datendateien, Initialisierungsdateien, Abkürzungsdateien
oder andere Dateien umfassen.
-
Beim
Schritt 503 wird festgestellt, ob die erste Datei, die
auf die bewegte zweite Datei Bezug nimmt, eine aktualisierbare Datei
ist. Sofern die erste Datei eine aktualisierbare Datei ist, fährt die
Steuerung zum Schritt 505 fort. Sofern die erste Datei
eine nicht-aktualisierbare Datei ist, fährt die Steuerung zum Schritt 504 fort.
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung sind Dateien, die anwendungsspezifische
Datendateien referenzieren, Dateien, die nicht-aktualisierbar sind.
-
Beim
Schritt 504 wird eine Benachrichtigung gesendet, um anzuzeigen,
daß eine
unterbrochene Verknüpfung
zwischen der ersten Datei und der bewegten zweiten Datei vorhanden
ist. Gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung wird die bewegte zweite Datei zu ihrem
ersten Ort zurückgebracht.
-
Beim
Schritt 505 wird die Referenz in der ersten Datei derart
aktualisiert, daß sie
anzeigt, daß sich die
zweite Datei zu dem zweiten Ort bewegt hat. Gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung kann die Aktualisierung der Referenz
erreicht werden, indem ein Suchpfad für die zweite Datei aktualisiert
oder die Referenz auf die zweite Datei durch ihren neuen Pfadnamen überschrieben
wird.
-
In
der vorstehenden Beschreibung wurde die Erfindung unter Bezugnahme
auf ihre speziellen Ausführungsbeispiele
beschrieben. Es ist jedoch klar, daß verschiedene Modifikationen
und Änderungen
daran vorgenommen werden können,
ohne von dem breiteren Geist und Umfang der vorliegenden Erfindung
abzuweichen, wie er in den anhängigen Ansprüchen angegeben
ist. Die Beschreibung und die Zeichnungen sind in einem veranschaulichenden und
keinem einschränkenden
Sinne zu verstehen.