DE68925412T2 - Dateisystem - Google Patents
DateisystemInfo
- Publication number
- DE68925412T2 DE68925412T2 DE68925412T DE68925412T DE68925412T2 DE 68925412 T2 DE68925412 T2 DE 68925412T2 DE 68925412 T DE68925412 T DE 68925412T DE 68925412 T DE68925412 T DE 68925412T DE 68925412 T2 DE68925412 T2 DE 68925412T2
- Authority
- DE
- Germany
- Prior art keywords
- file
- small
- blocks
- allocated
- space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 12
- 230000008520 organization Effects 0.000 claims description 2
- 239000012634 fragment Substances 0.000 description 42
- 230000004886 head movement Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
- Die Erfindung bezieht sich auf Dateisysteme und insbesondere auf das Zuweisen von Speicherplatz in einem solchen Dateisystem, z.B. einem Disketten-Dateisystem.
- Bei einer herkömmlichen Form eines Disketten-Dateisystems wird der verfügbare Datenspeicherplatz in Blöcke fester Größe von 512 oder 1024 Bytes unterteilt, und diese Blöcke werden Dateien in der gewünschten Weise zugewiesen. Hierbei tritt jedoch das Problem auf, daß es unwahrscheinlich ist, daß die einer bestimmten Datei zugewiesenen Blöcke auf der Diskette zusammenhängend angeordnet sind, und daß die Blöcke klein im Vergleich der Größe einer typischen großen Datei sind. Wenn eine große Daten menge aus der Diskette ausgelesen werden muß, ist eine erhebliche Diskettenkopfbewegung erforderlich, die die Geschwindigkeit reduziert, mit der die Daten ausgelesen werden können.
- Eine Möglichkeit, dieses Problem zu lösen, besteht darin, die Blockgröße zu erhöhen, um den Grad der Zusammenhängigkeit der Dateien zu verbessern und damit das Ausmaß der Kopfbewegung zu reduzieren. Eine Erhöhung der Blockgröße führt jedoch zu dem weiteren Problem, daß kleine Dateien (d.h. solche, die erheblich kleiner sind als die Blockgröße) eine unzulässige Menge an Speicherraum verbrauchen würden.
- Es sind verschiedene Vorschläge hierzu gemacht worden, generell wird jedoch der Dateispeicherraum letztlich aufgeteilt, so daß wenig zusammenhängender Speicherraum verfügbar ist, und ein Aufräumvorgang erforderlich wird. Nach ACM Transactions on Computer Systems, Band 2, Nr. 3, August 1984, New York, US, Seiten 181-197, Mc Kusick et al.: "A fast file system for UNIX" wird eine Speicherausnutzung dadurch optimiert, daß ein oder mehrere volle Blöcke in eine vorbestimmte Anzahl von Teilen gerin- gerer Größe unterteilt werden. Wenn eine Datei erweitert werden soll, wird ihr eine oder werden ihr mehrere volle Blöcke oder ein oder mehrere Teile, abhängig von der Menge an neuen Daten, die der Datei hinzugefügt werden sollen, zugewiesen. Wenn einer Datei eine große Datenmenge hinzugefügt werden soll, werden ein oder mehrere volle Blöcke zugewiesen, und wenn eine kleine Datenmenge hinzugefügt werden soll, werden ein oder meherere Teile der Datei zugewiesen.
- Aufgabe der Erfindung ist ein verbessertes Dateisystem und ein Verfahren zum Managen eines Dateisystems zu schaffen, bei dem die vorstehenden Probleme gelöst werden.
- Gemäß der Erfindung wird bei einem Verfahren zum Managen eines Dateisystems, bei dem physischer Speicherraum in eine Vielzahl von großen Blöcken vorbestimmter Größe unterteilt wird, und zumindest einige der großen Blöcke in eine Vielzahl von kleinen Blöcken unterteilt werden, deren Größe kleiner ist als die der großen Blöcke, vorgeschlagen, daß
- (a) wenn eine Datei produziert wird, die Datei entweder als eine große Datei oder als eine kleine Datei eingestuft wird,
- (b) wenn eine als große Datei bezeichnete Datei erweitert werden soll und dieser Datei gerade nicht ausreichend Raum zugewiesen wird, der Datei eine integrale Anzahl von großen Blöcken zugewiesen wird, und
- (c) wenn eine als kleine Datei bezeichnete Datei erweitert werden soll und dieser Datei gerade nicht ausreichend Raum zugewiesen wird, eine integrale Anzahl der kleinen Blöcke der Datei zugewiesen wird.
- Desweiteren wird gemäß der Erfindung ein Datenverarbeitungssystem mit einem Dateisystem, bei dem ein physischer Speicherraum in dem Dateisystem in eine Vielzahl von großen Blöcken vorbestimmter Größe unterteilt ist, und mindestens einige der großen Blöcke in eine Vielzahl von kleinen Blöcken kleinerer Größe als die großen Blöcke unterteilt sind, vorgeschlagen, das gekennzeichnet ist durch
- (a) eine Vorrichtung, die beim Produzieren einer Datei die Datei entweder als große oder als kleine Datei bezeichnet,
- (b) eine Vorrichtung, die der Datei eine integrale Anzahl großer Blöcke zuordnet, wenn eine als große Datei bezeichnete Datei erweitert werden soll und dieser Datei gerade nicht genügend Platz zugewiesen ist, und
- (c) eine Vorrichtung, die der Datei eine integrale Anzahl kleiner Blöcke zuordnet, wenn eine als kleine Datei bezeichnete Datei erweitert werden soll und dieser Datei gerade nicht genügend Platz zugewiesen ist.
- Nachstehend wird die Erfindung in Verbindung mit der Zeichnung anhand eines Ausführungsbeispieles erläutert. Es zeigt:
- Fig. 1 ein Blockschaltbild einer Ausführungsform eines Datenverarbeitungssystems mit einem Dateisystem gemäß der Erfindung,
- Fig. 2 eine schematische Darstellung der Art und Weise, in der Blöcke den Dateien zugewiesen werden,
- Fig. 3 eine schematische Darstellung der Art und Weise, in der Blöcke miteinander verkettet sind,
- Fig. 4 ein Flußdiagramm, das die Arbeitsweise des Systems beim Einschreiben in die Datei zeigt, und
- Fig. 5 ein Flußdiagramm, das die Arbeitsweise des Systems beim Löschen einer Datei zeigt.
- Nach Fig. 1 weist das Datenverarbeitungssystem eine zentrale Verarbeitungseinheit (CPU) 20, eine Magnet-Disketten-Dateieinheit 21 und einen Hauptspeicher 22 auf.
- Die Disketten-Dateiemheit 21 ist eine 360 MByte fassende Festdisketten-Einheit. Wenn das System geschaffen wird, wird das Dateisystem geschaffen (das die gesamte Diskette oder einen Teil der Diskette einnehmen kann). Der verfügbare Diskettenspeicherraum innerhalb des Dateisystems wird in große Blöcke vorbestimmter Größe unterteilt. Die große Blockgröße kann durch den Benutzer nach der erwarteten Größe der im System zu speichernden Dateien spezifiziert werden, und beträgt mindestens 24 KBytes. In der nachstehenden Beschreibung wird angenommen, daß eine große Blockgröße von 256 KBytes ausgewählt worden ist.
- Wenn in dem System eine Datei geschaffen wird, wird sie entweder als große Datei oder als kleine Datei bezeichnet.
- Großen Dateien werden große Blöcke zugewiesen, da sie diese benötigen. Wenn immer es möglich ist, werden die großen Blöcke, die einer bestimmten großen Datei zugewiesen sind, so gewählt, daß sie auf der Diskette fortlaufend angeordnet sind.
- Kleine Dateien befinden sich in einem Satz von kleinen Dateiflächen, deren jede aus einer Anzahl von großen Blöcken besteht. Jeder große Block ist in kleine Blöcke unterteilt und die Größe der kleinen Blöcke ist vom Benutzer ebenfalls konfigurierbar. In der nachstehenden Beschreibung wird angenommen, daß eine kleine Blockgröße von 4 KBytes ausgewählt worden ist. Der Raum in jeder kleinen Dateifläche wird in Mehrfachen der kleinen Blockgröße zugewiesen. Es kann im System entweder nur eine kleine Dateifläche oder eine Vielzahl von getrennten kleinen Dateiflächen vorhanden sein. In diesem Fall wird angenommen, daß jede kleine Dateifläche aus zwei großen Blöcken besteht.
- Beispielsweise zeigt Fig. 2 eine schematische Ansicht einer Diskettendatei, die sechzehn große Blöcke 0 - 15 speichert (normalerweise wären sehr viel mehr Blöcke im System vorhanden).
- In diesem Beispiel sind einer großen Datei (große Datei 2) Blöcke 0, 1 und 2 zu Beginn zugeordnet, und erst später sind weitere Blöcke 11 und 12 zugeordnet worden. Einer weiteren großen Datei (große Datei Nr. 3) sind Blöcke 7, 8 und 9 zugeordnet.
- Blöcke 3 und 4 sind als kleine Dateiflächen eingestuft worden und speichern eine Anzahl kleiner Dateien (nicht dargestellt), deren jede aus einer ganzen Anzahl von kleinen Blöcken besteht.
- Blöcke 5, 6, 10, 13, 14 und 15 sind frei, entweder, weil sie noch nicht benutzt worden sind, oder weil sie einer Datei zugewiesen waren, die noch nicht gelöscht worden ist.
- Der Dateispeicher wird als aus einer Anzahl von Fragmenten bestehend angesehen, wobei ein Teil als ein zusammenhängender Satz von großen Blöcken mit dem gleichen Zweck oder Eigentümer definiert ist. Ein Fragment kann entweder sein:
- a) eine Fläche freien Raumes,
- b) Teil einer großen Datei, oder
- c) eine kleine Dateifläche.
- Beispielsweise enthält in Fig. 2 der Dateispeicher sieben Fragmente, die aus den Blöcken (0, 1, 2), (3, 4), (5, 6), (7, 8, 9), (10), (11, 12) und (13, 14, 15) bestehen.
- Im Betrieb hält das Dateisystem auf der Diskette eine Fragmentliste aufrecht, die einen Eintrag für jedes Fragment im System enthält. Jeder Eintrag besteht aus vier Feldern wie folgt:
- START: Die Adresse des ersten großen Blockes im Fragment
- SIZE: Die Anzahl von großen Blöcken im Fragment
- I/D: Dies hat die folgenden Bedeutungen:
- 0 = freier Raum
- 1 = kleine Dateifläche
- 2, 3... = Idendität der großen Datei
- PART: eine Part-Zahl für eine große Datei, die in eine Anzahl von Fragmenten aufgeteilt ist.
- Beispielsweise hat nach Fig. 2 das Fragment (11, 12):
- START = 11 (da es am Block 11 beginnt)
- SIZE = 2 (da es aus zwei großen Blöcken besteht),
- I/D = 2 (da es Teil der großen Datei 2 ist),
- PART = 2 (da es im zweiten Teil dieser Datei vorhanden ist).
- Wenn das Dateisystem in das Datenverarbeitungssystem eingeführt wird, wird die Fragmentliste in den Hauptspeicher kopiert. Die Fragmentliste wird dann abgetastet und es wird eine Verbundlisten-Tabelle im Hauptspeicher mit einem Eintrag für jedes Fragment im Dateispeicher erstellt. Jeder Eintrag weist vorwärts und rückwärts weisende physische und logische Zeiger auf, die auf andere Fragmente zusammen mit einem Zeiger auf den Fragmentlisteneintrag zeigen.
- Die physischen Zeiger ketten die Fragmente in ihrer physischen Ordnung auf der Diskette aneinander. Beispielsweise weist unter Bezugnahme auf Fig. 2 der physische Vorwärts-Zeiger für das Fragment (0, 1, 2) auf das Fragment (3, 4), da dieses physisch das nächste Fragment auf der Diskette ist. Somit ergeben die physischen Zeiger eine Karte der physischen Organisation des Dateisystems. Die nach vorwärts und rückwärts gerichteten logischen Zeiger haben die folgenden Bedeutungen:
- a) Wenn das Fragment Teil einer großen Datei ist, zeigen sie auf die nächsten und vorausgehenden Fragmente dieser großen Datei. Somit sind die Fragmente einer jeden großen Datei miteinander in einer logischen Reihenfolge zu einer getrennten Kette verkoppelt.
- b) Ist das Fragment ein Freiraum, zeigt der vordere logische Zeiger auf das nächstgrößere Freiraumfragment, und der hintere logische Zeiger auf das nächstkleinere Freiraumfragment. Damit sind alle Freiraumfragmente miteinander in einer Ordnung zunehmender und abnehmender Größe verkettet.
- c) Wenn das Fragment eine kleine Dateifläche ist, zeigt der vordere logische Zeiger auf die nächste kleine Dateifläche (in chronologischer Reihenfolge der Zuweisung) oder ist Null, wenn keine weiteren Fragmente vorhanden sind. Der hintere logische Zeiger ist eine Referenz für die freie Blockliste innerhalb dieser Fläche.
- Beispielsweise zeigt Fig. 3 die Art und Weise, in der die Fragmente in Fig. 2 durch die logischen Zeiger miteinander verkettet sind.
- Die Freiraumfragmente (10), (5, 6) und (13, 14, 15) sind miteinander in einer Ordnung zunehmender und abnehmender Größe verkettet. Beispielsweise zeigt der vordere logische Zeiger des Fragmentes (10) auf das Fragment (5, 6) usw.
- In ähnlicher Weise sind die beiden Fragmente (0, 1, 2) und (11, 12) der großen Datei (2) miteinander in logischer Reihenfolge verkettet.
- Jede kleine Dateifläche enthält eine freie Blockliste, die angibt, welche kleinen Blöcke innerhalb dieser Fläche frei sind.
- Fig. 4 zeigt die Betriebsweise des Dateisystems, wenn eine Datei erweitert wird.
- (4-1) Es wird ein Test durchgeführt, um zu bestimmen, ob der gesamte physische Raum (falls vorhanden), der der Datei bereits zugewiesen ist, aufgebraucht worden ist.
- (4-2) Wenn der gesamte zugewiesene Raum voll ist (oder wenn kein Raum dieser Datei zugewiesen worden ist), wird die Datei geprüft, um zu bestimmen, ob sie als große Datei bezeichnet worden ist.
- (4-3) Wenn sie eine große Kartei ist, wird ein Test durchgeführt, um zu bestimmen, ob die Dateigröße Null ist.
- (4-4) Wenn die Dateigröße Null ist, bedeutet dies, daß der Datei bisher noch kein Raum auf der Diskette zugewiesen worden ist. Die Liste von Freiraum-Fragmenten wird deshalb abgetastet, damit möglichst eine kontinuierliche Fläche freien Raumes, der für die Datei groß genug ist, aufgefunden wird. Eine ganze Anzahl von Freiraumblöcken wird dann der Datei zugewiesen.
- Beispielsweise können im Falle nach den Fig. 2 und 3, wenn eine neue Datei zwei große Blöcke erforderlich macht, Blöcke 5 und 6 zugewiesen werden.
- Die Fragmentlisten- und Verbundlisten-Einträge werden entsprechend fortgeschaltet.
- (4-5) Wenn die Dateigröße nicht Null ist, muß der Datei bereits eine Fläche auf der Diskette zugewiesen worden sein, die aber jetzt voll ist. Es wird mindestens ein weiterer großer Block der Datei zugewiesen (dies ist sehr wahrscheinlich ein wesentlich größerer Platz als der tatsächlich angeforderte und ergibt somit Platz für eine Erweiterung. Die neue Fläche soll, wenn dies irgend möglich ist, mit dem übrigen Teil der Datei zusammenhängend sein. Dies wird dadurch erreicht, daß die physischen Zeiger in der Verbundliste geprüft werden, um das nächste Fragment aufzufinden, das sich physisch in der Nähe des letzten logischen Blocks der Datei befindet. Dieses Fragment wird getestet, um festzustellen, ob es frei ist oder nicht, und, wenn es frei wird, werden ein oder mehrere Blöcke der Datei zugewiesen. Beispielsweise wird nach Fig. 2, wenn in einen großen Speicher Nr. 2 eingeschrieben wird und nicht genügend Platz in der bereits dieser Datei zugewiesenen Fläche vorhanden ist, der Block 13 der Datei zugewiesen, da er physisch in der Nähe des letzten logischen Blockes 12 der Datei liegt.
- Wie weiter oben erwähnt, werden die Fragmentliste und die Verbundliste entsprechend fortgeschaltet.
- (4-6) Wenn die Datei eine kleine Datei ist, werden die folgenden Vorgänge durchgeführt. Zuerst wird eine Prüfung veranlaßt, um zu bestimmen, ob eine kleine Dateifläche bereits vorhanden ist.
- (4-7) Wenn keine kleine Dateifläche existiert, werden ein oder mehrere freie große Blöcke zugeordnet, um eine neue kleine Dateifläche zu bilden. Die Anzahl von großen Blöcken in jeder kleinen Dateifläche wird durch den Systembenutzer bestimmt; in diesem Beispiel wird angenommen, daß jede kleine Dateifläche aus zwei großen Blöcken besteht. Wenn die kleine Dateifläche aus mehr als einem großen Block besteht, werden diese als zusammenhängende Blöcke zugewiesen.
- Die Fragmentliste und die Verbundliste werden entsprechend fortgeschaltet.
- Der kleinen Datei werden dann ein oder mehrere kleine (4 KByte) Blöcke in dieser neuen kleinen Dateifläche zugewiesen.
- (4-8) Wenn eine kleine Dateifläche bereits vorhanden ist, wird die freie Blockliste dieser Fläche geprüft, um festzustellen, ob irgendwelche freien kleinen Blöcke in der kleinen Dateifläche vorhanden sind.
- Sind keine freien kleinen Blöcke vorhanden, wird eine neue kleine Dateifläche in der vorbeschriebenen Weise geschaffen, und der Datei wird ein kleiner Block aus dieser Fläche zugewiesen.
- (4-9) Wenn andererseits mindestens ein freier kleiner Block in der kleinen Dateifläche vorhanden ist, wird er der Datei zugewiesen, und die freie Blockliste wird fortgeschaltet. Die kleinen Blöcke, die einer speziellen kleinen Datei zugewiesen sind, brauchen nicht notwendigerweise zusammenhängend sein.
- (4-10) Wenn einer Datei Raum zugewiesen worden ist, oder wenn andererseits bei Schritt 4-1 festgestellt worden ist, daß freier Raum in der der Datei bereits zugewiesenen Fläche vorhanden ist, wird dieser Raum (oder so viel wie möglich von diesem Raum) benutzt.
- (4-11) Dann wird ein Test durchgeführt, um festzustellen, ob mehr physischer Raum erforderlich ist. Wenn nicht, wird der Datei-Erweiterungsvorgang abgeschlossen. Andernfalls kehrt der Vorgang zum Schritt 4-1 zurück, und diese Schleife wird wiederholt, bis die Dateierweiterung vollständig ist.
- Fig. 5 zeigt den Betrieb des Dateisystems, wenn eine Datei gelöscht werden soll
- (5-1) Zuerst wird ein Test durchgeführt, um festzustellen, ob es sich um eine große Datei handelt.
- (5-2) Wenn es sich um eine große Datei handelt, werden bei allen großen Blöcken, die dieser Datei zugewiesen worden sind, die Zuweisung zurückgenommen, indem sie der Liste von Freiraumfragmenten zugefügt werden.
- (5-3) Wenn andererseits die Datei klein ist, werden für die kleinen Blöcke, die dieser Datei zugewiesen sind, die Zuweisungen zurückgenommen, indem die freie Blockliste der kleinen Dateifläche, in der sie angeordnet sind, fortgeschaltet wird.
- (5-4) Die freie Blockliste der kleinen Dateifläche wird dann geprüft, um festzustellen, ob diese ganze Fläche nunmehr frei ist.
- (5-5) Wenn dies zutrifft, wird die Zuweisung der ganzen kleinen Dateifläche zurückgenommen, indem die großen Blöcke, die diese Fläche bilden, der Liste von Freiraumfragmenten hinzugefügt werden.
- Die vorbeschriebenen Vorgänge für die Dateisysteme einschließlich der Dateischreib- und -löschvorgänge nach den Fig. 4 und 5 können zweckmäßigerweise durch Software oder Firmware umgesetzt werden, die auf der CPU 20 (Fig. 1) gefahren wird. Diese Software oder Firmware könnte auch auf einem anderen Prozessor gefahren werden, der die Diskette steuert und der der Haupt-CPU untergeordnet ist.
- Zusammenfassend ergibt sich, daß Raum auf der Scheibe dynamisch zugewiesen und die Zuweisung aufgehoben wird, wenn dies erforderlich ist. Zu Beginn sind alle großen Blöcke frei und bilden ein einziges Freiraum-Fragment. Große Blöcke werden großen Dateien in der erforderlichen Weise zugewiesen. Kleine Dateiflächen werden geschaffen, wenn dies erforderlich ist, um kleine Dateien zu speichern. Bei manchen Umsetzungen kann es erforderlich sein, eine kleine Dateifläche während des Erzeugungsvorganges zu schaffen.
- Das vorbeschriebene System ergibt ein Zwei-Stufen-System mit großen und kleinen Blöcken für große und kleine Dateien. Damit wird der Raumbedarf verringert, der auftreten würde, wenn kleine Dateien in große Blöcke eingeschrieben würden. Die sehr große Dimension der großen Blöcke stellt sicher, daß große Mengen an Daten zusammenfassend gespeichert und damit aus der Diskette ausgelesen werden können, ohne daß eine übermäßig hohe Kopfbewegung erforderlich ist. Ferner wird das Ausmaß der Kopfbewegung dadurch verringert, daß große Dateien zusammenhängenden Blöcken zugewiesen werden, wenn dies immer möglich ist.
- Bei einer möglichen Modifizierung des Systems kann eine Erweiterung auf drei oder mehr Stufen vorgesehen sein, jede mit einer unterschiedlichen Blockgröße.
Claims (8)
1. Verfahren zum Managen eines Dateisystems, wobei physischer Speicherraum in
eine Vielzahl von großen Blöcken vorbestimmter Größe unterteilt ist, und
zumindest einige der großen Blöcke in eine Vielzahl von kleinen Blöcken unterteilt
sind, deren Größe kleiner ist als die der großen Blöcke, dadurch gekennzeichnet,
daß
a) dann, wenn eine Datei produziert wird, die Datei entweder als eine große Datei
oder eine kleine Datei bezeichnet wird,
b) wenn eine als große Datei bezeichnete Datei erweitert werden soll und dieser
Datei gerade nicht ausreichend Raum zugewiesen wird, eine integrale Anzahl der
großen Blöcke der Datei zugewiesen wird, und
c) wenn eine als kleine Datei bezeichnete Datei erweitert werden soll und dieser
Datei gerade nicht ausreichend Raum zugewiesen wird, eine integrale Anzahl der
kleinen Blöcke der Datei zugewiesen wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß jeder große Block
mindestens eine Größe von 64 KBytes hat.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß jeder kleine Block
eine Größe von höchstens 4 Kbytes hat.
4. Verfahren nach einem der vorausgehenden Ansprüche, bei dem jeder großen Datei
physisch zusammenhängende große Blöcke zugeordnet sind, wo immer dies
möglich ist.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß eine Karte der
physischen Organisation des Dateisystems aufrecht erhalten wird, und daß die Karte
so verwendet wird, daß physisch zusammenhängende große Blöcke positioniert
werden.
6. Verfahren nach einem der vorausgehenden Ansprüche, dadurch gekennzeichnet,
daß die kleinen Blöcke von einer oder mehreren Flächen der kleinen Datei
zugewiesen werden, wobei jede kleine Dateifläche einen oder mehrere physisch
zusammenhängende große Blöcke enthält.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß dann, wenn weitere
kleine Blöcke erforderlich sind, eine neue Fläche der kleinen Datei dadurch
geschaffen wird, daß ein oder mehrere zusammenhängende große Blöcke der neuen
Fläche der kleinen Datei zugewiesen werden.
8. Datenverarbeitungssystem mit einem Dateisystem, bei dem ein physischer
Speicherraum in dem Dateisystem in eine Vielzahl von großen Blöcken
vorbestimmter Größe unterteilt ist, und mindestens einige der großen Blöcke in eine
Vielzahl von kleinen Blöcken kleinerer Größe als die großen Blöcke unterteilt sind,
gekennzeichnet durch
a) eine Vorrichtung, die beim Produzieren einer Datei die Datei entweder als große
oder als kleine Datei bezeichnet,
b) eine Vorrichtung, die der Datei eine integrale Anzahl großer Blöcke zuordnet,
wenn eine als große Datei bezeichnete Datei erweitert werden soll und dieser Datei
gerade nicht genügend Platz zugewiesen ist, und
c) eine Vorrichtung, die der Datei eine integrale Anzahl kleiner Blöcke zuordnet,
wenn eine als kleine Datei bezeichnete Datei erweitert werden soll und dieser Datei
gerade nicht genügend Platz zugewiesen ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB888829919A GB8829919D0 (en) | 1988-12-22 | 1988-12-22 | File system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68925412D1 DE68925412D1 (de) | 1996-02-22 |
DE68925412T2 true DE68925412T2 (de) | 1996-09-05 |
Family
ID=10648934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE68925412T Expired - Fee Related DE68925412T2 (de) | 1988-12-22 | 1989-11-30 | Dateisystem |
Country Status (6)
Country | Link |
---|---|
US (1) | US5375233A (de) |
EP (1) | EP0375188B1 (de) |
AU (1) | AU619371B2 (de) |
DE (1) | DE68925412T2 (de) |
GB (1) | GB8829919D0 (de) |
ZA (1) | ZA899587B (de) |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5200864A (en) * | 1989-06-28 | 1993-04-06 | International Business Machines Corporation | Combining small records into a single record block for recording on a record media |
US5537652A (en) * | 1990-08-20 | 1996-07-16 | International Business Machines Corporation | Data file directory system and method for writing data file directory information |
JP2962335B2 (ja) * | 1991-06-24 | 1999-10-12 | 日本電気株式会社 | 空き領域検索方式 |
JPH0546447A (ja) * | 1991-08-08 | 1993-02-26 | Hitachi Ltd | 空き領域検索方法 |
US5454103A (en) * | 1993-02-01 | 1995-09-26 | Lsc, Inc. | Method and apparatus for file storage allocation for secondary storage using large and small file blocks |
US5761739A (en) * | 1993-06-08 | 1998-06-02 | International Business Machines Corporation | Methods and systems for creating a storage dump within a coupling facility of a multisystem enviroment |
JPH07175698A (ja) * | 1993-12-17 | 1995-07-14 | Fujitsu Ltd | ファイルシステム |
US5802599A (en) * | 1994-02-08 | 1998-09-01 | International Business Machines Corporation | System and method for allocating storage in a fragmented storage space |
JP3745398B2 (ja) * | 1994-06-17 | 2006-02-15 | 富士通株式会社 | ファイルのディスクブロック制御方式 |
US5740435A (en) * | 1994-10-31 | 1998-04-14 | Sony Corporation | Data management apparatus and method for managing data of variable lengths recorded on a record medium |
JP3464836B2 (ja) * | 1995-01-19 | 2003-11-10 | 富士通株式会社 | 記憶装置のメモリ管理装置 |
US5623701A (en) * | 1995-06-06 | 1997-04-22 | International Business Machines Corporation | Data compression method and structure for a direct access storage device |
US6073189A (en) * | 1995-07-24 | 2000-06-06 | Adaptec, Inc. | System and method for incremental packet recording of recordable compact discs |
US6125435A (en) * | 1995-09-13 | 2000-09-26 | Lexar Media, Inc. | Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory |
US5854942A (en) * | 1996-09-06 | 1998-12-29 | International Business Machines Corporation | Method and system for automatic storage subsystem configuration |
US6119114A (en) * | 1996-09-17 | 2000-09-12 | Smadja; Frank | Method and apparatus for dynamic relevance ranking |
US6173298B1 (en) | 1996-09-17 | 2001-01-09 | Asap, Ltd. | Method and apparatus for implementing a dynamic collocation dictionary |
US6058390A (en) * | 1996-11-26 | 2000-05-02 | Visteon Technologies, Llc | Vehicle navigation assistance device having fast file access capability |
JPH10289180A (ja) * | 1997-02-12 | 1998-10-27 | Canon Inc | 通信処理装置及び方法 |
US6488211B1 (en) | 1997-05-15 | 2002-12-03 | Mondex International Limited | System and method for flexibly loading in IC card |
US5960446A (en) * | 1997-07-11 | 1999-09-28 | International Business Machines Corporation | Parallel file system and method with allocation map |
US5987479A (en) * | 1997-09-24 | 1999-11-16 | Sony Corporation, Inc. | Large block allocation for disk-based file systems |
US6175900B1 (en) | 1998-02-09 | 2001-01-16 | Microsoft Corporation | Hierarchical bitmap-based memory manager |
US7013305B2 (en) | 2001-10-01 | 2006-03-14 | International Business Machines Corporation | Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange |
US6317415B1 (en) | 1998-09-28 | 2001-11-13 | Raytheon Company | Method and system for communicating information in a network |
US6374314B1 (en) * | 1998-09-28 | 2002-04-16 | Raytheon Company | Method for managing storage of data by storing buffer pointers of data comprising a sequence of frames in a memory location different from a memory location for pointers of data not comprising a sequence of frames |
US6266702B1 (en) | 1998-09-28 | 2001-07-24 | Raytheon Company | Method and apparatus to insert and extract data from a plurality of slots of data frames by using access table to identify network nodes and their slots for insertion and extraction data |
US6381647B1 (en) | 1998-09-28 | 2002-04-30 | Raytheon Company | Method and system for scheduling network communication |
US6895418B1 (en) * | 1999-04-28 | 2005-05-17 | Emc Corporation | Versatile indirection in an extent based file system |
US6564292B2 (en) | 2000-07-12 | 2003-05-13 | Seagate Technology Llc | Optimizing allocation of sectors in disc drives |
US6829678B1 (en) * | 2000-07-18 | 2004-12-07 | International Business Machines Corporation | System for determining the order and frequency in which space is allocated on individual storage devices |
US20040006636A1 (en) * | 2002-04-19 | 2004-01-08 | Oesterreicher Richard T. | Optimized digital media delivery engine |
US20040006635A1 (en) * | 2002-04-19 | 2004-01-08 | Oesterreicher Richard T. | Hybrid streaming platform |
US7899924B2 (en) | 2002-04-19 | 2011-03-01 | Oesterreicher Richard T | Flexible streaming hardware |
US6963952B1 (en) * | 2002-07-19 | 2005-11-08 | Sonic Solutions, Inc. | Multi-session optical media and methods for recording |
JP4592063B2 (ja) * | 2004-06-15 | 2010-12-01 | キヤノン株式会社 | 画像処理装置、画像データ管理方法、及び画像データ管理プログラム |
EP1782287A2 (de) * | 2004-07-21 | 2007-05-09 | Beach Unlimited LLC | Auf blockkarten-caching basierende verteilte speicherarchitektur und vfs-stapelbare dateisystemmodule |
CN101010959B (zh) * | 2004-07-23 | 2012-01-25 | 海滩无极限有限公司 | 传送数据流的方法和系统 |
US7809777B2 (en) | 2005-07-01 | 2010-10-05 | Qnx Software Systems Gmbh & Co. Kg | File system having deferred verification of data integrity |
US7970803B2 (en) | 2005-07-01 | 2011-06-28 | Qnx Software Systems Gmbh & Co. Kg | Optimized startup verification of file system integrity |
US8959125B2 (en) | 2005-07-01 | 2015-02-17 | 226008 Ontario Inc. | File system having inverted hierarchical structure |
US7873683B2 (en) * | 2005-07-01 | 2011-01-18 | Qnx Software Systems Gmbh & Co. Kg | File system having transaction record coalescing |
US20070143378A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with adaptive file handling in a directly mapped file storage system |
US20070143561A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system |
WO2007081638A2 (en) * | 2005-12-21 | 2007-07-19 | Sandisk Corporation | Non-volatile memories and methods with adaptive file handling in a directly mapped file storage system |
US20070223875A1 (en) | 2006-03-21 | 2007-09-27 | Tsung-Ning Chung | Storage device and method of accessing storage device |
US7599972B2 (en) | 2006-08-25 | 2009-10-06 | Qnx Software Systems Gmbh & Co. Kg | File system having variable logical storage block size |
US7908276B2 (en) | 2006-08-25 | 2011-03-15 | Qnx Software Systems Gmbh & Co. Kg | Filesystem having a filename cache |
US7739255B2 (en) * | 2006-09-01 | 2010-06-15 | Ma Capital Lllp | System for and method of visual representation and review of media files |
JP5073259B2 (ja) | 2006-09-28 | 2012-11-14 | 株式会社日立製作所 | 仮想化システム及び領域割当て制御方法 |
US20080109305A1 (en) * | 2006-11-08 | 2008-05-08 | Ma Capital Lllp | Using internet advertising as a test bed for radio advertisements |
US20080109845A1 (en) * | 2006-11-08 | 2008-05-08 | Ma Capital Lllp | System and method for generating advertisements for use in broadcast media |
US20080109409A1 (en) * | 2006-11-08 | 2008-05-08 | Ma Capital Lllp | Brokering keywords in radio broadcasts |
US20080222255A1 (en) * | 2007-03-08 | 2008-09-11 | Andrew Douglass Hall | Systems and methods for providing high performance and scalable messaging |
CN102334093B (zh) | 2009-03-18 | 2017-08-01 | 株式会社日立制作所 | 存储控制装置以及虚拟卷的控制方法 |
US8504792B2 (en) * | 2009-12-22 | 2013-08-06 | Apple Inc. | Methods and apparatuses to allocate file storage via tree representations of a bitmap |
CN102096722B (zh) * | 2011-03-21 | 2013-03-27 | 华为数字技术(成都)有限公司 | 文件存储方法和装置 |
CN103064843B (zh) * | 2011-10-20 | 2016-03-16 | 北京中搜网络技术股份有限公司 | 数据处理装置和数据处理方法 |
US9542401B1 (en) | 2012-03-30 | 2017-01-10 | EMC IP Holding Company LLC | Using extents of indirect blocks for file mapping of large files |
US9026754B2 (en) | 2012-05-11 | 2015-05-05 | Hitachi, Ltd. | Storage apparatus and data management method |
JP6417695B2 (ja) | 2014-03-31 | 2018-11-07 | 富士通株式会社 | 情報処理システム、情報処理システムの制御方法および情報処理装置の制御プログラム |
WO2016187831A1 (zh) * | 2015-05-27 | 2016-12-01 | 华为技术有限公司 | 存取文件的方法、装置和存储系统 |
GB2541916B (en) * | 2015-09-03 | 2018-05-09 | Gurulogic Microsystems Oy | Method of operating data memory and device utilizing method |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4435752A (en) * | 1973-11-07 | 1984-03-06 | Texas Instruments Incorporated | Allocation of rotating memory device storage locations |
GB1548401A (en) * | 1975-10-08 | 1979-07-11 | Plessey Co Ltd | Data processing memory space allocation and deallocation arrangements |
US4164026A (en) * | 1977-12-30 | 1979-08-07 | International Business Machines Corporation | Contiguous element field access bubble lattice file |
US4536837A (en) * | 1982-05-25 | 1985-08-20 | Elxsi | Improved disk file allocation and mapping system utilizing cylinder control blocks and file map having unbalanced tree structure |
AU575182B2 (en) * | 1984-06-28 | 1988-07-21 | Wang Laboratories, Inc. | Self extending memory file |
JPS61138363A (ja) * | 1984-12-10 | 1986-06-25 | Canon Inc | 文書処理装置 |
US4843570A (en) * | 1984-12-29 | 1989-06-27 | Cannon Kabushiki Kaisha | Block processing apparatus |
JPS62221048A (ja) * | 1986-03-20 | 1987-09-29 | Fujitsu Ltd | 連続フアイルの領域拡張方法 |
JPS62236049A (ja) * | 1986-04-07 | 1987-10-16 | Nec Corp | フアイル構成方式 |
JP2647649B2 (ja) * | 1986-07-03 | 1997-08-27 | パイオニア株式会社 | 光ディスク記録方法 |
US4945475A (en) * | 1986-10-30 | 1990-07-31 | Apple Computer, Inc. | Hierarchical file system to provide cataloging and retrieval of data |
AU2402488A (en) * | 1987-12-23 | 1989-06-29 | International Business Machines Corporation | Methods of logically organizing documents in a system |
US4947367A (en) * | 1988-03-28 | 1990-08-07 | Emc Corporation | System for converting digital data from magnetic tape format apparatus and method for converting a sequentially accessible magnetic tape data format to directly accessible write-once disk data format to worm optical disk format |
US5021946A (en) * | 1988-06-17 | 1991-06-04 | Modular Computer Systems, Inc. | Mostly contiguous file allocation technique involving file extension |
-
1988
- 1988-12-22 GB GB888829919A patent/GB8829919D0/en active Pending
-
1989
- 1989-11-30 EP EP89312523A patent/EP0375188B1/de not_active Expired - Lifetime
- 1989-11-30 DE DE68925412T patent/DE68925412T2/de not_active Expired - Fee Related
- 1989-12-14 ZA ZA899587A patent/ZA899587B/xx unknown
- 1989-12-21 AU AU47031/89A patent/AU619371B2/en not_active Ceased
-
1992
- 1992-04-06 US US07/864,149 patent/US5375233A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0375188B1 (de) | 1996-01-10 |
GB8829919D0 (en) | 1989-02-15 |
DE68925412D1 (de) | 1996-02-22 |
AU4703189A (en) | 1990-06-28 |
US5375233A (en) | 1994-12-20 |
EP0375188A2 (de) | 1990-06-27 |
ZA899587B (en) | 1990-09-26 |
EP0375188A3 (de) | 1992-10-28 |
AU619371B2 (en) | 1992-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68925412T2 (de) | Dateisystem | |
DE60313783T2 (de) | Bewegen von daten zwischen speichereinheiten | |
DE60025749T2 (de) | Dateisystemabbildübertragung zwischen ungleichen dateisystemen | |
DE4218025C2 (de) | Vorrichtung und Verfahren zur automatischen Zuordnung von Datenspeichereinrichtungen in einem Computersystem | |
DE69031494T2 (de) | Verfahren zum lesen und schreiben von dateien auf nichtlöschbaren speichermedien | |
DE3780807T2 (de) | Verfahren zum schnellen oeffnen von mit pfadnamen identifizierten plattendateien. | |
DE60129025T2 (de) | Speicherbereichszuordnung in einem dateisystem zum beschreiben beliebiger bereiche | |
DE69021899T2 (de) | DMA-Steuerung. | |
DE3883733T2 (de) | Bedienungsverfahren eines elektronischen Datenverarbeitungssystems zum Dokumententransfer zwischen Endbenutzern. | |
DE102012216022B4 (de) | Verwaltung einer Zeitpunktkopie-Beziehung für platzsparende Datenträger | |
DE69533193T2 (de) | Paralleles verarbeitungssystem zum durchlaufen einer datenbank | |
DE3853460T2 (de) | Raumverwaltungsanordnung für das Datenzugriffssystem eines Dateizugriffsprozessors. | |
DE69029210T2 (de) | Verwaltungsverfahren und Vorrichtung zur Datenspeicherung | |
DE60030876T2 (de) | Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität | |
DE3280428T2 (de) | Datenspeichersystem fuer einen arbeitsrechner. | |
DE69025005T2 (de) | Seitendruckerspeicherzuweisung | |
DE69027017T2 (de) | Anordnung und Verfahren zur Speicherverwaltung in einem Mikrorechner | |
DE102005019842B4 (de) | System und Verfahren zum sequentiellen Schreiben von Daten in einen Flash-Speicher | |
DE102006005877A1 (de) | Adresszuordnungstabelle und Verfahren zum Erzeugen einer Adresszuordnungstabelle | |
DE112009004503T5 (de) | Optimierung der zugriffszeit von auf speichern gespeicherten dateien | |
DE202012013432U1 (de) | Speichern von Daten auf Speicherknoten | |
DE69127399T2 (de) | Verfahren zur automatischen Löschung vorübergehender Dokumentverbindungen in einem Datenverarbeitungssystem | |
DE3688581T2 (de) | Sortierverfahren in einem hierarchisch geordneten Speichersystem. | |
DE69126108T2 (de) | Rotierende Speicheranordnung | |
DE10234138A1 (de) | Verwalten einer Speicherkonkurrenz bei automatisierten Speichersystemen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |