-
TECHNISCHES GEBIET
-
Die
vorliegende Erfindung betrifft die Speicherung von Daten auf einem
Festplattenlaufwerk und betrifft besonders die Speicherung von Daten
in einer Weise, die die Zeit verringert, die benötigt wird, um während des
Programmstarts und anderer plattenintensiver Vorgänge Daten
von einer Platte zu lesen.
-
HINTERGRUND DER ERFINDUNG
-
Im
Kontext von Magnetplattenlaufwerken, die zum Speichern von Computerdaten
verwendet werden, wird der Begriff Fragmentierung benutzt, um die
nicht zusammenhängende
Anordnung von Dateien auf einer Plattenpartition oder logischen
Platte zu bezeichnen. Fragmentierte Dateien können sich auf Teile der gleichen Plattendatei,
die über
verschiedene Bereiche der logischen Platte verstreut sind, oder
auf das Zerstreuen ganzer Dateien beziehen, sodass zwischen Dateien
unbenutzter Platz vorhanden ist. Fragmentierung findet oft statt,
wenn alte Dateien aus der logischen Platte gelöscht und neue Dateien hinzugefügt werden.
Wenn Dateien gelöscht
werden und der vorher benutzte Platz verfügbar wird, schreibt das Betriebssystem
des Computers neue Dateien in die freien Bereiche der logischen
Platte. Wenn aber eine neue Datei zu groß ist, um in einen freien Bereich
zu passen, kann das Betriebssystem die Datei fragmentieren, indem
Teile der Datei in mehreren freien Bereichen gespeichert werden,
die über
die ganze logische Platte verstreut sein können. Desgleichen kann eine
bestehende Datei fragmentiert werden, wenn ihre Größe über die
Größe des zusammenhängenden freien
Platzes, der an den Platz grenzt, in dem die Datei gespeichert ist,
hinaus zunimmt. Das Betriebssystem unterhält eine Aufzeichnung darüber, wo
jeder Teil einer Datei gespeichert ist, sodass die Datei in der
richtigen Reihenfolge zurückgewonnen
werden kann, wenn die Datei von der logischen Platte gelesen wird.
-
In
Situationen, wo eine Datei "linear" von Anfang bis Ende
gelesen wird, verlangsamt Fragmentierung den Plattenzugriff und
verschlechtert die Gesamtleistung von Plattenoperationen. Dienstprogramme
stehen zur Verfügung,
um die Dateien auf fragmentierten Platten zu defragmentieren. Zusätzlich zum
Neuordnen der Dateien, sodass jede Datei in zusammenhängenden
Abschnitten der Platte gespeichert ist, ordnen diese Programme die
Dateien gewöhnlich
so an, dass sie alle am Anfang der logischen Platte gespeichert
sind. Dies konsolidiert freien Platz am Ende der Platte und wird
für nützlich gehalten,
weil das Betriebssystem nicht so lang suchen muss, um genug verfügbaren Platz
zum Speichern neuer Dateien zu lokalisieren, und es wahrscheinlicher
ist, dass die neuen Daten in zusammenhängenden Clustern (d.h. unfragmentiert)
und nicht in zahlreichen kleineren, über die ganze Platte verstreuten
Gruppen von Clustern gespeichert werden.
-
Defragmentierung
ist vorteilhaft und verbessert die Leistung, wenn die unfragmentierten
Dateien linear von Anfang bis Ende gelesen werden. Wenn jedoch bestimmte
Operationen durchgeführt
werden, gewinnt der Computer Blöcke
von Daten aus mehreren verschiedenen Dateien in irgendeiner vorhersagbaren
Folge zurück,
während
oft nur wenige Blöcke
aus jeder Datei gelesen werden. Zum Beispiel kann das Starten eines Textverarbeitungsprogramms
zur Folge haben, dass ein erster Teil des Hauptausführbaren,
ein Abschnitt einer dynamisch gelinkten Bibliothek, einer zweiter
Teil der Hauptausführbaren,
eine Präferenz-Datei usw. geladen werden.
Eine ähnliche
Plattenaktivität
findet statt, wenn bestimmte Programmbefehle (z.B. "Datei-Öffen") gewählt werden.
Diese Arten von plattenintensiven Operationen können eine Menge an Plattenkopfbewegungen von
einem physikalischen Cluster zu einem anderen zur Folge haben. Weil
moderne Mikroprozessoren im Vergleich zu der mittleren Suchzeit
eines Plattenlaufwerks so schnell sind und viele verschiedene Dateien
von der Platte gelesen werden müssen,
um ein typisches Programm zu starten, wird ein großer Teil
der zum Starten eines Programms benötigten Zeit damit zugebracht,
dass der Mikroprozessor leer läuft
und daruf wartet, dass sich die Plattenköpfe von einem Cluster zu einem
anderen bewegen.
-
Basierend
auf diesen Beobachtungen ist es beim Durchführen eines plattenintensiven
Vorgangs (z.B. Starten eines Programms oder Starten eines mit einigen
Befehlen verbundenen Codes) vorteilhaft, die während des plattenintensiven
Vorgangs benutzten Datenblöcke
auf der logischen Plattenpartition (und somit auf der physikalischen
Platte) in der Reihenfolge anzuordnen, in der auf sie während dieses
Vorgangs zugegriffen wird. Dies hätte zur Folge, dass die Programmdateien
druch Design "fragmentiert" werden, und würde die
Leistung verbessern, indem die Zahl von nicht sequenziellen Plattenzugriffen,
die nötigt
sind, um die erforderlichen Daten von der logischen Platte zu laden,
reduziert wird.
-
Der
Stand der Technik schreibt diese Art Restrukturierung oder Fragmentierung
von Anwendungsdateien, um den Anwendungsstartprozess zu optimieren.
Zum Beispiel beschreibt IBM Technical Disclosure Bulletin Seriennumer
TDB0196.0112, was es profilgeführtes
Dateisystem-Restrukturieren nennt. Anstatt Dateien basierend auf
statischen Annahmen von Dateireferenzmustern anzuordnen, bestimmt
das System dynamisch Dateizugriffsmuster, wenn Programme gefahren
werden, und teilt Plattenplatz zu, um die Dateisystemleistung für jede Hardware-/Software-Konfiguration,
auf der das Programm gefahren wird, zu maximieren. Um dies zu Stande
zu bringen, wird die Dateisystem Aktivität beim Anlaufen des Programms überwacht,
und die Plattensektoren, auf die zugegriffen wird, werden in einer
Datei eingetragen, die Profildaten enthält. In vorbestimmten Abständen werden
die Profildaten analysiert, um festzustellen, ob eine optimalere
Dateizuteilungsstruktur möglich
ist. Wenn ja, kann der Operator ein Restrukturierungsprogramm fahren,
das Dateien Plattenplatz basierend auf den in den Profildaten angegebenen
Plattenzugriffsmustern zuteilt. Das Programm würde die Plattenblock-Zugriffsadressen
aus den Profildaten ihren zugehörigen
Dateien zuordnen und die Blöcke,
auf die häufig
zugegriffen wird, physikalisch dicht beieinander auf der Platte
platzieren. Die resultierende Plattenblock-Zuteilungsstruktur würde für die gemeinsamen
Zugriffsmuster für
diese spezifische Computer-Konfiguration optimiert werden.
-
Microsoft
Corporation hat auch angekündigt,
dass sein Betriebssystem "WINDOWS
98" Merkmale enthalten
wird, die ihm erlauben, die Plattenaktivität während des Anwendungsprogrammstarts
zu überwachen und
die gespeicherten Dateien so umzuordnen, dass während des Startens benutzte
Datenblöcke
in sequenzieller Weise angeordnet sind.
-
Obwohl
der Stand der Technik einen Prozess zum Optimieren von Dateien für den Programmstart
beschreibt, werden diese Verfahren durchgeführt, nachdem Programme auf
einem Computer installiert sind, und anschließend durch einen Benutzer gestartet.
Diese Lösung
enthält
mehrere Nachteile. Zum Beispiel kann die Optimierung erst stattfinden,
wenn ein Programm installiert und gestartet wurde und der Startprozess überwacht
wurde. Der Prozess des Überwachens
von Plattenzugriffen während
des Programmanlaufs kann den Anlaufprozess wesentlich verlangsamen.
Nachdem der Anlaufprozess überwacht
ist, muss der Computer eine zeitraubende Optimierungsroutine fahren,
die den Benutzer daran hindern wird, den Computer während des Optimierungsprozesses
zu benutzen, oder verlangt, dass der Benutzer den Computer in Betrieb
lässt,
sodass die Routine nach Feierabend gefahren werden kann. Schließlich ist
diese Lösung
nur zum Überwachen
und Optimieren des Anlaufprozesses geeignet, nicht aber für andere
plattenintensive Operationen, z.B. Laden des mit einigen Befehlen
(z.B. "Datei-Öffnen") verbundenen Codes.
-
Wo
die Optimierungsmerkmale in Betriebssystem-Software implementiert
sind, müsste
ein Benutzer eins Kopie der passenden Version des Betriebssystems
erlangen und installieren, um sich diese Optimierungsmerkmale zu
Nutze zu machen. In vielen Fällen
sind Benutzer abgeneigt, das nötige
Geld oder die Zeit aufzuwenden, um ihre Betriebssystem-Software
aufzurüsten,
um Nutzen aus neuen Merkmalen zu ziehen, oder können in einem Unternehmen sein,
wo sie diese Entscheidung nicht selbst treffen. Dies resultiert
in einer großen
Zahl von Benutzern, die ältere
Versionen eines Betriebssystems verwenden und nicht in der La ge
sind, die verbesserte Leistung beim Anwendungsstart zu erfahren.
-
In
der Technik besteht daher ein Bedarf an einem verbesserten System
und Verfahren zum Speichern von Daten auf einer logischen Platte
in der Reihenfolge, in der auf sie zugegriffen wird, wenn Anwendungen oder
Befehle gestartet werden. Ein solches Verfahren sollte die Notwendigkeit
umgehen, Anwendungsprogramm-Dateien, nachdem sie auf einer logischen
Platte installiert sind, zu überwachen,
und sollte nicht verlangen, dass Benutzer eine neue Version ihrer
Betriebssystem-Software erlangen und installieren.
-
WO
97/37313 offenbart ein opportunistisches dateiziehendes lückenfüllendes
Verfahren und Vorrichtung zur Dateistruktur Reorganisation. Das
System unterteilt reorganisierbaren Speicherplatz in Dateibereiche. Jeder
Dateibereich enthält
Dateidaten oder enthält
keine Dateidaten. Das System hat ein definiertes Ziel, wobei Dateien
von Daten in einer opportunistischen Weise zu verfügbaren Lücken bewegt
werden, um den Speicher in dem Speicherraum zu optimieren. Das System
lokalisiert zuerst die größten Lücken, die
mit der größten Menge
an Daten entsprechend dieser Lücke
zu füllen
sind. Dateien können
daher innerhalb des Speicherraumes von einer Position zu einer anderen
bewegt werden, und mit der Zeit wird sich das definierte Ziel seiner Erfüllung nähern.
-
EP-A-690369
(Sony) beschreibt ein Plattensteuerverfahren, wobei eine externe
Vorrichtung, z.B. ein Computer, die in eine Speichereinheit zu schreibenden
Daten sowie die Sequenz, oder externe Adresse, liefert, in der die
Daten in die Speichereinheit zu schreiben sind, um die Geschwindigkeit
der Datenübertragung zwischen
dem Computer und der Speichereinheit zu erhöhen.
-
Die
vorliegende Erfindung ist durch die Merkmale, wie in den begleitenden
Ansprüchen
beansprucht, definiert. Die Erfindung erfüllt den oben genannten Bedarf
durch Installieren oder späteres
Neuordnen eines Programms, sodass startbezogene Abschnitte, die
gelesen werden, wenn das Programm gestartet oder ein Befehl ausgeführt wird,
in einer Reihenfolge so nahe wie möglich zu der, in der sie während eines
typischen Starts gelesen werden, gespeichert werden. Die Software,
die während
oder nach der Installation benutzt wird, enthält die nötigen Programmdateien und eine
Ladefolgeliste, die die Reihenfolge identifiziert, in der startbezogene
Abschnitte der Dateien gelesen werden. Während der Installation oder
späteren
Umordnung werden die startbezogenen Abschnitte der Dateien in der
in der Ladefolgeliste angegebenen Reihenfolge angeordnet, wobei
die startbezogenen Abschnitte vorzugsweise in zusammenhängenden
Clustern auf der logischen Platte gespeichert werden. Der Rest der
Dateien wird in einem anderen freien Platz auf der Platte installiert.
Wenn ein Be nutzer das Programm fährt,
wird die Anlaufzeit verringert, weil der Computer in der Lage sein
wird, die Startdateien in der richtigen Reihenfolge aus zusammenhängenden
Clustern auf der logischen Platte zu lesen, um so mit dem Lesen
von Daten aus nicht zusammenhängenden
Clustern verbundene Verzögerungen
zu verringern.
-
Allgemein
beschrieben stellt die vorliegende Erfindung ein computerlesbares
Installationsmedium bereit und erlaubt Programmen, in einer Weise
installiert oder später
umgeordnet zu werden, die den Prozess des Anlaufens oder Startens
eines Programms oder anderer plattenintensiver Vorgänge beschleunigt.
-
Die
verschiedenen Aspekte der vorliegenden Erfindung können aus
einer Durchsicht der folgenden ausführlichen Beschreibung der offenbarten
Ausführungen
und durch Bezugnahme auf die anliegenden Zeichnungen und Ansprüche klarer
verstanden und geschätzt
werden.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Blockschaltbild eines Personal Computers, der eine Betriebsumgebung
für eine
Ausführung
der vorliegenden Erfindung bereitstellt.
-
2 ist
ein Flussdiagramm, das ein exemplarisches Verfahren zum Erzeugen
einer Installationsplatte zum Installieren von Daten auf einer logischen
Platte in der Reihenfolge, in der sie während des Programmstarts geladen
werden, veranschaulicht.
-
3 ist
ein Flussdiagramm, das ein exemplarisches Verfahren zum Installieren
von Dateien von einer Installationsplatte auf einer logischen Platte
und Speichern der Dateien in der Reihenfolge, in der sie während des
Programmstarts geladen werden, veranschaulicht.
-
4 ist
eine Tabelle, die den Inhalt einer exemplarischen Ladesequenzdatei
zeigt.
-
5 ist
eine Tabelle, die startbezogene Komponenten von drei Dateien und
eine exemplarische Ladereihenfolge für diese Komponenten zeigt.
-
6 ist
eine Tabelle, die ein exemplarisches Verfahren zum Schreiben von
Dateikomponenten in freie Cluster auf einer logischen Platte veranschaulicht.
-
7 ist
eine Tabelle, die ein exemplarisches Verfahren zum Schreiben von
Dateikomponenten in freie Cluster auf einer logischen Platte veranschaulicht.
-
8 ist
ein Flussdiagramm, das ein alternatives Verfahren zum Optimieren
von Abschnit ten von Dateien, nachdem sie auf einem logischen Laufwerk
installiert wurden, veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die
vorliegende Erfindung ist auf ein verbessertes System und Verfahren
zum Installieren eines Programms auf einem Festplattenlaufwerk gerichtet.
Bei einer exemplarischen Ausführung
werden die anwendungsbezogenen Dateien auf einer logischen Plattenpartition
(d.h. auf einer logischen Untermenge eines physikalischen Plattenlaufwerks)
so installiert, dass die startbezogenen Abschnitte, die gelesen
werden, wenn das Programm gestartet oder ein Befehl ausgewählt wird,
in der Reihenfolge gespeichert werden, in der sie während des
Startens gelesen werden. Die Installations-Software enthält die nötigen Dateien
und eine Ladefolgeliste, die die Reihenfolge identifiziert, in der
startbezogene Abschnitte der Dateien während des Startens gelesen
werden. Während
der Installation werden die Abschnitte der Dateien, die während des
Startens benutzt werden, in der in der Ladefolgeliste angegebenen
Reihenfolge installiert, wobei die startbezogenen Abschnitte vorzugsweise
in zusammenhängenden
Clustern auf der logischen Platte gespeichert werden. Der Rest der Dateien
wird in einem anderen freien Platz auf der Platte installiert. Alternativ
können
die Programmdateien in einer herkömmlichen Weise installiert
und die startbezogenen Abschnitte anschließend in der in einer Ladefolgeliste
angegebenen Reihenfolge umgeordnet werden. Wenn ein Benutzer das
Programm startet oder einen Befehl auswählt, wird die Startzeit reduziert
werden, weil der Computer in der Lage sein wird, die startbezogenen
Abschnitte der Dateien in der richtigen Reihenfolge aus zusammenhängenden
Clustern auf der Platte zu lesen, um so mit dem Lesen von Daten
aus nicht zusammenhängenden
Clustern verbundene Verzögerungen zu
verringern.
-
Mit
Verweis auf die Zeichnungen, in denen gleiche Verweiszeichen gleiche
Elemente überall
in den Figuren darstellen, werden Aspekte der vorliegenden Erfindung
und eine exemplarische Betriebsumgebung beschrieben.
-
EXEMPLARISCHE BETRIEBSUMGEBUNG
-
1 und
die folgende Erörterung
sind gedacht, eine kurze allgemeine Beschreibung einer geeigneten
Rechenumgebung zu geben, in der die Erfindung implementiert werden
kann. Während
die Erfindung im allgemeinen Kontext eines Einrichtungsprogramms
beschrieben wird, das verwendet wird, um ein Anwendungsprogramm
auf einem mit einem Personal Computer verbundenen Festplattenlaufwerk
zu installieren, werden die Fachleute in der Technik erkennen, dass
die Erfindung auch in Kombination mit einer Vielfalt von Programmmodulen,
einschließlich
Anwendungsprogrammmodulen, Betriebssystem-Programmmodu len, Dienstprogrammmodulen
usw., implementiert werden kann. Programmmodule umfassen gewöhlich Routinen, Programme,
Komponenten, Datenstrukturen usw., die bestimmte Tasks durchführen oder
bestimmte abstrakte Datentypen implementieren. Außerdem werden
die Fachleute erkennen, dass die Erfindung mit anderen Computersystem-Konfigurationen
praktiziert werden kann, einschließlich handgehaltener Geräte, Multiprozessorsystemen,
mikroprozessorbasierter oder programmierbarer Verbraucherelektronik,
Minicomputern, Mainframe-Computern und dergleichen. Die Erfindung
kann auch in verteilten Rechenumgebungen praktiziert werden, wo
Tasks durch entfernte Verarbeitungseinrichtungen durchgeführt werden,
die durch ein Kommunikationsnetz verbunden sind. In einer verteilten
Rechenumgebung können
sich Programmmodule sowohl in lokalen als auch in entfernten Speichereinrichtungen
befinden.
-
Auf 1 verweisend
enthält
ein exemplarisches System zur Implementierung der Erfindung einen herkömmlichen
Personal Computer 20, der eine Verarbeitungseinheit 21,
einen Systemspeicher 22 und einen Systembus 23 enthält, der
den Systemspeicher mit der Verarbeitungseinheit 21 verbindet.
Der Systemspeicher 22 enthält einen Nurlese-Speicher (ROM) 24 und
einen Direktzugriffsspeicher (RAM) 25. Ein Basis-Eingabe/Ausgabesystem
(BIOS) 26, das die Basisroutinen enthält, die helfen, Information
zwischen Elementen in dem Personal Computer 20 zu übertragen,
z.B. während
des Hochlaufens, ist im ROM 24 gespeichert. Der Personal
Computer 20 enthält
weiter ein Festplattenlaufwerk 27, ein wechselbares Magnetplattenlaufwerk 28, z.B.
zum Lesen oder Beschreiben einer wechselbaren Platte 29 und
ein optisches Plattenlaufwerk 30, z.B. zum Lesen einer
CD-ROM Platte 31 oder zum Lesen oder Beschreiben eines
anderen optischen Mediums. Das Festplattenlaufwerk 27,
das wechselbare Magnetplattenlaufwerk 28 und das optische
Plattenlaufwerk 30 sind mit dem Systembus 23 über eine
Festplattenschnittstelle 32, eine Magnetplattenschnittstelle 33 und
eine optische Plattenschnittstelle 34 verbunden. Die Laufwerke
und ihre zugehörigen
computerlesbaren Medien liefern nicht flüchtige Speicherung für den Personal
Computer 20. Die Fachleute werden erkennen, dass ein einzelnes
Festplattenlaufwerk 27 eine oder mehrere "Partitions" oder "logische Platten" enthält, die
logische Untermengen einer physikalischen Laufwerksvorrichtung sind.
Obwohl sich die obige Beschreibung von computerlesbaren Medien auf
ein Festplattenlaufwerk, eine wechselbare Magnetplatte und eine
CD-ROM Platte bezieht, sollten die Fachleute erkennen, dass andere
Arten von Medien, die von einem Computer lesbar sind, verwendet
werden können.
Zum Beispiel können
Magnetkassetten, Flash-Speicherkarten,
digitale Videoplatten, Bernoulli-Kassetten und dergleichen ebenfalls
in der exemplarischen Betriebsumgebung verwendet werden.
-
Eine
Anzahl von Programmmodulen können
auf den Laufwerken und im RAM 25 gespei chert werden, einschließlich eines
Betriebssystems 35 (z.B. das Betriebssystem "WINDOWS 95" von Microsoft Corporation, einer
Reihe von Anwendungsprogrammen 35 (z.B. die "MICROSOFT OFFICE" Programmreihe),
eines oder mehr anderer Anwendungsprogramme 37 und Daten 38.
Betriebssystem-Software und Anwendungsprogramme werden typischerweise
auf dem Festplattenlaufwerk 27 von einer CD-ROM 31 oder
Floppydisk 29 installiert. In den meisten Fällen wird
der Installationsprozess durch ein Einrichtungsprogramm oder Installationsprogramm
gesteuert, das auf der CD-ROM oder Floppydisks zusammen mit dem
Betriebssystem oder anwendungsbezogenen Dateien gespeichert ist.
-
Ein
Benutzer kann Befehle und Information über eine Tastatur 40,
ein Zeigegerät,
z.B. eine Maus 42, in den Personal Computer 20 eingeben.
Andere Eingabeeinrichtungen (nicht gezeigt) können ein Mikrofon, Joystick,
Gamepad, Satellitenschüssel,
Scanner oder dergleichen umfassen. Diese und andere Eingabeeinrichtungen
werden oft mit der Verarbeitungseinheit 21 durch eine Serialport-Schnittstelle 46 verbunden,
die mit dem Systembus 23 verbunden ist, können aber
durch andere Schnittstellen verbunden werden, z.B. einem Gameport
oder einem Universal-Serienbus (USB). Ein Monitor 47 oder
eine andere Art von Anzeigeeinrichtung ist ebenfalls mit dem Systembus 23 über eine
Schnittstelle, z.B. einen Videoadapter 48, verbunden. Zusätzlich zu
dem Monitor umfassen Personal Computer typischerweise andere periphere
Ausgabeeinrichtungen (nicht gezeigt), wie z.B. Lautsprecher oder
Drucker.
-
Der
Personal Computer 20 kann unter Verwendung von logischen
Verbindungen zu einem oder mehr entfernten Computern, z.B. ein entfernter
Computer 49, in einer vernetzten Umgebung arbeiten. Der
entfernte Computer 49 kann ein Mail-Server (der einen oder
mehrere Nachrichtenspeicher enthält),
ein Datei-Server (der einen oder mehrere Dateispeicher enthält), ein
Router, ein Netzwerk-PC, eine Peer-Einrichtung oder ein anderer
gewöhlicher
Netzwerkknoten sein und enthält
typischerweise viele oder alte oben bezüglich des Personal Computers 20 beschriebenen
Elemente, obwohl in 1 nur eine Speichereinrichtung 50 gezeigt
wurde. Die in 1 gezeigten logischen Verbindungen
umfassen ein lokales Netzwerk (LAN) 51 und ein Weitbereichs-Netzwerk
(WAN) 52. Solche Netzwerkumgebungen sind in Büros, unternehmensweiten
Computernetzwerken, Intranetzen und dem Internet an der Tagesordnung.
-
Wenn
in einer LAN-Netzwerkumgebung benutzt, ist der Personal Computer 20 über eine
Netzwerkschnittstelle 53 mit dem LAN 51 verbunden.
Wenn in einer WAN-Netzwerkumgebung benutzt, enthält der Personal Computer 20 typischerweise
einen Modem 54 oder eine andere Einrichtung zum Errichten
von Kommunikationen über
das WAN 52, z.B. Internet.
-
Der
Modem 54, der intern oder extern sein kann, ist mit dem
Systembus 23 über
eine Serialport-Schnittstelle 46 verbunden. In einer vernetzten
Umgebung können
bezüglich
des Personal Computers 20 gezeigte Programmmodule oder
Teile davon in der entfernten Speichereinrichtung gespeichert sein.
Man wird einsehen, dass die gezeigten Netzwerkverbindungen exemplarisch
sind und andere Einrichtungen zum Herstellen einer Kommunikationsverbindung
zwischen den Computern verwendet werden können.
-
HERKÖMMLICHE PLATTENLAUFWERKSFORMATIERUNG
-
Bevor
die Merkmale der vorliegenden Erfindung beschrieben werden, ist
es hilfreich, die Art und Weise zu beschreiben, in der Daten auf
herkömmlichen
Festplattenlaufwerken gespeichert werden.
-
Festplattenlaufwerke
erlauben Computern, die darauf gespeicherten Daten zu ändern, sodass
Daten von der Magnetplatte sowohl gelesen als auch darauf geschrieben
werden können.
Ein physikalisches Plattenlaufwerk enthält eine oder mehrere Partitions
oder logische Platten, die logische Untermengen des physikalischen
Laufwerks sind. Die Daten werden gewöhnlich als getrennte Dateien
auf einer logischen Platte gespeichert, wobei auf jede Datei unabhängig zugegriffen
werden kann. Die Stelle auf der Platte, wo jede Datei gespeichert
ist, wird identifiziert und in einer Datenstruktur gespeichert,
die dem Computer erlaubt, auf jede der Dateien auf der logischen
Platte schnell zuzugreifen.
-
Wenn
ein Festplattenlaufwerk für
den Gebrauch formatiert wird, wird der Speicherbereich auf der Platte
in konzentrische Kreise, genannt Spuren, geteilt. Die Zahl von Spuren
auf einer Platte hängt
von der Größe der Platte
ab. Jede Spur auf der Platte wird in eine gleiche Zahl von Sektoren
geteilt. Die Sektoren sind typischerweise in Scheiben so angeordnet,
dass die Sektoren am äußeren Rand
der Platte mehr linearen Platz entlang einer Spur in Anspruch nehmen
als die Sektoren nahe dem inneren Rand der Platte. Jeder Sektor
wird jedoch benutzt, um eine identische Menge an Daten, typischerweise
512 Byte, zu speichern.
-
Die
Sektoren auf jeder Spur werden zu Clustern gruppiert. Das Gruppieren
von Sektoren zu Clustern wird durch das Betriebssystem durchgeführt und
ist somit keine physikalische Abgrenzung. Jede Spur auf der Platte
enthält
die gleiche Zahl von Clustern, und jeder Cluster auf der Platte
enthält
die gleiche Zahl von Sektoren. Ein Cluster umfasst gewöhnlich 1
bis 64 Sektoren, abhängig
von der Größe der Platte,
wobei jeder Sektor gewöhnlich
512 Byte an Daten sichert. Jeder Cluster ist unabhängig zugänglich.
-
Das
Betriebssystem eines Computers speichert jede Datei in einem oder
mehreren Clustern auf der logischen Platte. Große Dateien können mehrere
Cluster benötigen,
um alle mit der Datei verbundenen Daten zu halten, während sehr
kleine Dateien in einem einzigen Cluster gespeichert werden können. Weil
ein Cluster Daten von mehr als einer Datei nicht speichern kann,
bleiben ein oder mehrere Sektoren eines Clusters leer, wenn die
Datei nicht genug Daten enthält,
um alle Sektoren des Clusters zu füllen. Der Plattenplatz wird
daher am effizientesten genutzt, wenn die in jedem Cluster gespeicherte
Menge an Daten in Bezug auf die Größe der meisten Dateien recht
klein ist.
-
Magnet-Festplattenlaufwerke
enthalten typischerweise einen Stapel von steifen Aluminiumscheiben, oder
Plattem, die mit einem magnetischen Material beschichtet sind. Jeder
Platter kann Daten auf seiner oberen und unteren Oberfläche speichern.
Daten werden auf jeder der Platten durch Magnetisieren von Bereichen der
Plattenoberfläche
codiert. Daten werden durch einen Lese/Schreib-Kopf von der Platte
zurückgewonnen oder
derselben hinzugefügt.
Jeder Kopf des Magnetplattenlaufwerks besteht aus einem winzigen
Elektromagneten, der an einem Schwenkarm befestigt ist, wobei der
Elektromagnet sehr nahe an der Oberfläche der Platten positioniert
ist. Ein solcher Kopf wird für
jede Aufzeichnungsoberfläche
auf jedem Platter bereitgestellt. Die Arme schwenken, um die Köpfe über die
Oberfläche
der Platten in einem im Allgemeinen radialen Pfad hin und her zu
bewegen. Kopf-Aktuatoren schwenken die Arme, um die Bewegung der
Köpfe zu
steuern. Wenn Daten auf eine Platte geschrieben werden, wird der
Kopf über
dem geeigneten Bereich der Platte positioniert, wo die Daten zu
schreiben sind. Ein dem Kopf zugeführter elektrischer Strom erzeugt
ein Magnetfeld, das einen kleinen Bereich der Platte in der Nähe des Kopfes
magnetisiert. Dieser kleine magnetisierte Bereich stellt ein digitales
Bit dar. Desgleichen wird, wenn Daten von einem Plattenlaufwerk
gelesen werden, der Kopf über dem
geeigneten magnetisierten Bereich der Platte positioniert, wodurch
ein Strom in dem Kopf induziert wird. Der in dem Kopf induzierte
Strom wird dann in digitale Daten decodiert.
-
Die
Platter des Plattenlaufwerks sind alle mit einer einzigen Spindel
verbunden. Die Spindel ist mit einem Motor verbunden, der die Platten
unison mit einer konstanten Rate dreht. Obwohl die Sektoren der
Platte verschiedene Mengen an Platz in Anspruch nehmen können, ist
die in jedem Sektor gespeicherte Menge an Daten identisch. Dies
erlaubt der Platte, sich mit einer konstanten Rate zu drehen, um
ungeachtet der Stelle des Sektors auf der Platte gleiche Mengen
an Daten zurückzugewinnen.
-
Wenn
auf einen neuen Cluster auf der Platte zugegriffen wird, müssen zwei
mechanische Vorgänge stattfinden,
bevor der Kopf wirklich Daten zu lesen oder zu schreiben beginnt.
Erstens, der Kopf wird radial von seiner gegenwärtigen Stelle zu der Stelle
der Spur bewegt, die den Ziel-Cluster enthält. "Suchzeit" betrifft die Zeit, die der Arm, der
den Kopf hält,
benötigt,
um die Wirkungen von Trägheit
und Reibung zu überwinden
und um seine Bewegung durchzuführen.
Die Suchzeit umfasst auch "Absetzzeit", die die Zeit ist,
die der Kopf benötigt,
um sich nach seiner Bewegung in einer stationären Position abzusetzen. Zweitens,
der Kopf muss warten, bis der Cluster, der die gewünschten
Daten enthält,
sich unter den Kopf gedreht hat. Diese Zeit wird als "Rotationslatenz" bezeichnet. Weil
sich die Platte mit einer konstanten Rate dreht, ist die maximale
Menge an Zeit, die der Kopf warten muss, damit der gewünschte Cluster
unter ihm durchläuft,
die Zeit, die der Platter benötigt,
um eine Umdrehung zu vollenden. Jeder Zugriff auf einen neuen Cluster
erzeugt daher infolge der mechanischen Bedingungen des Zugreifens
auf den richtigen Bereich der Platte eine inhärente Verzögerung.
-
Das
Betriebssystem muss eine Aufzeichnung der Stelle der auf der logischen
Platte gespeicherten Dateien unterhalten. Mehrere Datenstrukturen
werden zum Dateizugriff verwendet. Jeder Sektor auf der logischen
Platte hat eine eindeutige Identifizierungsnummer, die auf der Stelle
des Sektors auf der logischen Platte basiert. Desgleichen hat jeder
Cluster eine eindeutige Cluster-Nummer. Die Identifizierungsnummern
werden so zugeteilt, dass aneinandergrenzende Sektoren und Cluster
aufeinanderfolgend nummeriert werden. Die Hauptdatenstruktur, die
benutzt wird, um zu bestimmen, welche Teile der logischen Platte
für die
Dateidatenspeicherung verwendet werden, ist die Dateizuteilungstabelle
(FAT). Andere Dateisysteme enthalten das Hochleistungs-Dateisystem
(HPFS) und das NT-Dateisystem (NTFS). Obwohl die vorliegende Erfindung
im Kontext eines FAT-Dateisystems beschrieben wird, ist die Erfindung
auf andere Arten von Dateisystemen anwendbar.
-
Bei
einem FAT-Dateisystem wird die FAT in der Nähe des Anfangs der logischen
Platte oder Partition gespeichert und enthält einen Eintrag für jeden
Cluster auf der logischen Platte. Die Cluster werden in der FAT nach
ihrer Cluster-Nummer aufeinanderfolgend aufgeführt. Der FAT-Eintrag für jeden
Cluster enthält
die Nummer des Clusters, in dem der nächste Teil dieser Datei enthalten
ist. Der FAT-Eintrag für
den Cluster, der die letzten Daten einer Datei enthält, enthält einen
Dateiende-Eintrag (EOF). Jede auf der logischen Platte gespeicherte
Datei wird daher in der FAT als eine Kette von einem oder mehreren
Clustern dargestellt. Die FAT gibt an, ob jeder Cluster einer Datei
zugeteilt ist, sagt aber dem Betriebssystem des Computers nicht
direkt, zu welcher Datei ein gegebener Cluster gehört.
-
Wie
oben erwähnt,
kann Plattenplatz am wirkungsvollsten genutzt werden, wenn jeder
Clusster recht klein ist (z.B. 4 kB). Die Größe der FAT einer Plattenpartition
bestimmt jedoch die maximale Zahl von Clustern, die auf einer logischen
Platte enthalten sein können,
und folg lich die Größe der Cluster.
In einem FAT 16 Dateisystem benutzt z.B. die FAT eine 16-Bit Zahl,
um jeden Cluster darzustellen. Dies gestattet maximal 65,536 (d.h.
64 k) Cluster auf der Platte. Die Größe einer Platte kann durch
die Größe der FAT
geteilt werden, um die Mindestgröße jedes
Clusters zu bestimmen, wie in Tabelle I veranschaulicht:
Plattengröße | Min.
Clustergröße (Bytes) |
Bis
zu 32 MB | 512 |
> 32 MB bis 64 MB | 1
k |
> 64 MB bis 128 MB | 2
k |
> 128 MB bis 256 MB | 4
k |
> 256 MB bis 512 MB | 8
k |
> 512 MB bis 1 GB | 16
k |
> 1 GB bis 2 GB | 32
k |
Tabelle
1
-
Das
FAT 32 Dateisystem verwendet eine 28-Bit Zahl, um jeden Cluster
darzustellen, und ist in der Lage, 228 Cluster
zu verfolgen, was Cluster von 4 kB oder kleiner auch auf sehr großen logischen
Platten erlaubt. FAT 32 ist in den OSR2 (OEM Service Release 2)
Versionen des Betriebssystems "WINDOWS
95" und nachfolgenden "WINDOWS" Betriebssystemen,
wie z.B. dem "WINDOWS
98" Betriebssystem,
verfügbar.
-
Eine
Datenstruktur, genannt Verzeichnis, enthält eine Liste aller auf der
logischen Platte gespeicherten Dateien und Unterverzeichnisse (von
denen einige als reguläre
Dateien mit dem Verzeichnisbit gesetzt gespeichert sind). Das Stammverzeichnis
unterscheidet sich von den Unterverzeichnissen dadurch, dass das Stammverzeichnis
kein Elternverzeichnis hat und typischerweise in der Nähe des Anfangs
der logischen Platte vor den zum Speichern von Dateidaten benutzten
Sektoren gespeichert wird. Das Verzeichnis hat einen Eintrag für jede Datei,
der die Cluster-Nummer enthält,
in der der erste Teil dieser Datei gespeichert ist. Indem die Anfangs-Cluster-Nummer
jeder Datei gespeichert wird, verknüpft das Verzeichnis jede Datei
mit der FAT.
-
Um
auf eine Datei auf der logischen Platte zuzugreifen, liest das Betriebssystem
des Computers den Verzeichniseintrag für die Datei, um den FAT-Eintrag
zu bestimmen, der dem ersten Cluster entspricht, in dem die Dateidaten
gespeichert sind. Das Betriebssystem liest dann die ganze Kette
von FAT-Einträgen,
beginnend bei dem ersten FAT-Eintrag der Datei. Unter Verwendung
der Stelle des ersten Clusters und der Kette von Clustern aus der
FAT kann das Betriebssystem jeden Cluster bestimmen, der zu der
Datei gehört,
und folglich auf jeden Cluster zugreifen.
-
Wenn
der logischen Platte Daten hinzugefügt oder daraus gelöscht werden,
kann die Platte fragmentiert werden. Fragmentierung betrifft das
Speichern von Teilen einer einzelnen Datei in nicht zusammenhängenden
Clustern auf der logischen Platte. Wenn eine Datei auf die logische
Platte geschrieben wird, speichert das Betriebssystem die Daten
in freiem Platz, der durch die Liste freier Cluster der FAT identifiziert
wird. Der zum Speichern der Daten benutzte freie Platz kann mehrere
nicht zusammenhängende
Cluster umfassen.
-
INSTALLIEREN ODER NEUORDNEN
EINES PROGRAMMS ZUM VERBESSERN DER STARTZEIT
-
Ein
exemplarisches Verfahren zum Installieren von anwendungsbezogenen
Dateien in einer Weise, die die Startzeit eines Programms verbesert,
wird in 2 bis 7 veranschaulicht.
Die Fachleute in der Technik werden verstehen, dass die vorliegende
Erfindung in Verbindung mit einer Vielfalt von Anwendungs-, Dienst-
und betriebssystembezogenen Programmen, einschließlich der "MICROSOFT OFFICE" Serie von Anwendungsprogrammen,
die von Microsoft Corporation, Redmond, Washington, veröffentlicht
wird, eingesetzt werden kann.
-
Wie
der Stand der Technik muss die vorliegende Erfindung die Reihenfolge
bestimmen, in der während des
Startens Teile von Dateien von einer logischen Platte gelesen werden.
Anders als der Stand der Technik, der diese Entscheidung trifft
und die Dateien umordnet, nachdem die Dateien bereits auf der logischen
Platte installiert sind, arrangiert jedoch die vorliegende Erfindung
die Dateien in einer fast optimalen Reihenfolge, wenn sind anfangs
auf der logischen Platte installiert werden. Allgemein ausgedrückt, dies
wird erreicht durch Bestimmen der Reihenfolge, in der auf verschiedene
Teile der Dateien während
des Startens zugegriffen wird, Erzeugen einer Ladefolgeliste, die
auf der Installationsplatte enthalten ist, und Installieren der
startbezogenen Teile der Dateien in der durch die Ladefolgeliste
vorgegebenen Reihenfolge. Alternativ kann die Ladefolgeliste benutzt
werden, um die Dateien umzuordnen, nachdem sie auf der logischen
Platte installiert wurden. Die Ladefolgeliste kann auf einer Installationsplatte, über das
Internet oder über
andere Verteilungseinrichtungen verteilt werden.
-
2 und 3 sind
Flussdiagramme, die exemplarische Verfahren zur Erzeugung einer
Installationsplatte und zum Installieren von Dateien auf einer logischen
Platte in der Reihenfolge, in der sie während des Startens geladen
werden, veranschaulichen. Das Flussdiagramm von 2 veranschaulicht
ein Verfahren 200 zum Erzeugen einer Installationsplatte,
die anwen dungsbezogene Dateien, eine oder mehrere Ladefolgelisten
und ein Installationsprogramm enthält. Das Flussdiagramm von 3 veranschaulicht
ein Verfahren 300 zum Installieren von Dateien von der
Installationsplatte auf einer logischen Platte und Speichern derselben
in der Reihenfolge, in der sie während
des Startens gelesen werden.
-
Zuerst
wird auf 2 Bezug genommen, die ein Verfahren 200 zum
Erzeugen einer Installationsplatte veranschaulicht. Der erste Schritt
in dem Verfahren 200 ist die Erzeugung der anwendungsbezogenen
Dateien (Schritt 205). Bei einem exemplarischen Verfahren
wird dieser Schritt in einer den Fachleuten vertrauten herkömmlichen
Weise durchgeführt
und umfasst das Erzeugen aller mit dem Programm (z.B. ein Anwendungsprogramm)
verbundenen Dateien. Diese Dateien können ausführbare Dateien, dynamisch gelinkte
Bibliotheken, Datendateien, Präferenz-Dateien
und dergleichen umfassen.
-
Nachdem
die Dateien erzeugt sind, geht das Verfahren 200 zu Schritt 210.
An diesem Punkt werden die Dateien auf einem Computer installiert,
und das Programm wird gestartet. Der Startprozess wird durch einen
Instrumentierungscode überwacht
oder instrumentiert, der in der Lage ist, zu bestimmen, auf welche
Teile der Dateien während
des Startens zugegriffen wird. Der Instrumentierungscode erzeugt
eine Ladefolgeliste, die angibt, welche Dateiteile gelesen wurden,
und die Reihenfolge, in der sie gelesen wurden.
-
Das
Format einer exemplarischen Ladefolgeliste wird in 4 veranschaulicht.
Jeder Eintrag in der Liste identifiziert die Datei, auf die zugegriffen
wurde, den Offset in die Datei und die Menge an Daten, die gelesen
wurde. Der Offset und die Länge
werden in Bytes und relativ zum Anfang der Datei gemessen. Der Offset und
die Länge
definieren den Start und die Länge
des Abschnitts, der gelesen wurde. Dieser Schritt resultiert in
einer Liste aller während
des Programmstarts berührten
Dateien, der Stelle in jeder Datei, die gelesen wurde, und der Menge
an Daten, die von der Platte gelesen wird, wenn das Programm gestartet
wird.
-
Von
Schritt 210 geht das Verfahren 200 zu Schritt 220.
Die Fachleute werden erkennen, dass die anfängliche Ladefolgeliste, die
in Schritt 210 erzeugt wurde und eine Aufzeichnung aller
Dateien enthält,
die während
des Bootens berührt
wurden, Dateien enthält,
die nicht Teil des Programms selbst sein können. Zum Beispiel, wenn ein
Anwendungsprogramm gestartet wird, kann es erforderlich sein, dass
der Computer Teile von verschiedenen Systemdateien oder gemeinsam
benutzten Dateien liest, die getrennt von dem Anwendungsprogramm
selbst existieren. In Schritt 220 analysiert das Verfahren 200 den
inhalt der anfänglichen
Ladefolgeliste und entfernt Dateien, die auf dem Computer eines
Benutzers nicht optimiert oder neu installiert werden, wenn das
Programm installiert wird. Die ausgeschlosse nen Dateien werden Dateien
umfassen, die durch das Installationsprogramm nicht geändert werden
können
oder sollten, und Dateien, die sich wahrscheinlich recht häufig ändern (z.B.
Präferenz-Dateien).
Die Fachleute werden einsehen, dass dieser Schritt auf verschiedene Weise
durchgeführt
werden kann, einschließlich
des Verwendens einer Ausschlußlisste,
die verhindert, dass sie in die anfängliche Ladefolgeliste einbezogen
werden, oder Verarbeiten der Ladefolgeliste zur Installationszeit,
um bestimmte Dateien zu ignoriern.
-
Nachdem
die Ladefolgelist editiert ist, um Dateien, die nicht optimiert
werden, zu entfernen, geht das Verfahren 200 zu Schritt 225,
wo eine oder mehrere endgültige
Ladefolgelisten erzeugt werden. Die Fachleute werden einsehen, dass
die Abfolge zum Laden von Dateien durch eine Vielfalt von Faktoren
beeinflusst werden kann, die mit dem Computer verbunden sind, auf
dem das Programm installiert werden wird. Zum Beispiel können die
spezifische Version des Betriebssystems (einschließlich größerer Releases
oder kleinerer Updates) und die mit dem Computer verbundene Cluster-Größe einen
gewissen Einfluss auf die beste Abfolge zum Installieren der Dateiabschnitte
auf der logischen Platte haben. Daher können für jedes dieser Szenarios verschiedene
Ladefolgelisten erzeugt werden. Zum Beispiel kann eine Ladefolgelsite
zur Verwendung mit einer bestimmten Version eines Betriebssystems
für eine
andere Maschinenkonfiguration zusätzliche Dateien hinzufügen oder
Dateien aus der Ladefolge entfernen. Ebenso kann eine Ladefolgelsite
zur Verwendung mit verschiedenen Cluster-Größen bereitgestellt werden.
Alternativ kann eine einzelne Ladefolgeliste zur Verwendung mit
kleinen (z.B. 4 k) Clustern bereitgestellt werden, und Ladefolgelisten
für andere
Cluster-Größen, die zur
Zeit des Dateiordnens daraus gewonnen werden. Die endgültigen Ladefolgelisten
können
das gleiche Format haben wie das Beispiel von 4.
-
In
Schritt 230 wird die wirkliche Installationsplatte (z.B.
eine CD-ROM oder Floppydisks) erzeugt. Die Installationsplatte wird
die anwendungsbezogenen Dateien, die Ladefolgelisten und ein Einrichtungs
oder Installationsprogramm enthalten. Wenn die Installationsplatte
in ein Laufwerk des Computers des Benutzers eingelegt wird, wird
der Benutzer das Installationsprogramm starten, um die Dateien auf
der logischen Platte des Benutzers zu installieren. Basierend auf
Benutzereingabe und von dem Computer gelesener Konfigurationsinformation
wird das Installationsprogramm bestimmen, welche Dateien installiert
werden müssen,
und die Reihenfolge, in der die Dateien installiert werden sollten,
und wird veranlassen, dass die Dateien von der Installationsplatte
gelesen und in der richtigen Reihenfolge auf die Platte geschrieben
werden.
-
3 veranschaulicht
ein Verfahren 300 zum Installieren von Dateien von einer
Installationsplatte auf einer logischen Platte und Speichern der
startbezogenen Programmteile in der Reihenfolge, in der sie während des
Programmstarts gelesen werden. Bei einer exemplarischen Ausführung wird
das Verfahren 300 durch das Installationsprogramm ausgeführt, das
auf der Installationsplatte enthalten ist, die eine CD-ROM ist,
die in das Plattenlaufwerk 30 (1) eingelegt
wird.
-
Das
Verfahren 300 beginnt, wenn ein Benutzer das Installationsprogramm
startet und geht zu Schritt 305. In Schritt 305 fragt
das Installationsprogramm den Computer ab und erlangt Daten, die
das auf dem Computer installierte Betriebssystem, die Eigenschaften
des Festplattenlaufwerks usw. betreffen.
-
In
Schritt 310 fragt das Installationsprogramm den Benutzer
und erlangt Information, die das einzelne Programm oder Programme
betrifft, die der Benutzer zu installieren wünscht. Das Installationsprogramm
kann auch den Benutzer auffordern, seinen oder ihren Namen und eine
Seriennummer einzugeben, bevor das Installationsprogramm fortfahren
wird.
-
In
Schritt 315 benutzt das Installationsprogramm die in Schritten 310 und 315 erlangte
Information, um zu bestimmen, welche Dateien von der Installationsplatte
auf dem Festplattenlaufwerk installiert werden sollten.
-
In
Schritt 320 benutzt das Installationsprogramm die in Schritten 310 und 315 erlangte
information, um zu bestimmen, welche Ladefolgeliste benutzt werden
sollte, um die Reihenfolge zu bestimmen, in der die startbezogenen
Teile der Dateien installiert und auf der logischen Platte gespeichert
werden sollten. Wie früher
erwähnt,
können
verschiedene Ladefolgelisten bereitgestellt werden, um verschiedene
Versionen eines Betriebssystems, verschiedene Festplattenlaufwerks-Cluster-Größen usw.
zu akkommodieren.
-
5 zeigt
Beispiele von Teilen von vier Anwendungsdateien (Dateien A, B, C
und D) und eine einfache Ladefolgeliste, die startbezogene Dateiabschnitte
und die Reihenfolge identifiziert, in der sie geladen werden, wenn
das Programm gestartet wird. In diesem Beispiel umfasst das Anwendungsprogramm
die Dateien A, B, C und D. Natürlich
kann ein Anwendungsprogramm viele zusätzliche Dateien enthalten.
Jede Datei enthält
mehrfache Abschnitte (z.B. A1–A8,
B1–B6,
C1–C5
und D!–D5).
Nur die Dateien A, B und C enthalten jedoch Abschnitte, die während des
Anwendungsstarts geladen werden. Diese startbezogenen Abschnitte
umfassen Abschnitte A1–A4,
B1–B3
und C1–C3.
Die übrigen
Abschnitte der Dateien A, B und C sowie das Ganze von Datei D werden
während
des Startens nicht geladen. Die Fachleute werden verstehen, dass
die startbezogenen Abschnitte jeder Datei (z.B. A1–A4) nicht
zusammenhängend
sein müssen
oder den nicht startbezogenen Abschnitten der Da tei (z.B. A5–A8) vorangehen
müssen.
Die letzte Zeile von 5 zeigt die Startladefolge,
die die Reihenfolge beschreibt, in der die startbezogenen Abschnitte
der Dateien A, B und C während des
Starts geladen werden. In diesem Beispiel ist die Startladefolge
A1, B3, A3, B2, B1, C2, C1, A2, C3, A4.
-
Die
Aufgabe des Rests des Installationsprozesses (Schritte 325, 330 und 335)
ist, die startbezogenen Dateiabschnitte in zusammenhängenden
Clustern auf der logischen Platte in der oben beschriebenen Startladefolge
zu installieren. Der Installationsprozess kann daher als zwei Aufgaben
umfassend beschrieben werden: (1) Schreiben der startbezogenen Dateiabschnitte
in der richtigen Reihenfolge und (2) Sicherstellen, dass die startbezogenen
Dateiabschnitte in zusammenhängenden
Sektoren auf der logischen Platte gespeichert werden. Das Ziel des
Schreibens der startbezogenen Dateiabschnitte in der richtigen Reihenfolge
wird durch die Bereitstellung der Ladefolgeliste angesprochen. Sicherstellen,
dass die Dateiabschnitte in zusammenhängenden Clustern gespeichert
werden, ist infolge verschiedener Eigenschaften der FAT-Dateisysteme,
die auf den meisten Personal Computern verwendet werden, eine Herausforderung.
-
Im
Allgemeinen schreiben FAT-Dateisysteme Dateien in der Reihenfolge
einer "Lister freier
Cluster" auf die
logische Platte. Mit anderen Worten, wenn eine Datei auf ein Festplattenlaufwerk
geschrieben wird, wird der erste Cluster der Datei in den in der
FAT identifizierten ersten freien Cluster geschrieben, und der zweite
Cluster der Datei wird in den nächsten
in der FAT identifizierten freien Cluster geschrieben usw. In vielen Fällen ist
es wünschenswert,
einen Teil der logischen Platte zu identifizieren, der genügend zusammenhängende freie
Cluster enthält,
um die startbezogenen Dateiabschnitte des Programms zu speichern.
Die restlichen Abschnitte der Dateien können in der Reihenfolge der
Liste freier Cluster geschrieben werden.
-
In
Schritt 325 identifiziert das Installationsprogramm Blöcke von
zusammenhängenden
freien Clustern (auf der logischen Platte), die benutzt werden,
um die startbezogenen Abschnitte der Dateien zu speichern. Die vorliegende
Erfindung erwägt
verschiedene Verfahren zum Identifizieren von verfügbarem Plattenplatz, der
ausreicht, um die startbezogenen Dateiabschnitte zu speichern.
-
Ein
erster Ansatz ist, anzunehmen, dass bestehende Dateien am Anfang
der logischen Platte gespeichert sind und dass es am Ende eine ausreichende
Menge an zusammenhängendem
freien Platz gibt. Obwohl diese Annahme unrealistisch ist, könnte sie
erfüllt
werden, indem während
des Installationprozeses vorgeschlagen wird, dass der Benutzer die
logische Platte unter Verwendung eines herkömmlichen Defragmentierungs-Dienstprogramms
defragmentiert. Nachdem die Platte defragmentiert ist, kann das
Anwendungsprogramm in dem freien Platz am Ende der Platte installiert
werden, wobei die startbezogenen Teile der Dateien in zusammenhängenden
Clustern gespeichert werden. Die Fachleute werden einsehen, dass
diese Lösung etwas
unerwünscht
ist, wegen der Zeit, die nötig
sein würde,
um die logische Platte vor der Installation zu defragmentieren,
und der Tatsache, dass einige Benutzer abgeneigt oder unfähig sein
können,
die vorgeschlagene Defragmentierung durchzuführen.
-
Ein
zweiter Ansatz ist, anzunehmen, das am Ende der Platte ein großer freier
Platz vorhanden ist, aber einige nicht zusammenhängende Cluster am Anfang der
Platte. Bei dieser Lösung
werden die startbezogenen Dateiabschnitte aus der Ledefolgeliste
zuletzt installiert werden. Dies wird dem Rest der Anwendungsdateien (d.h.
den nicht startbezogenen Abschnitten) erlauben, zuerst installiert
und auf der Platte in der Reihenfolge der Liste freier Cluster gespeichert
zu werden. In den meisten Fällen
sollte das Speichern dieser großen
Menge an Dateidaten zur Folge haben, dass die nicht zusammenhängenden
freien Cluster mit nicht startbezogenen Dateiabschnitten gefüllt werden
und die startbezogenen Abschnitte der Dateien schließlich in
den zusammenhängenden
freien Clustern, die am Ende der Platte verfügbar bleiben, installiert werden.
-
Ein
dritter Ansatz, um genügend
zusammenhängende
freie Cluster zu identifizieren, umfasst das Lesen der ganzen Liste
freier Cluster und Verfolgen der Größen aller Gruppen von zusammenhängenden
freien Clustern. Die Liste wird dann nach Größe sortiert, um die größten Gruppen
zusammenhängender
freier Cluster zu finden. Die größten Gruppen
zusammenhängender
freier Cluster werden identifiziert und zur Speicherung der startbezogenen
Dateiabschnitte gekennzeichnet. Nachdem die Ziel-Cluster für die Startdateien
identifiziert sind, geht der Prozess zurück zu der ursprünglichen
Liste freier Cluster und beginnt, Daten auf die logische Platte
zu schreiben. Wenn die Ziel-Cluster nicht die ersten freien Cluster
in der Liste sind, wird eine temporäre Datei in die freien Cluster
geschrieben, die nicht gefüllt
werden müssen,
um die gewünschten
Ziel-Cluster zu erlangen. Nachdem die Startdateien in die zusammenhängenden
Ziel-Cluster geschrieben sind, wird die temporäre Datei gelöscht, und
diese Cluster werden an die Liste freier Cluster zurückgegeben.
Der Gebrauch von temporären
Dateien wird unten ausführlicher
erörtert.
-
Ein
vierter Ansatz ist ähnlich
dem dritten, verringert aber die Menge an Daten, die in die temporäre Datei
zu schreiben sein kann. Es ist möglich,
dass die dritte Lösung
erfordern wird, eine große
Menge an Daten in eine Menge von kleinen Gruppen von Clustern in
den frühen
Abschnitten der Platte zu schreiben. Um diese Aktivität zu minimieren,
benutzt die vierte Lösung
die frühesten
zusammenhängenden
Cluster-Gruppen oder Sätze
von Gruppen, um eine wesentliche Verbesserung in der Programmstartzeit
bereitzustellen.
-
Nachdem
genug zusammenhängende
freie Cluster für
die Installation der startbezogenen Dateiabschnitte identifiziert
sind, geht das Installationsprogramm zu Schritt 330 und
schreibt die startbezogenen Dateiabschnitte in der richtigen Reihenfolge
in den freien Platz. Die Fachleute werden erkennen, dass die einzelnen
Schritte, die nötig
sind, um die Startdateiabschnitte in den freien Platz in der durch
die Ladefolgeliste vorgegebenen Reihenfolge zu schreiben, von einer
Vielfalt von Faktoren abhängen
werden. Der wichtigste Faktor ist wahrscheinlich das einzelne Betriebssystem
des Computers, das Werkzeuge zum Schreiben von Dateien auf die logische
Platte und Einschränkungen
dahin gehend bereitstellt, wie Dateien auf die Festplatte geschrieben
werden können.
Zwei zur Verwendung mit dem Betriebssystem "WINDOWS 95" geeignete Lösungen werden unten beschrieben.
-
Die
Fachleute werden erkennen, dass das einfachste Szenario zum Schreiben
der Startdateien vorkommt, wenn der freie Platz ganz zusammenhängend ist
und sich am Ende der logischen Platte befindet, und das Betriebssystem
nicht versucht, Dateien zu zwingen, zusammenhängend zu sein. In diesem einfachen
und vielleicht unrealistischen Szenario könnte der Process des Schreibens
der Dateien auf die logische Platte wie folgt implementiert werden.
Zuerst öffnet
das Installationsprogramm die nötigen
Dateien auf der DC-ROM (zum Lesen) und auf der logischen Platte
(zum Schreiben). Als Nächstes
wird der erste in der Ladefolgeliste aufgeführte Cluster von der CD-ROM
gelesen und auf die Festplatte geschrieben. In einigen Fällen ist
es erforderlich, die Ausgabedatei zu spülen, um sicherzustellen, dass
die Daten tatsächlich
auf die Platte geschrieben werden. Diese Schritte werden wiederholt,
bis alle Cluster in der Ladefolgeliste auf die logische Platte geschrieben
sind. An diesem Punkt kann das Installationsprogramm zu Schritt 335 gehen,
wo die restlichen Abschnitte (d.h. die nicht startbezogenen Abschnitte)
der Dateien von der CD-ROM gelesen und auf die logische Platte geschrieben
werden. Wenn alle Dateien geschrieben sind, werden Lese- und Schreibdateien
geschlossen, und das Betriebssystem aktualisiert das FAT-Dateisystem.
Das Verfahren 300 endet dann in Schritt 340, und die
Installation ist vollendet.
-
Spezifische
Verfahren zum Schreiben einzelner Dateien in nicht zusammenhängende Cluster
(Schritt 330) werden im Kontext des Betriebssystems "WINDOWS 95" erörtert. Das
Betriebssystem "WINDOWS
95" versucht, Dateien
in zusammenhängenden
Clustern zu halten. Wenn mehrfache Cluster in eine einzelne Datei geschrieben
werden, versucht daher das Betriebssystem, sie in zusammenhängende Cluster
zu legen. Bei einer Ausführung
der vorlie genden Erfindung wird dieses Merkmal des Betriebssystems
durch Verwenden von temporären
Daten überwunden,
um Platz auf der Festplatte zu belegen und die startbezogenen Abschnitte
jeder Datei zu zwingen, in der gewünschten Reihenfolge in nicht
zusammenhängende
Cluster geschrieben zu werden. Die Fachleute werden einsehen, dass
das Betriebssystem und das Dateisystem bestimmte Bedingungen bezüglich der
Reihenfolge auferlegen, in der Dateien geschrieben werden können. Am
wichtigsten, die Cluster einer Datei werden in monotonisch ansteigender
Ordnung zugeteilt. Mit anderen Worten, der erste Cluster einer Datei
wird vor dem zweiten Cluster der Datei zugeteilt usw., ungeachtet
der Reihenfolge, in der Information in die Datei geschrieben wird.
-
Ein
Beispiel des Gebrauchs von temporären Dateien wird in 6 veranschaulicht,
die den Inhalt von 12 Clustern auf der logischen Platte während verschiedener
Phasen des Installationsprozesses widerspiegelt. In diesem Beispiel
werden die 10 Dateiabschnitte von 5 in die
in 6 gezeigten 12 Cluster geschrieben werden. Bevor
die Installation beginnt, sind die 12 Cluster (beliebig nummeriert
von 0–11)
zusammenhängende Cluster
in der Liste freier Cluster. Wenn die zusammenhängenden Cluster 0–11 nicht
die ersten Cluster in der Liste freier Cluster sind, schreibt das
Installationsprogramm eine temporäre Datei in die Cluster vor
Cluster 0. Dies hat zur Folge, dass Cluster 0 der erste freie Cluster
in der Liste freier Cluster ist.
-
Das
Installationsprogramm wird die gewünschte Cluster-Reihenfolge
aus der geeigneten Ladefolgeliste lesen, die Cluster von der CD-ROM
lesen und sie in die Cluster 0–9
der logischen Platte schreiben. Weil das Betriebssystem verlangt,
dass die Cluster jeder Datei in monotonisch ansteigender Ordnung
geschrieben werden, kann der Prozess des Schreibens der Dateien
auf die logische Platte mehrfache Durchgänge durch den freien Platz
erfordern und den Gebrauch von temporären Dateien mit sich bringen,
um sicherzustellen, dass Daten in die gewünschten Cluster geschrieben
werden.
-
Nun
auf 6 verweisend liest im ersten Durchgang das Installationsprogramm
die Ladefolgeliste und bestimmt, dass Cluster A1 zuerst geladen
werden sollte. Weil dies der erste Cluster in Datei A ist, kann
er sofort in Cluster 0 geschrieben werden.
-
Als
Nächstes
bestimmt das Installationsprogramm, dass Cluster B3 in Cluster 1
geschrieben werden sollte. Cluster B3 kann jedoch noch nicht gespeichert
werden, weil die Cluster B1 und B2 noch nicht auf die Festplatte
geschrieben wurden. Das Installationsprogramm schreibt daher eine
temporäre
Datei t1 in Cluster 1.
-
Nachdem
die temporäre
Datei t1 geschrieben ist, bestimmt das Installationsprogramm, dass
Cluster A3 geschrieben werden sollte. Cluster A3 kann aber nicht
gespeichert werden, weil Cluster A2 noch nicht auf die Festplatte
geschrieben wurde. Das Installationsprogramm schreibt deshalb eine
temporäre
Datei t2 in Cluster 2.
-
Eine
temporäre
Datei t3 wird dann in Cluster 3 geschrieben, weil Cluster B2 erst
gespeichert werden kann, nachdem Cluster B1 auf die Festplatte geschrieben
wurde.
-
Nachdem
die temporäre
Datei t3 geschrieben ist, bestimmt das Installationsprogramm, dass
Cluster B1 in Cluster 4 geschrieben werden sollte. Weil dies der
erste Cluster in Datei B ist, kann er in Cluster 4 der Festplatte
geschrieben werden.
-
Nach
Cluster B1 schreibt das Installationsprogramm eine temporäre Datei
t4 in Cluster 5, weil Cluster C2 erst gespeichert werden kann, nachdem
Cluster C1 gespeichert wurde.
-
Als
Nächstes
bestimmt das Installationsprogramm, dass Cluster C1 in Cluster 6
geschrieben werden sollte. Weil Cluster C1 der erste Cluster in
Datei C ist, wird er in Cluster 6 geschrieben.
-
Als
Nächstes
bestimmt das Installationsprogramm, dass Cluster A2 in Cluster 7
geschrieben werden sollte. Weil Cluster A1 bereits geschrieben wurde,
kann Cluster A2 in Cluster 7 geschrieben werden.
-
Nachdem
Cluster A2 auf die Festplatte geschrieben ist, bestimmt das Installationsprogramm,
dass Cluster C3 in Cluster 8 geschrieben werden sollte. Cluster
C3 kann aber noch nicht geschrieben werden, weil Cluster C2 noch
nicht gespeichert wurde. Das Installationsprogramm schreibt eine
temporäre
Datei t5 in Cluster 8.
-
Als
Nächstes
bestimmt das Installationsprogramm, dass Cluster A4 in Cluster 9
geschrieben werden sollte. Weil aber Cluster A3 noch nicht auf die
Festplatte geschrieben wurde, schreibt das Installationsprogramm
eine temporäre
Datei t6 in Cluster 9.
-
Nachdem
das Installationsprogramm in alle Cluster geschrieben hat, die benutzt
werden, um die startbezogenen Dateiabschnitte zu speichern, schreibt
das Installationsprogramm eine große temporäre Datei t7 in den restlichen
freien Platz auf der Platte.
-
Während des
zweiten Durchgangs setzt das Installationsprogramm den Prozess des
Schrei bens der startbezogenen Dateien auf die Festplatte in monotonisch
ansteigender Reihenfolge fort.
-
Während des
zweiten Durchgangs kann Cluster B3 noch immer nicht auf die Festplatte
geschrieben werden, weil Cluster B2 noch nicht gespeichert wurde.
-
Cluster
A3 kann in Cluster 2 geschrieben werden, weil die Cluster A1 und
A2 bereits gespeichert wurden. Das Installationsprogramm löscht daher
die temporäre
Datei t2 und schreibt Cluster A3 in Cluster 2.
-
Cluster
B2 kann in Cluster 3 geschrieben werden, weil Cluster B1 bereits
gespeichert wurde. Das Installationsprogramm löscht die temporäre Datei
t3 und schreibt Cluster B2 in Cluster 3.
-
Cluster
C2 kann in Cluster 5 geschrieben werden, weil Cluster C1 bereits
gespeichert wurde. Das Installationsprogramm löscht die temporäre Datei
t5 und schreibt Cluster C2 in Cluster 5.
-
Cluster
C3 kann in Cluster 8 geschrieben werden, weil die Cluster C1 und
C2 bereits gespeichert wurden. Das Installationsprogramm löscht die
temporäre
Datei t5 und schreibt Cluster C3 in Cluster 8.
-
Schließlich kann
Cluster A4 in Cluster 9 geschrieben werden, weil die Cluster A1–A3 bereits
gespeichert wurden. Das Installationsprogramm löscht die temporäre Datei
t6 und schreibt Cluster A4 in Cluster 9.
-
Während des
Durchgangs 3 kann schließlich
Cluster B3 in Cluster 1 geschrieben werden, weil die Cluster B1
und B2 bereits gespeichert wurden. Das Installationsprogramm löscht die
temporäre
Datei t1 und schreibt Cluster B3 in Cluster 1.
-
Nachdem
alle startbezogenen Dateiabschnitte geschrieben sind, löscht das
Installationsprogramm die temporäre
Datei t7 und alle temporären
Dateien, die in Cluster vor Cluster 0 geschrieben wurden. Dies gibt
die unbenutzten Cluster an die Liste freier Cluster zurück. An diesem
Punkt werden die übrigen
Programmabschnitte (d.h. die nicht startbezogenen Dateiabschnitte)
von der CD-ROM gelesen und auf die Festplatte geschrieben. Diese
Dateien werden auf der Festplatte in der Reihenfolge der Liste freier
Cluster gespeichert werden.
-
Einige
Versionen des Betriebssystems "WINDOWS
95" verwenden eine
Dateizuteilungsstrategie, die annimmt, dass, wenn zwei Dateien offen
sind und ein Programm in beide schreibt, das Programm etwas freien Platz
zwischen den Dateien wünschen
würde. 7 veranschaulicht
ein zweites Verfahren zum Schreiben von Startdateiabschnitten in
die Festplatten-Cluster 0–9
trotz dieser Eigenschaft des Betriebssystems. Diese zweite Lösung ist
der in 6 gezeigten Lösung
sehr ähnlich,
benötigt
aber einen zusätzlichen
Durchgang durch die freien Cluster, um temporäre Dateien in jedem der freien
Cluster zu erzeugen.
-
In
dem Beispiel von 7 werden die 10 Dateiabschnitte
von 5 in die Cluster 0–9 der Festplatte geschrieben.
Bevor die Installation beginnt, sind die 12 Cluster (nummeriert
von 0–11)
zusammenhängende Cluster
in der Liste freier Cluster. Wenn die zusammenhängenden Cluster 0–11 nicht
die ersten Cluster in der Liste freier Cluster sind, schreibt das
Installationsprogramm eine temporäre Datei in die Cluster vor
Cluster 0. Dies hat zur Folge, dass Cluster 0 der erste freie Cluster
in der Liste freier Cluster ist.
-
Im
Durchgang 1 schreibt das Installationsprogramm getrennte temporäre Dateien
(t1–t10)
in jeden der Cluster, die benutzt werden, um einen in der Ladefolgeliste
identifizierten Datei-Cluster
zu speichern. Eine andere temporäre
Datei t11 wird in alle freien Cluster geschrieben, die Cluster 9
folgen. Dies stellt sicher, dass das Betriebssystem nicht in der
Lage sein wird, Platz zwischen den Clustern zu lassen, die durch
das Installationsprogramm geschrieben werden.
-
Die
Durchgänge
2–4 gehen
genau wie die Durchgänge
1–3 von 6 vonstatten
und werden verwendet, um die Datei-Cluster in monotonisch ansteigender
Reihenfolge zu schreiben. Im Durchgang 2 müssen jedoch die temporären Dateien
t1, t5, t7 und t8 gelöscht
werden, bevor die Cluster A1, B1, C1 und A1 in die Cluster 1, 4,
6 bzw. 7 geschrieben werden können.
-
Nachdem
alle startbezogenen Dateiabschnitte auf die logische Platte geschrieben
sind, löscht
das Installationsprogramm die temporäre Datei t11 und alle temporären Dateien,
die in Cluster vor Cluster 0 geschrieben wurden. Dies gibt die unbenutzten
Cluster an die Liste freier Cluster zurück. An diesem Punkt werden
die restlichen Dateiabschnitte (d.h. die startbezogenen Dateiabschnitte)
von der CD-ROM gelesen und auf die logische Platte geschrieben.
Diese Dateien werden auf der logischen in der Reihenfolge der Lister
freier Cluster gespeichert.
-
Die
vorangehende Erörterung
hat die vorliegende Erfindung im Kontext mehrerer Ausführungen
beschrieben. Im Allgemeinen enthalten diese Ausführungen eine Ladefolgeliste,
die identifiziert, welche startbezogenen Programmabschnitte in zusammenhängenden
Clustern auf der logischen Platte installiert werden sollten, Verfahren
zum Identifizieren einer ausreichenden Zahl von zusammenhängenden
freien Clustern sowie Verfahren zum Schreiben von Programmabschnitten
in die zusammenhängenden
Cluster in der gewünschten
Reihenfolge.
-
Die
vorliegenden Erfinder haben mehrere zusätzliche Merkmale erwogen, die
in Ausführungen
der vorliegenden Erfindung einbezogen werden können.
-
Die
Verfahren der vorliegenden Erfindung können erweitert werden, um nicht
nur die startbezogenen Abschnitte von neuen Dateien, sondern auch
bestehende Dateien auf der logischen Platte und zusätzliche
Abschnitte des neuen Programms einzuschließen.
-
Zum
Beispiel kann die vorliegende Erfindung verwendet werden, um Systemdateien
und andere vorher installierte Dateien zu optimieren, wenn sie in
der Ladefolgeliste enthalten sind. Um diese Optimierung zu Stande
zu bringen, wird der Installationsprozess wie oben beschrieben vonstatten
gehen, wird aber auch das Öffnen
der bestehenden Datei zum Lesen und einer neuen temporären Datei
zum Schreiben einschließen.
Die relevanten Cluster der bestehenden Datei werden in die zusammenhängenden
freien Cluster zusammen mit anderen startbezogenen Programmabschnitten
geschrieben werden. Nachden die startbezogenen Abschnitte alle in
zusammenhängende
Cluster auf der logischen Platte geschrieben sind, wird die ursprüngliche
bestehende Datei gelöscht,
und die temporäre
Datei wird umbenannt, um den gleichen Namen wie die gelöschte Originaldatei
zu haben.
-
Wie
oben beschrieben, können
die Prinzipien der vorliegenden Erfindung verwendet werden, um andere übliche plattenintensive
Abschnitte des Programms zu instrumentieren oder zu installieren
(oder umordnen). Zum Beispiel könnte
der Code, der Routinen wie OPEN, SAVE, LOAD und PRINT ausführt, instrumentiert
und die Ergebnisse in eine Ladefolgedatei auf der Installationsplatte
eingeschlossen werden. Das Installationsprogramm könnte dann
diese Information verwenden, um diese Teile des Codes in zusammenhängende Abschnitt
der logischen Platte zu schreiben, wenn das neue Programm installiert
wird, oder die relevanten Abschnitte des Codes, nachdem er installiert
ist, neu zu ordnen.
-
Wie
oben beschrieben, können
temporäre
Dateien benutzt werden, um fast den ganzen freien Platz auf der
logischen Platte während
einiger Phasen des Installationsprozesses zu belegen. Diese temporären Dateien
werden typischerweise nach Vollendung des Installationsprozesses
durch das Installationsprogramm gelöscht. Um aber sicherzustellen,
dass die temporären
Dateien gelöscht
werden und der unbenutzte Platz dem Computer zur Verfügung steht,
kann der von dem Betriebssystem durchgeführte "Post-Reboot"- oder "Tune-up"-Process programmiert
werden, um das Vorhandensein einer oder mehrerer temporärer Dateien
zu prüfen,
und sie, wenn gefunden, zu löschen.
Der Post-Reboot-Abschnitt des Einrichtungsprozesses kann auch verwendet
werden, um alle optimierten Systemdateien zu löschen oder umzubenennen, die
nicht gelöscht oder
umbenannt werden konnten, weil sie während des Installationsprozesses
in Gebrauch waren.
-
8 ist
ein Flussdiagramm, das ein alternatives Verfahren 800 zur
Verwendung der Prinzipien der vorliegenden Erfindung veranschaulicht,
um startbezogene Codeabschnitte und andere plattenintensive Vorgänge zu optimieren,
nachdem der Code auf einer logischen Platte installiert wurde. Wie
das Verfahren von 3 setzt das Verfahren 800 eine
Installationsplatte ein, die eine oder mehrere Ladefolgelisten und
Programmdateien enthält.
Bei diesem Verfahren werden jedoch die Programmdateien zuerst auf
einer logischen Platte in einer herkömmlichen Weise zusammen mit
einer Kopie der Ladefolgeliste installiert. An einem Punkt nach
der Installation kann ein Tune-up-Programm die Ladefolgeliste verwenden,
um die plattenintensiven Daten in einer optimalen Weise neu zu ordnen.
-
In
Schritt 805 installiert das Verfahren 800 die
Programmdateien auf der logischen Platte in einer herkömmlichen
Weise. An diesem Punkt wird auch eine Kopie der Ladefolgeliste auf
die logische Platte kopiert.
-
Nachdem
das Programm installiert ist, kann ein getrenntes Programm benutzt
werden, um die Programmabschnitte neu zu ordnen, die mit plattenintensiven
Operationen, z.B. einem Programmstart, verbunden sind. Dieses "Tune-up"- oder Neuordnungsprogramm
kann zu verschiedenen Zeiten gefahren werden. Zum Beispiel kann
das Tune-up-Programm automatisch gefahren werden, wenn der Computer
nach der Programminstallation erstmals neu gestartet wird. Das Tune-up-Programm
kann auch manuell gefahren werden, wann immer der Benutzer Wartungsaktivitäten auf
seinem Computer durchzuführen
wünscht.
-
Schritt 810 ist
der erste Schritt in dem Tune-up- oder Neuordnungsprozess. In Schritt 810 fragt
das Tune-up-Programm den Computer ab und erlangt Daten, die das
auf dem Computer installierte Betriebssystem, Eigenschaften der
Festplatte usw. betreffen.
-
In
Schritt 815 benutzt das Tune-up-Programm die in Schritt 810 erlangte
Information, um zu bestimmen, welche Ladefolgeliste verwendet werden
sollte, um die Reihenfolge zu bestimmen, in der die plattenintensiven
Abschnitte der Dateien auf der logischen Platte angeord net werden
sollten. Wie früher
erwähnt,
können
verschiedene Ladefolgelisten bereitgestellt werden, um verschiedene
Versionen eines Betriebssystems, verschiedene Festplatten-Cluster-Größen usw.
zu akkommodieren.
-
Die
Fachleute werden einsehen, dass Programmserien, z.B. die Programmserie "MICROSOFT OFFICE" mehr als ein Anwendungsprogramm
umfassen können.
Die vorliegende Erfindung kann auf die Installation einer Serie
von Programmen durch Bereitstellen einer Ladefolgeliste für jedes
Anwendungsprogramm angewandt werden. Wenn mehrfache Versionen eines
Betriebssystems unterstützt
werden, kann die Erfindung eine Ladefolgeliste pro Anwendungsprogramm
pro unterstütztes
System bereitstellen. Wenn die Programme "optimiert" (während
oder nach der Installation) werden, können die anwendbaren Ladefolgelisten
in einer vorbestimmten Reihenfolge miteinander verkettet werden.
Wenn ein startbezogener Dateiabschnitt in mehr als einer Ladefolgeliste
enthalten ist, kann dieser Abschnitt aus allen außer der
ersten Ladefolgeliste, die ihn enthält, entfernt werden. Die Optimierung
würde dann
entsprechend der verschmolzenen Ladefolgeliste vonstatten gehen.
-
In
Schritt 820 identifiziert das Tune-up-Programm Blöcke von
zusammenhängenden
freien Clustern (auf der logischen Platte), die benutzt werden,
um die plattenintensiven Abschnitte der Dateien zu speichern. Wie
oben beschrieben, erwägt
die vorliegende Erfindung mehrere Verfahren zum Identifizieren von
verfügbarem
Plattenplatz, der ausreicht, um die Startdateiabschnitte zu speichern.
-
Nachdem
genügend
zusammenhängende
freie Cluster zum Installieren der startbezogenen Dateiabschnitte
identifiziert ist, geht das Installationsprogramm zu Schritt 825 und
ordnet die plattenintensiven Dateiabschnitte in dem freien Platz
in der richtigen Reihenfolge neu an.
-
Zusammengefasst,
das Verfahren von 8 erlaubt Dateien, bei der Installation
(oder kurz danach) neu geordnet zu werden, und ihnen auch, zu jeder
Zeit nach der Installation optimiert oder eingerichtet zu werden.
Unter Verwendung der Ladefolgeliste wird diese Optimierung ohne
die beim Stand der Technik verwendete Überwachungsfunktion zu Stande
gebracht.
-
Schließlich verwenden
die oben beschriebenen Prozesse die von dem Betriebssystem bereitgestellten Lese-
und Schreibfunktionen. Diese Lösung
ist sehr robust und beseitigt im Wesentlichen die Möglichkeit,
dass der Installationsprozess Daten auf der Festplatte des Benutzers
zerstören
wird. Die Fachleute werden jedoch einsehen, dass Daten auf die Festplatte
unter Verwendung von niederstufigen Funktionen, die Daten auf der Cluster-Stufe schreiben,
geschrieben werden können.
Diese Lösung
verlangt, dass das Installationsprogramm die Dateiabschnitte in
die richtigen Cluster schreibt und dann zurückgeht und die FAT aktualisiert.
Obwohl diese Lösung
im Kontext der vorliegenden Erfindung eingesetzt werden kann, bietet
sie eine größere Gefahr,
dass Daten auf der Festplatte in irgendeiner Weise verfälscht werden.
-
REZENSION DER AUSFÜHRLICHEN
BESCHREIBUNG
-
Aus
der vorangehenden Beschreibung ist zu ersehen, dass die vorliegende
Erfindung ein verbessertes System und Verfahren zum Installieren
oder Neuordnen von Dateien in einer Weise, die die Programmstartzeit
verbessert, bereitstellt. Ein Hauptvorteil der Erfindung ist, dass
sie die Notwendigkeit, den Anlaufprozess nach dem Installieren eines
Programm zu überwachen,
durch Bereitstellen einer oder mehrerer Ladefolgelisten beseitigt.
-
Die
oben beschriebenen Ausführungen überwachen
den Anlaufprozess des Programms und bestimmen die Reihenfolge, in
der Dateiabschnitte von einer Platte während plattenintensiver Operationen,
z.B. Starten des Programms oder Auswählen bestimmter Programmbefehle,
gelesen werden. Diese Daten werden verwendet, um eine Ladefolgeliste
zu erzeugen, die die Reihenfolge angibt, in der verschiedenen Abschnitte
der Dateien während
des Starts gelesen werden. Während
der Installation liest das Installationsprogramm die Daten aus der
Ladefolgeliste und schreibt die startbezogenen Dateiabschnitte in
dieser Reihenfolge in zusammenhängende
Cluster auf der logischen Platte. Alternativ werden die startbezogenen
Abschnitte der Dateien entsprechend der Ladefolgeliste nach dem
Installieren des Programms neu geordnet. Danach kann der Computer
startbezogene Daten von der logischen Platte in der richtigen Reihenfolge
auf zusammenhänganden Platten-Clustern
lesen, wodurch verschwendete Zeit minimiert oder beseitigt wird,
die aus Plattenzugriffen entstehen würde, wenn sich die Plattenköpfe zwischen
nicht zusammenhängenden
Clustern bewegen müssten, um
die Startdaten zu lesen.
-
Die
Erfindung kann in einem oder mehreren Programmmodulen implementiert
werden, die auf den in 2–8 veranschaulichten
Merkmalen basieren oder diese implementieren. Keine besondere Programmiersprache
wurde zur Durchführung
der verschiedenen oben beschriebenen Prozeduren beschrieben, weil in
Erwägung
gezogen wird, dass die oben beschriebenen und in den begleitenden
Zeichnungen veranschaulichten Operationen, Schritte und Prozeduren
ausreichend offenbart werden, um einer in der Technik erfahrenen
Person zu erlauben, die vorliegende Erfindung zu praktizieren. Außerdem gibt
es viele Computer und Betriebssysteme, die beim Praktizieren der
vorliegenden Erfindung verwendet werden können, und daher könnte kein
detailliertes Computerprogramm bereitgestellt werden, das auf all
diese vielen verschiedenen Systeme anwendbar wäre. Jeder Benutzer eines bestimmten
Computers wird sich der Sprache und der Werkzeuge bewusst sein,
die für
seine Bedürfnisse
und Zwecke am nützlichsten
sind.
-
Obwohl
die Erfindung hauptsächlich
im Kontext eines Installationsprogramms, das Anwendungsprogramme
unter dem Betriebssystem "WINDOWS
95" installiert,
beschrieben wurde, werden die Fachleute einsehen, dass die Erfindung
auf Programmmodule verschiedener Arten und auf Systeme anwendbar
ist, die eine Vielfalt von Betriebssystemen fahren und eine Vielfalt
von Dateisystemen verwenden. Zum Beispiel kann die vorliegende Erfindung
verwendet werden, um Anwendungsprogramme, Dienstprogramme, Betriebssystem-Programmmodule
und dergleichen zu installieren. Wie oben beschrieben, kann die
vorliegende Erfindung auch eingesetzt werden, um die mit einer Vielfalt
von plattenintensiven Operationen, die das Starten eines Anwendungsprogramms,
das Starten des mit einem Programmbefehl (z.B FILE OPEN) verbunden
Codes und dergleichen einschließen,
verbundenen Programmdaten anzuordnen.