DE68925412T2 - Dateisystem - Google Patents

Dateisystem

Info

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
Application number
DE68925412T
Other languages
English (en)
Other versions
DE68925412D1 (de
Inventor
Susan Penelope Kimber
Andrew John Mcphee
John Christopher Moor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Services Ltd
Original Assignee
Fujitsu Services Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Services Ltd filed Critical Fujitsu Services Ltd
Application granted granted Critical
Publication of DE68925412D1 publication Critical patent/DE68925412D1/de
Publication of DE68925412T2 publication Critical patent/DE68925412T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File 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.
  • Datei erweitern
  • 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.
  • Datei löschen
  • 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.
DE68925412T 1988-12-22 1989-11-30 Dateisystem Expired - Fee Related DE68925412T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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