DE3856090T2 - Aus Einheitsfunktionsgruppen aufgebaute Dateienspeicherungszuordnungstabellen für Dateienspeichereinheiten grosser Kapazität - Google Patents

Aus Einheitsfunktionsgruppen aufgebaute Dateienspeicherungszuordnungstabellen für Dateienspeichereinheiten grosser Kapazität

Info

Publication number
DE3856090T2
DE3856090T2 DE3856090T DE3856090T DE3856090T2 DE 3856090 T2 DE3856090 T2 DE 3856090T2 DE 3856090 T DE3856090 T DE 3856090T DE 3856090 T DE3856090 T DE 3856090T DE 3856090 T2 DE3856090 T2 DE 3856090T2
Authority
DE
Germany
Prior art keywords
directory
data
file
title
segment
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
DE3856090T
Other languages
English (en)
Other versions
DE3856090D1 (de
Inventor
William Joseph Flannagan
Ronald Maynard Kern
John Edward Kulakowski
Robert E Wagner
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3856090D1 publication Critical patent/DE3856090D1/de
Application granted granted Critical
Publication of DE3856090T2 publication Critical patent/DE3856090T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B7/00Recording or reproducing by optical means, e.g. recording using a thermal beam of optical radiation by modifying optical properties or the physical structure, reproducing using an optical beam at lower power by sensing optical properties; Record carriers therefor
    • G11B7/007Arrangement of the information on the record carrier, e.g. form of tracks, actual track shape, e.g. wobbled, or cross-section, e.g. v-shaped; Sequential information structures, e.g. sectoring or header formats within a track
    • G11B7/00745Sectoring or header formats within a track
    • 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
    • G06F16/902Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B20/1252Formatting, e.g. arrangement of data block or words on the record carriers on discs for discontinuous data, e.g. digital information signals, computer programme data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1883Methods for assignment of alternate areas for defective areas
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B2020/10898Overwriting or replacing recorded data
    • G11B2020/10907Overwriting or replacing recorded data using pseudo-overwriting, i.e. virtually or logically overwriting data on WORM media by remapping recorded blocks to alternate areas
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B2020/1218Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
    • G11B2020/1224Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc extent, i.e. a set of sectors which numbers form a continuous ascending sequence
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1883Methods for assignment of alternate areas for defective areas
    • G11B2020/1893Methods for assignment of alternate areas for defective areas using linear replacement to relocate data from a defective block to a non-contiguous spare area, e.g. with a secondary defect list [SDL]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1883Methods for assignment of alternate areas for defective areas
    • G11B2020/1896Methods for assignment of alternate areas for defective areas using skip or slip replacement to relocate data from a defective block to the next usable block, e.g. with a primary defect list [PDL]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/215Recordable discs
    • G11B2220/218Write-once discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Description

  • Die vorliegende Erfindung bezieht sich im allgemeinen auf eine Datenspeichervorrichtung und im besonderen auf Datenspeicherzuordnungstabellen, die mit und in einer solchen Vorrichtung verwendet werden können. Die Erfindung läßt sich am vorteilhaftesten bei nicht löschbaren oder einmal beschreibbaren Aufzeichnungsvorrichtungen einsetzen, zu denen häufig auch eine sogenannte einmal beschreibbare Datenaufzeichnungsvorrichtung für optische Platten gehört.
  • Datenspeicherzuordnungstabellen werden für den Zugriff auf Daten in Computer-Datenbanken verwendet. Eine häufige Form für eine solche Datenspeicherzuordnungstabelle ist die sogenannte Baum-Datenspeicherzuordnungstabelle, bei der eine obere Ebene der Datenspeicherzuordnungstabelle auf eine niedriger gelegene Ebene innerhalb der Datenspeicherzuordnungstabelle zeigt, die wiederum selbst auf eventuell vorhandene niedriger gelegene Ebenen innerhalb der Datenspeicherzuordnungstabelle zeigt, die schließlich die Position der Daten angeben, auf die zugegriffen werden kann. Die höchste Ebene der Datenspeicherzuordnungstabelle wird häufig auch als "Datenspeicherstammzuordnungstabelle" bezeichnet. Ein Beispiel für eine solche Struktur einer Datenspeicherzuordnungstabelle wird in Betriebssystemen (DOS) der Serie IBM Personal Computer Computer Language Series mit der Teilenummer 1502343, Copyright 1983, International Business Machines Corporation, Armonk, New York, verwendet. Die Struktur der Datenspeicherzuordnungstabelle läßt sich in DOS entweder mit einem TREE-Befehl oder einem Datenspeicherzuordnungstabellenbefehl DIR betrachten. Der DOS- Befehl PATH, der Datenspeicherzuordnungstabellenbefehl SET SEARCH verwendet werden kann, gibt einen Pfad zu den verschiedenen Ebenen der Datenspeicherzuordnungstabelle an, um auf eine einzelne Datei oder auf eine Dateigruppe zugreifen zu können. In DOS besitzt jede Datei einen Dateinamen und eine optionale Erweiterung, die aus drei alphabetischen Zeichen besteht. Der Dateiname und die Erweiterung sind durch einen Punkt voneinander getrennt. Ein weiteres Beispiel für eine solche Baum-Datenspeicherzuordnungstabelle wird im U.S.-Patent 4,468,728 von Wang beschrieben.
  • In der DOS-Version 2.1, wie sie auf dem Gerät IBM Personal Computer XT verwendet wird, wird die Datenspeicherstammzuordnungstabelle in einer äußeren Spur einer sogenannten Festplatte (magnetischer Speicher) gespeichert, während die verschiedenen niedrigeren Ebenen, die sogenannten "Unterzuordnungstabellen" auf der gesamten Datenspeicherplatte verteilt sind. Das System funktioniert bei magnetischen Datenspeicherplatten, die beliebig oft beschreibbar sind und bei denen die Plattenkapazität eher gering ist, das heißt, bei denen weniger als 50 Megabytes Speicherplatz vorhanden ist, gut. Aus diesem Grund ist eine verbesserte Baumstruktur einer Datenspeicherzuordnungstabelle wünschenswert, die unter DOS sowie anderen Betriebssystemen verwendbar ist, um auf effiziente Weise Daten zu verwalten, die auf einer Festplatte mit großer Kapazität, das heißt, über 200 Megabyte Speicherkapazität und mehr, gespeichert sind. Diese neue Art der Verwaltung sollte ohne hohe Anforderungen an die Rechenleistung möglich sein.
  • Manche optische Platten sind sogenannte "einmal beschreibbare Platten"; das heißt, die Aufzeichnung auf der Plattenoberfläche führt zu einer irreversiblen Aufzeichnung wie bei einer Ablation, bei einem Wechsel zwischen amorphem und kristallinem Materialzustand, bei einer Änderung der Topographie der Festplatte ohne Ablation, bei einer Farbänderung der Festplatte usw. Einmal beschreibbar wird auch als unlöschbare Aufzeichnung" bezeichnet. In einer Datenverarbeitungsumgebung sind die als Aktualisierungen von Dateien zu speichernden Daten im Gegensatz zu einer Video- oder Bildfesthalteumgebung im allgemeinen nicht linear angeordnet. Das bedeutet, die Größe der zur Beschreibung der zu speichernden Daten benötigten Datenspeicherzuordnungstabelle läßt sich nicht vorherbestimmen; das wiederum heißt, daß eine Verwaltung der Datenspeicherzuordnungstabelle benötigt wird, die eine bestmögliche Nutzung der vorhandenen Festplattenspeicherkapaz ität gewährleistet, während gleichzeitig die Suchdauer in der Datenspeicherzuordnungstabelle für das Auffinden der Daten in den zugeordneten Datenspeicherpositionen auf der Festplatte (auch als Datenspeicherplatz bezeichnet) auf ein Minimum beschränkt wird. In anderen Worten, die in jedem Block der Datenspeicherzuordnungstabelle zur verfügung stehenden Informationen sollten möglichst umfangreich sein, während der Bedarf an Datenspeicherplatz und die Dauer der Suche in der Datenspeicherzuordnungstabelle für den Zugriff auf diesen zugeordneten Speicherplatz möglichst gering sein sollten. Der zugeordnete Datenspeicherplatz in jeder Datenspeicherzuordnungstabelle sollte so weit wie möglich gefüllt sein, was gleichzeitig Datenspeicherplatz spart und die Suchdauer reduziert.
  • Zwar sind die oben beschriebenen Grundsätze und Gedanken von besonderem Interesse, was unlöschbar aufgezeichnete Daten anbelangt, doch sind diese Grundsätze auch auf wiederbeschreibbare oder reversible Datenspeicher anwendbar.
  • Bei jedem dieser Speichertypen bedeutet das Hinzufügen von zu speichernden Daten auf nichtlineare Weise, daß die Datenspeicherzuordnungstabelle an Umfang wächst. Entsprechend sollte die Datenspeicherzuordnungstabelle vollständig aus Einheitsfunktionsgruppen aufgebaut und insoweit unabhängig sein, als sie aufgebaut ist, während sie umfangreiche Änderungen und Erweiterungen ermöglicht. Unter einem weiteren Aspekt, der bei der unlöschbaren Aufzeichnung von besonderem Interesse ist, kann eine optische Datenspeicherplatte beispielsweise mit einem Nur-Lese-Segment vorbereitet sein. Dieses Nur-Lese-Segment kann denselben Aufzeichnungstyp verwenden wie bei der zu empfangenden unlöschbaren Aufzeichnung. Wenn die optische Speicherplatte vom Werk geliefert wird, ist natürlich der Nur-Lese-Teil auf der Speicherplatte aufgezeichnet; sie besitzt dann eine entsprechende aus Einheitsfunktionsgruppen aufgebaute Datenspeicherzuordnungstabelle für diese Nur-Lese-Daten. Wenn ein Benutzer die Platte erhält, kann er zusätzliche Daten hinzufügen und die Datenspeicherzuordnungstabelle durch Einheitsfunktionsgruppen so erweitern, daß, wenn die Speicherplatte mit Daten gefüllt ist, es nur eine einzige Datenspeicherzuordnungstabelle für alle Daten gibt, die auf der Speicherplatte gespeichert sind. Die Datenspeicherzuordnungstabelle sollte darüber hinaus veränderbar sein, um eine Defragmentierung der Daten in der unlöschbaren Aufzeichnung zu ermöglichen. Dies läßt sich erreichen, indem man sowohl den aufgezeichneten Daten als auch der Datenspeicherzuordnungstabelle zusätzliche Einheitsfunktionsgruppen hinzufügt.
  • Die Suchdauer in einer Datenspeicherzuordnungstabelle kann für den Erfolg einer Datenspeichervorrichtung sowie für den schnellen Zugriff auf eine Datenbank ausschlaggebend sein. Diese Suche wird unter Verwendung einer Indexierung der Datenbank oder der Struktur der Datenspeicherzuordnungstabelle erleichtert. Ein Beispiel für eine solche Indexierung wird im U.S.-Patent 4,611,272 beschrieben. Um Daten zu identifizieren oder lokalisieren, muß lediglich der Index durchsucht werden; das heißt, daß weniger Dateneinträge untersucht werden müssen, um Daten aufzufinden, und das reduziert natürlich die Suchdauer. In einigen Datenbanken wird eines der Felder in jedem Eintrag als das Indexfeld bezeichnet. Normalerweise wird ein solches Indexfeld so ausgewählt, daß es das Feld mit dem ersten Eintrag ist, das heißt, das erste Feld am Anfang jeden Eintrags, was gleichzeitig das erste Feld ist, auf das überhaupt zugegriffen wird. Die Informationsinhalte solcher Felder können aus der Datenbank extrahiert und in einen separaten Datenbankindex gestellt werden, wobei der Datenbankindex unabhängig von den Dateneinträgen durchsucht wird. Eine Einschränkung für ein solches System besteht in der Gewährleistung der geeigneten Auswahl des Feldes, das als Index verwendet werden soll. Bei anderen Datenbanken kann jedes beliebige Feld als Indexfeld verwendet werden, wobei dieses Feld in eine separate Datei extrahiert wird. Natürlich ist in beiden Fällen zusätzlicher Datenspeicherplatz erforderlich, um die separate Indexdatei zu speichern. Baumartig strukturierte Datenspeicherzuordnungstabellen werden auf ähnliche Weise mit Index versehen. Ein verbessertes Indexschema ist wünschenswert, insbesondere, um eine aus Einheitsfunktionsgruppen aufgebaute Datenspeicherzuordnungstabelle zu erstellen, um viele verschiedene Datenversionen relativ einfach bearbeiten zu können, während gleichzeitig Softwarekosten reduziert werden.
  • In Aufzeichnungstechnologien, bei denen einmal beschrieben werden kann, die also unlöschbar sind, ist es wünschenswert, so viele Plattensektoren oder Datenspeicherbereiche wie möglich vollständig zu füllen. Entsprechend ist es weiterhin wünschenswert, eine erweiterbare, aus Einheitsfunktionsgruppen aufgebaute, Datenspeicherzuordnungstabelle bereitzustellen, mit der der zur Verfügung stehende Datenspeicherplatz maximal genutzt werden kann, während gleichzeitig die Datenspeicherzuordnungstabelle relativ kompakt gehalten wird, um eine schnelle Indexsuche zu ermöglichen.
  • Eine Datenspeicherzuordnungstabelle besitzt Dateinamen zur Identifizierung von Datendateien, die in der Datenspeichervorrichtung gespeichert sind, und erste Adreßzeiger, die den Dateinamen zugeordnet sind und auf die Positionen der Dateien, die durch diese Dateinamen identifiziert werden, zeigen. Die Datenspeicherzuordnungstabelle ist vorzugsweise in der Datenspeichervorrichtung gespeichert. Die Dateinamen und die dazugehörigen ersten Adreßzeiger sind in einer ersten Mehrzahl von Segmentmodulen innerhalb der Datenspeicherzuordnungstabelle gespeichert. Eine zweite Mehrzahl an Headereinheitsfunktionsgruppen für die Datenspeicherzuordnungstabellen, die geringer ist als die erste Mehrzahl, befindet sich in der Datenspeicherzuordnungstabelle, wobei jede dieser Headereinheitsfunktionsgruppen zweite Adreßzeiger speichert, die auf eine gegebene Zahl an Segmentmodulen zeigen, so daß jeder Header einer entsprechenden Gruppe von Segmentmodulen zugeordnet ist. Darüber hinaus enthält jede dieser Headereinheitsfunktionsgruppen einen Dateinamenindex, mit dem Dateien in einer Gruppe von Segmenten, auf die eine andere Headereinheitsfunktionsgruppe zeigt, identifiziert werden können. In einer einmal beschreibbaren Umgebung enthält die N-te Gruppe von Segmentmodulen ein N-tes Headermodul, mit dem das Segmentmodul identifiziert wird. Das Headermodul umfaßt weiterhin einen Index auf die Segmente der in N-1 aufgezeichneten aus Einheitsfunktionsgruppen in der Datenspeicherzuordnungstabelle. In der letzteren Anordnung werden die Segmentmodule im wesentlichen gleichzeitig mit der Aufzeichnung der Daten in der Datenspeichervorrichtung aufgezeichnet.
  • Unter einem weiteren Aspekt der vorliegenden Erfindung wird die Zuteilung von Datenspeicherplatz auf einem Datenaufzeichnungsmedium auf eine hohe Feinheit eingestellt, um Datensignale zu speichern. Auf einer Aufzeichnungsspeicherplatte beispielsweise wird die Platte in gleichwinklige Datenspeichersektoren aufgeteilt. Die Mindestanzahl an Zuteilungseinheiten zur Speicherung von Daten ist eine geringe Zahl der Sektoren innerhalb einer gegebenen Spur, beispielsweise zwei von dreiundzwanzig Sektoren in einer Spur. Andererseits werden die Headermodule und Segmentmodule der Datenspeicherzuordnungstabelle nur Spuren oder Einheiten mit mehreren Spuren zugeteilt, so daß die Zuteilungsgrößen der Datenspeicherzuordnungstabelle ungefähr um eine Größenordnung höher ist als die Zuteilungsgröße für die Benutzerdaten. Die Aufzeichnung in der Datenspeicherzuordnungstabelle erfolgt seriell, so daß alle Sektoren, die der Datenspeicherzuordnungstabelle zugeteilt wurden, vollständig gefüllt sind, während sie gleichzeitig viele verschiedene Dateigrößen enthalten, die im Datenbereich gespeichert werden sollen. Darüber hinaus ist es wünschenswert, daß die Datenspeicherzuordnungstabelle zuerst auf einer radialen Innenspur und anschließend kontinuierlich radial nach außen verlaufend gefüllt wird. Auf ähnliche Weise werden Daten auf dem Plattenaufzeichnungsmedium zuerst auf einer ganz außen liegenden radialen Spur und anschließend kontinuierlich auf radial nach innen verlaufenden Spur gespeichert. Eine oder zwei der äußersten Spuren können für die Verwendung durch das System reserviert werden, beispielsweise zur Speicherung eines Programms für automatisches Starten, einer Mediendefinition, die auch den Medientyp enthalten kann, und eines Adreßzeigers auf bestimmte Teile der Datenspeicherzuordnungstabelle. In anderen Anordnungen kann die Datenspeicherzuordnungstabelle zentral im Datenspeicherbereich untergebracht werden, während gleichzeitig ein "unabhängiges" Wachstum der Datenspeicherzuordnungstabelle und der Datenspeicherbereiche der Speicherplatte aufrechterhalten werden kann.
  • Die bisher beschriebenen sowie weitere Ziele, Merkmale und Vorteile der vorliegenden Erfindung, die in den anhängigen Ansprüchen definiert sind, werden anhand der nachfolgenden, eingehenderen Beschreibung bevorzugter Ausführungsbeispiele der vorliegenden Erfindung deutlicher veranschaulicht, wobei auf die folgenden beiliegenden Zeichnungen Bezug genommen wird.
  • Figur 1 ist ein Diagramm eines Datenspeichersubsystems, mit dem die vorliegende Erfindung vorteilhaft eingesetzt werden kann.
  • Figur 2 ist eine Abbildung einer Aufzeichnungsspeicherplatte, die in dem in Figur 1 dargestellten System verwendbar ist und die allgemeinen Positionen einer Datenspeicherzuordnungstabelle zeigt, die in Übereinstimmung mit der vorliegenden Erfindung verwendet werden.
  • Figur 3 ist ein logisches Diagramm, das eine Baumstruktur einer beispielhaften Datenspeicherzuordnungstabelle darstellt, die in Übereinstimmung mit der vorliegenden Erfindung konstruiert wurde und in dem in Figur 1 dargestellten Datenspeichersystem verwendbar ist.
  • Figur 4 ist eine Darstellung von Datenstrukturen, die für die in Figur 3 dargestellte Datenspeicherzuordnungstabelle verwendbar ist.
  • Figur 5 ist ein logisches Flußdiagramm, das die Initialisierung der in Figur 2 dargestellten Aufzeichnungsspeicherplatte zeigt.
  • Figur 6 ist ein logisches Diagramm, das die Datenstrukturen zeigt, die in einem Controller des in Figur 1 dargestellten Datenspeichersystems verwendbar sind.
  • Figur 7 ist ein logisches. Diagramm, das die Operationen des in Figur 1 dargestellten Controllers bei der Suche von Informationen aus der Datenspeicherzuordnungstabelle, die in der in Figur 3 dargestellten Datenspeicherzuordnungstabelle gespeichert sind.
  • Figur 8 ist ein logisches Diagramm, das die Operationen des in Figur 1 dargestellten Controllers zeigt, die verwendet werden, um die in Figur 3 dargestellte Datenspeicherzuordnungstabelle zu aktualisieren.
  • Figur 9 ist ein logisches Diagramm, das die Identifizierung der Datenaufzeichnungsextremitäten auf der in Figur 2 dargestellten Platte für solche Operationen, die von dem in Figur 1 dargestellten Controller ausgeführt werden, veranschaulicht.
  • Figur 10 veranschaulicht in Diagrammform eine andere Sektoranordnung, die in der in Figur 3 dargestellten Datenspeicherzuordnungstabelle verwendbar ist und für alternative Anordnungen zur Adressierung von Speicherplatten eingesetzt wird.
  • Figur 11 veranschaulicht in Diagrammform die Cachierung von Daten sowie einen aktuellen Teil der Datenspeicherzuordnungstabelle in einem Host-Computer, wobei diese Anordnung speziell so ausgelegt ist, daß sie sich besonders zur Anwendung der vorliegenden Erfindung eignet.
  • Figur 12 veranschaulicht in Diagrammform das Ausmaß der Daten gemäß Definition durch die vorliegende Erfindung.
  • Wir gehen nun ausführlicher auf die beiliegenden Zeichnungen ein. Gleiche Ziffern bezeichnen in den verschiedenen Diagrammen gleiche Teile und Merkmale. Wir betrachten zunächst Figur 1. Der Host-Prozessor 10 (beispielsweise ein Personalcomputer) enthält ein Betriebssystem DOS 11 und ein Eingabe/Ausgabesystem IOS 12. Alle Programme, die im Host-Prozessor laufen, werden unter DOS 11 ausgeführt, wodurch eine Verbindung mit Peripheriegeräten wie beispielsweise einer Festplatteneinrichtung, Magnetbändern, Kommunikationssystemen usw. aufgebaut werden kann. DOS 11 kommuniziert über IOS 12 mit den Peripheriegeräten. In einigen Programmkonfigurationen kann IOS 12 ein integraler Bestandteil von DOS 11 sein. Dies gilt für das DOS des IBM Personal Computer, 105 12 erscheint als BIOS (von engl.: Basic Input/Output System) auf einem ROM- Halbleiter-Chip. Das Kabel 14 verbindet den Host-Prozessor 10 mit dem Datenspeichersystem 13. Der Controller 15 des Datenspeichersystems 13 umfaßt elektronische Schaltungen, die innerhalb dieses Fachgebiets bekannt sind, um eine Verbindung zwischen einem Host-Prozessor 10 und einer Mehrzahl von Festplattenlaufwerken 17 über eine Busschnittstellenverbindung 16 herzustellen. Wie dies gewöhnlich der Fall ist, enthält der Controller 15 einen Mikroprozessor (nicht dargestellt) zur Ausführung des sogenannten Mirkocodes, der auf bekannte Weise aus Anweisungsprogrammen für den Betrieb des Controllers 15 besteht. Wie dies gewöhnlich der Fall ist, empfängt der Controller 15 Anweisungen und Daten vom Host-Prozessor 10 und liefert auf Befehl Daten, die von einer Festplatte 17 eingelesen wurden, an einen Host-Prozessor 10 und sendet außerdem Statusinformationen an das Subsystem 13. Die Ziffer 19 bezeichnet zwei gestrichelte Linien, die darauf hinweisen, daß der Controller 15 die uneingeschränkte Kontrolle über die Festplatten 17 hat, beispielsweise zur Positionierung eines Wandlers (nicht dargestellt) bezüglich einer Platte in der Festplatte 17, zur Durchführung einer Rotationspositionsmessung, zur Steuerung der Schreib- und Lesezugriffe auf die Platte, zur Messung des Status sowie anderer Funktionen, wie sie auf diesem Gebiet häufig durchgeführt werden.
  • In einer bevorzugten Form eines Plattenspeichersystems 13 sind die Festplatten 17 optische Festplatten; das heißt, ein Laserstrahl (nicht dargestellt) erregt thermisch eine sogenannte aktive Schicht auf einer Platte, um ihre physikalischen Eigenschaften zu ändern, um aufgezeichnete Informationen anzuzeigen. Die Festplatten werden weiterhin durch die Kennzeichnungen OD1 und OD2 markiert. Ein Beispiel für eine solche optische Plattenaufzeichnungsvorrichtung wird im U.S.-Patent 4,566,088 beschrieben, das am 21. Januar 1986 erteilt wurde. Weitere Beispiele solcher Vorrichtungen sind jederzeit verfügbar.
  • Eine Aufzeichnungsplatte des optischen Typs ist in Figur 2 dargestellt. Die optische Platte 20 rotiert um eine Rotationsachse 21 in die Richtung des Pfeils 21A. In einer ersten bevorzugten Form verläuft eine einzelne spiralförmige Spur 22 von einer inneren radialen Extremität eines Aufzeichnungsbereichs zu einer radialen äußeren Extremität. Die spiralförmige Spur ist physikalisch auf der Aufzeichnungsplatte 20 als spiralförmige Rille dargestellt, die mit einer aktiven Schicht eines lichtempfindlichen Materials beschichtet ist, das unter Einwirkung von Laserstrahlen seinen Zustand zwischen amorph und kristallin ändern kann, wie auf diesem Fachgebiet bekannt ist. Auch andere Aufzeichnungsformen und Anordnungen sind natürlich jederzeit möglich, um die vorliegende Erfindung mit der gleichen Wirkung anzuwenden. Anstelle einer einzelnen spiralförmigen Spur können auch konzentrische Spuren verwendet werden. In einer früheren Ausführung bestand jede Spur oder jeder spiralförmige Umlauf aus 23 Winkelsektoren (numeriert von 0 bis 22), von denen jeder 1024 Datenbytes speichern konnte. Jeder Sektor ist genau eine adressierbare Datenspeicherposition auf der Speicherplatte 20. Optional wird ein kleiner umlaufender Sektor am Index 18 bereitgestellt, so daß der optische Wandler 24 in die Richtung des Pfeils 23 bewegt werden kann, wobei er wiederholt einen einzigen Umlauf der spiralförmigen Spur 22 abtastet, wie dies durch den umlaufenden Pfeil 23 dargestellt ist. Nachfolgend wird der Begriff "Spur" verwendet, um entweder eine einzelne konzentrische Spur oder einen einzelnen Umlauf einer spiralförmigen Spur zu bezeichnen; der Begriff "spiralförmige Spur" wird stets verwendet, um die spiralförmige Spur 22 zu bezeichnen.
  • Der DOS-Boot-Bereich befindet sich in Sektor 0 des radial am äußersten gelegenen Umlaufs der spiralförmigen Spur 22. Dieser DOS-Boot-Bereich ermöglicht allen Programmen, die auf der Speicherplatte 20 gespeichert sind, mit den Rechenoperationen des Host-Prozessors 10 zu beginnen. Diese Boot-Operationen sind dem Fachmann gut bekannt und werden daher in diesem Dokument nicht weiter beschrieben. Sektor 1 des radial am äußersten gelegenen Umlaufs speichert den Steuerblock einer optischen Speicherplatte, ODDCB 27. Dieser Steuerblock enthält selbstbeschreibende Daten, die die Speicherplatte 20 identifizieren, wie aus der Darstellung in Figur 6 hervorgeht. In ODDCB 27 ist auf dem radial am innersten gelegenen Umlauf des Aufzeichnungsbereichs der Speicherplatte ein Spur- und Sektorzeiger auf den Verzeichnisbereich 28 enthalten. Eine Beschreibung der Verzeichnisstruktur folgt an späterer Stelle. Mit der modularen Zunahme des Verzeichnisses wächst dieses Verzeichnis radial nach außen. Im Gegensatz dazu werden Benutzerdaten in Bereich 29 des Datenaufzeichnungsbereichs der Speicherplatte 20 gespeichert. Sie beginnen vorzugsweise mit dem zweiten oder dritten radial am äußersten gelegenen Umlauf der spiralförmigen Spur 22. Der am äußersten gelegene Umlauf kann zur Speicherung von Systemdaten wie beispielsweise Bootund Steuerbereiche, Diagnosedaten und ähnlichem, reserviert werden. Mit der Aufzeichnung von Daten auf der Speicherplatte 20 wächst der Benutzerdatenbereich 29 radial nach innen in Richtung des Verzeichnisbereichs 28. Sowohl die Verzeichnisdaten- als auch die Benutzerdatenaufzeichnungen sind zusammenhängend, das heißt, es werden alle Sektoren und Spuren gefüllt, wie dies nachfolgend definiert wird. Zwischen den radialen Extremitäten des Verzeichnisdatenbereichs und des Benutzerdatenbereichs 28 und 29 befindet sich der freie Speicherbereich 30, der entweder Verzeichnisdaten oder Benutzerdaten aufnehmen kann. Entsprechend kann auf jeder beliebigen Speicherplatte jede beliebige Mischung zwischen Verzeichnisdaten und Benutzerdaten auftreten. Alle Datenspeichersektoren im freien Speicherbereich 30 werden als "Nullsektoren" bezeichnet. Alle Sektoren, die entweder Verzeichnisdaten oder Benutzerdaten enthalten, können nicht erneut in das einmal beschreibbare Gerät geschrieben werden. Für den Fall, daß eine reversible Speicherplatte 20 verwendet wird, sind Überschreiben und erneutes Beschreiben zulässig; allerdings können der Verzeichnisdatenbereich und der Benutzerdatenbereich auf dieselbe Weise wachsen wie im vorliegenden Dokument beschrieben. Das US-Patent 4,575,827 beschreibt ebenfalls das Wachstum von Verzeichnisdatenbereich und Benutzerdatenbereich in entgegengesetzter radialer Richtung.
  • Der Kopf 24 ist in Figur 2 als Diagramm einer doppelt konvexen Linse dargestellt. Die Darstellung ist so zu verstehen, daß der Kopf oder Wandler 24 zum entfernten Ende des sogenannten Stellgliedarms befördert wird, der sich radial zur Speicherplatte 20 bewegt. Diese radiale Bewegung kann geradlinig oder bogenförmig sein. Im allgemeinen wird der Kopf oder Wandler 24 so angebracht, daß eine relative Bewegung bezüglich des Stellgliedarms möglich wird, bei der ein Umlauf oder Spurwechsel in sehr kurzer Zeit erfolgt, wie dies durch den Pfeil 23 dargestellt ist. Das heißt, diese Bewegung wird durch einen sogenannten Feinstellgliedarm ermöglicht (üblicherweise wird ein schwenkbarer Spiegel oder eine bewegliche Objektivlinse als Feinstellgliedarm verwendet), der am Stellgliedarm zur Bewegung der Objektivlinse (nicht dargestellt) des Kopfes 24 befestigt ist, um den Laserstrahl zu führen, wie dem Fachmann auf diesem Gebiet gut bekannt ist.
  • In Figur 3 ist ein Verzeichnis dargestellt, das in Übereinstimmung mit der vorliegenden Erfindung aufgebaut ist.
  • ODDCB 27 (Figur 2) enthält einen selbstbeschreibenden Steuerblock für die optische Platte, ODSDCB 35. ODSDCB 35, selbst in Sektor 1 des äußersten Umlaufs gespeichert, enthält eine Gruppe von Aufzeichnungsmedium- oder Speicherplattendeskriptoren 36, die die Speicherplatte 20 definieren, und einen Ankerbasiszeiger 37, der auf einen radial innen angeordneten Umlauf einer spiralförmigen Spur 22 zeigt, der "Ankerbasen" enthält, die an späterer Stelle beschrieben werden. ODSDCB 35 wird bei der Initialisierung der Speicherplatte auf der Speicherplatte 20 gespeichert, wie an späterer Stelle in bezug auf Figur 5 beschrieben wird. Die Speicherplatte 20 kann neu initialisiert werden, so daß eine Mehrzahl an Datensektoren eine Historie der Mediendeskriptoren enthält. ODSDCB 35 kann außerdem verschiedene Formen annehmen. Kombinationen von Änderungen der Dateninhalte und die verschiedenen Formen werden als "Versionen" bezeichnet. Aus diesem Grund wird in den Mediendeskriptoren 36 die Version des ODSDCB angegeben. Ebenfalls angegeben ist die Version des Steuerprogramms, die die Speicherplatte für den Host-Prozessor 10 (ein Dateisystemtreiber, der einen Bestandteil von DOS 11 bildet) initiiert hat. Teile davon sind in den Figuren 7 bis 9 beschrieben, um ein besseres Verständnis der vorliegenden Erfindung zu liefern. Es wird darauf hingewiesen, daß DOS 11 und sein dazugehoriger Dateisystemtreiber Funktionen ausführen, die in diesem Dokument nicht beschrieben werden und die für ein Verständnis der vorliegenden Erfindung nicht relevant sind. Die Mediumdeskriptoren 36 enthalten außerdem eine Angabe zur Anzahl an Datensektoren in jedem Umlauf der spiralförmigen Spur oder in jeder Spur der Gruppe konzentrischer Spuren. Die Anzahl der Spuren pro Zylinder ist ebenfalls definiert. In einem ersten aufgebauten Ausführungsbeispiel der vorliegenden Erfindung wurde eine sogenannte einseitig beschreibbare Speicherplatte verwendet, so daß auf jedem Zylinder nur eine einzige Spur vorhanden war. Auf einer zweiseitig beschreibbaren Speicherplatte besitzt jeder Zylinder zwei Spuren. (Ein Zylinder ist definiert als alle Spuren mit einem gemeinsamen Radius.) Ebenfalls angegeben in den Mediumdeskriptoren 36 ist die Anzahl der Zylinder pro Volume (ein Volume ist eine Ansammlung von Aufzeichnungsseiten einer oder mehrerer Speicherplatten. Darüber hinaus ist die Anzahl der Datenbytes enthalten, die in jedem Sektor gespeichert werden können, sowie die Gesamtanzahl an Sektoren auf einer Speicherplatte. Die Deskriptoren 36 geben außerdem die Anzahl an Sektoren an, die in einer Mindestzuweisung von Datenspeicherplatz enthalten sein müssen, beispielsweise zwei. Der Medientyp, also Nur-Lesen, einmal beschreibbar oder wiederbeschreibbar, und die Spurenadresse der Ankerbasis für das Verzeichnis sind ebenfalls enthalten. ODSDCB 35 besitzt beschreibende Daten über die Ankerbasis, beispielsweise über die Anzahl der Spuren usw. ODSDCB 35 zeigt auf (hat Adressen gespeichert, in denen die Spurnummern angegeben sind) Diagnosebereiche auf der Speicherplatte. Diese werden zusammen mit einem Volume Label und einem eindeutigen Mediumidentifikatorcode, beispielsweise einer Seriennummer, identifiziert. Wenn alle diese Daten in ODSDCB 35 gespeichert sind, bedeutet das, daß das Verzeichnis teilweise erstellt und auf Speicherplatte 20 aufgezeichnet werden muß, bevor ODSDCB 35 auf die Speicherplatte geschrieben werden kann.
  • Wir kehren nun zu Figur 3 zurück. Der Ankerbasiszeiger 37 zeigt auf (enthält die Adresse des Sektors der Speicherplatte 20, der die Daten speichert, auf die gezeigt wird) die Ankerbasis 40, wie dies durch den Pfeil 38 dargestellt ist. In einem aufgebauten Ausführungsbeispiel der vorliegenden Erfindung wird die Ankerbasis für das Verzeichnis in einem einzigen Umlauf der spiralförmigen Spur 22 aufgezeichnet. Die Einträge in der Ankerbasis 40 (ein Eintrag pro Datensektor), zeigen auf (speichern die Spurenadresse) eine Spur, die 23 Einträge von Verzeichnisankerzeigern enthält, die auf ein Stammverzeichnis zeigen, wie nachfolgend ausführlicher beschrieben wird. Wenn die einzelne Adresse in ODSDCB 35 enthalten ist, identifiziert der Zeiger 37 entsprechend eine einzelne Spur, die die Ankerbasen 40 enthält. Da jede Spur 23 Sektoren besitzt, zeigen die Ankerbasen 40 auf maximal 23 Spuren von Verzeichnisankerzeigern 45, wie dies in der Darstellung durch den Pfeil 41 deutlich wird.
  • Jede Verzeichnisankerzeigerspur 45 besitzt ebenfalls 23 Sektoren; sie speichert einen Ankerzeiger in jedem ihrer Sektoren. In jedem Ankerzeigereintrag enthalten ist ein Identifikator "p" (nicht dargestellt) zur Identifizierung des Eintrags als Verzeichnisankerzeiger. Die Ankerzeiger sind durch Umkehrzeiger einfach miteinander verknüpft. Jeder Ankerzeigereintrag enthält einen Umkehrzeiger auf eine vorherige Verzeichnisankerzeigerspur 45. Die erste aufgezeichnete Verzeichnisankerzeigerspur 45 hat eine Null als Umkehrzeiger. Darüber hinaus besitzt jeder Sektor oder Verzeichnisankerzeigereintrag einen Umkehrzeiger auf den vorherigen Verzeichnisankerzeigereintrag, das heißt, die Adresse des Sektors, der den vorher aufgezeichneten Verzeichnisankerzeigereintrag speichert. Sektor 0 in jeder Spur, die Ankerzeiger speichert, hat Null als Umkehreintragszeiger. Schließlich zeigt eine Adresse in jedem Ankerzeiger auf einen dazugehörigen Stammverzeichnisheader im Bereich 28. Die Adresse ist vorzugsweise eine Spurenadresse. Das Stammverzeichnis, auf das hier verwiesen wird, ist im weitesten Sinne mit dem Stammverzeichnis vergleichbar, auf das im Zusammenhang mit DOS für magnetische "Festplatten" Bezug genommen wird; der interne Aufbau unterscheidet sich jedoch wesentlich. Alle Verzeichnisheaderzeiger in den 23 Ankerzeigerspuren mit 23 Ankerzeigern pro Spur sind in Figur 3 durch den gebogenen Pfeil 46 symbolisch dargestellt.
  • Das Stammverzeichnis und alle seine Unterverzeichnisse (allesamt in Bereich 28) verwenden die Headersegmentanordnung der vorliegenden Erfindung für die Bereitstellung eines kompakten und leicht durchsuchbaren Verzeichnisses. Ein Verzeichnissegment speichert die Einträge, die ein Datenobjekt, eine Datendatei oder ein Unterverzeichnis beschreiben. Andererseits speichert ein Verzeichnisheader 50 Daten, was die Suche nach den dazugehörigen Verzeichnissegmenten 52 vereinfacht, indem die Zuweisung von Speicherplatz für die Verzeichnisstruktur indiziert und angezeigt wird. Vorzugsweise enthält jeder der einzelnen Sektoren der ein Verzeichnissegment bildenden Spur auf der Speicherplatte 20 eine Beschreibung eines einzigen Datenobjekts, einer einzigen Datendatei oder eines einzigen Unterverzeichnisses.
  • Diese Zweiteilung wird auf allen Ebenen des Verzeichnisses verwendet; die Verzeichnissegmente 52, 74 und die Verzeichnisheader 50, 72 besitzen denselben logischen Aufbau im Stammverzeichnis 51 und in allen Unterverzeichnissen 71. In jedem Verzeichnissegment ist bezüglich eines spezifischen Verzeichniseintrags ein maximaler Umfang an Steuerinformationen aufgezeichnet. Zu diesen Steuerinformationen gehören die aktuelle und die vergangene Historie einer Datendatei, die beschrieben wird. Ebenfalls in jedem Verzeichnisheader gespeichert ist ein maximaler Umfang an Steuerinformationen über eine Ansammlung von Verzeichnissegmenten, die nachfolgend unter der Bezeichnung "eine Gruppe von Verzeichnissegmenten" zusammengefaßt werden.
  • Eine unlöschbar aufgezeichnete Umgebung, die auch als einmal beschreibbare Umgebung bezeichnet werden kann, enthält eine Beschränkung, die darin besteht, daß ein aktuelles Verzeichnissegment nicht gleichzeitig während der Erzeugung des Verzeichnissegments aufgezeichnet werden kann, ohne für jedes Verzeichnissegment einen separaten Verzeichnisheader anzulegen. Mit der vorliegenden Erfindung existiert diese Einschränkung nicht länger. Eine solche redundante Aufzeichnung in einem Verzeichnis führt zu einer Leistungsabnahme, und der Zugriff auf Daten über das Verzeichnis wird durch die Einbindung eines Verweises auf die Verzeichnisheaderaufzeichnungsübersicht, das heißt, auf Steuerinformationen für eine Ansammlung vorher erstellter Verzeichnissegmente, alle in einer vorher aufgezeichneten Gruppe von Verzeichnissegmenten, verhindert.
  • Bevor wir auf die näheren Einzelheiten der verschiedenen Verzeichnisaufbauten eingehen, wird zunächst der allgemeine Aufbau des Stammverzeichnisses beschrieben. Das Stammverzeichnis, das im allgemeinen durch die Ziffer 51 angegeben wird, besteht aus einer Mehrzahl von Gruppen von Stammsegmenten 52, von denen jede durch einen dazugehörigen Stammneaderblock 53 im Header 50 zusammengefaßt wird. Darüber hinaus indiziert ein Stammindex 54 in jedem der Header 50 die entsprechenden Gruppen von Stammsegmenten, die vor der Aufzeichnung des Stammheaders 53 aufgezeichnet wurden. In einem ersten Header und Index 53 ist der Index gleich Null, der Stammheaderteil 53 zeigt auf eine erste Stammsegmentgruppe (die auch als Korrespondenzsegmentgruppe bezeichnet wird), ein zweiter Stammheaderteil zeigt entsprechend auf eine zweite Stammsegmentgruppe, und so weiter, wie dies durch den Pfeil 55 angezeigt wird. Der Indexteil 56 des ersten Stammheaders ist gleich Null. Der Stammindexteil 57 des zweiten Stammheaders verweist auf die erste Stammsegmentgruppe 58, wie dies durch die gekrümmte Linie 59 dargestellt wird. In ähnlicher Weise, wie dies durch die gekrümmte Linie 62 dargestellt wird, verweist der Stammindexteil 60 des dritten Headerblocks 50 auf eine zweite Gruppe von Stammsegmenten 61. Die Ziffer 63 zeigt den Verweis auf weitere Stammsegmentgruppen durch Stammheaderblöcke, bei denen es sich nicht um diejenigen Stammheaderblöcke handelt, die die Daten einer entsprechenden Stammsegmentgruppe, auf die gezeigt wird, identifizieren und beschreiben, an. Nähere Einzelheiten zu den Stammheadern, den Stammindizes und den Stammsegmenten werden an späterer Stelle in bezug auf Figur 4 beschrieben.
  • Eine erste Stammverzeichnissegmentgruppe 52 zeigt auf Datendateien, die auf der Speicherplatte 20 gespeichert sind, wie dies durch den Pfeil 65 angezeigt wird. Diese Dateien sind im Bereich 29 auf der Speicherplatte 20 gespeichert und werden alle durch die Ziffer 66 bezeichnet. Sie werden vorzugsweise durch "filename.ext" unter Verwendung der gewöhnlichen DOS- Nomenklatur laut Handbuch der DOS-Version 2.1 identifiziert. Anstatt auf eine Dateiengruppe 66 zu zeigen, können die Einträge einer Stammverzeichnissegmentgruppe auch Unterverzeichnisse identifizieren, wie dies durch den Pfeil 70 angezeigt wird, der in Figur 3 auf ein Unterverzeichnis in einer Gruppe von einer Mehrzahl identisch aufgebauter Unterverzeichnisse zeigt, wie dies durch die Mehrzahl an Klammern 71 dargestellt ist. Jedes Unterverzeichnis 71 ist intern auf dieselbe Weise aufgebaut wie das Stammverzeichnis. Jedes Unterverzeichnis umfaßt eine Mehrzahl an Unterverzeichnis-Subheadern 72, die eine Mehrzahl an Subsegmentgruppen 74 identifizieren und indizieren, wie dies durch den gekrümmten Pfeil 73 dargestellt wird. Die Unterverzeichnis-Segmentgruppen 74 sind genauso wie die Stammsegmentgruppen aufgebaut, wo sich eine Mehrzahl solcher Unterverzeichnis-Segmentgruppen befindet. Der Pfeil 75 zeigt an, daß jede Unterverzeichnis-Segmentgruppe 74 eine Datendatei 66 identifizieren kann, die im Benutzerdatenbereich 29 gespeichert ist. Jede Unterverzeichnis-Segmentgruppe kann Einträge enthalten, die weitere Unterverzeichnisse identifizieren, wie dies durch den Pfeil 76 dargestellt ist. Diese weiteren Unterverzeichnisse können ein Zeigen entweder auf die Datendateien 66 oder auf weitere Unterverzeichnisse ermöglichen, wobei mit der Zeit von einem beliebigen Unterverzeichnis-Segmentgruppeneintrag eine Datendatei 66 identifiziert wird, wie dies durch den abgeschnittenen Pfeil 77 angezeigt wird.
  • In einem aufgebauten Ausführungsbeispiel muß jedesmal, wenn ein Sektor beschrieben wird, dieser Sektor nur einmal beschrieben werden, es hat keine Veränderung des Speicherplatzes gegeben. Als Konsequenz dieser Beschränkung und der Erfordernis, daß beim ersten aufgezeichneten Segmenteintrag ein Header geschrieben wird, ist der Sektor auf der Speicherplatte 20, auf der der Header gespeichert ist, nicht mehr für weitere Aufzeichnungen verfügbar. Deshalb kann ein Index für die Segmenteinträge, die zum Header gehören, zusammen mit diesem Header nicht aufgezeichnet werden. Das Prinzip der vorliegenden Erfindung löst dieses Problem, wie aus der weiteren Beschreibung hervorgehen wird. Dieses Verfahren läßt sich auch bei der magnetooptischen Aufzeichnung verwenden, bei der der gesamte Sektor gelöscht werden muß, bevor Daten aufgezeichnet werden können. Das Prinzip der vorliegenden Erfindung macht es überflüssig, den Sektor erneut zu beschreiben. Auch sind nicht mehr zwei oder mehr Umdrehungen erforderlich, um das Verzeichnis zu überschreiben (eine Umdrehung, um zu löschen, und eine Umdrehung, um erneut zu beschreiben).
  • Eine frühere Anordnung des Verzeichnisses im Bereich 28 der Speicherplatte 20 definierte eine Diagnose- oder Referenzspur als den radial am weitesten innen gelegenen Umlauf der spiralförmigen Spur 22. Die nächsten beiden radial am weitesten außen gelegenen Spuren (die zweite und dritte radial am weitesten innen gelegenen Spuren) enthielten das Stammverzeichnissegment 58. Sobald das Stammverzeichnissegment zugewiesen ist, kann der erste Stammverzeichnistitel einer anderen Spur zugewiesen und geschrieben werden. Diese Stammtitelspur wird zugewiesen und in die vierte radial am weitesten innen gelegene Spur geschrieben. Danach wird ein erster Verzeichnisankerzeiger 45 in eine nächste radial am weitesten außen gelegene oder fünfte Spur geschrieben und die Ankerbasis 40 in der nächsten oder sechsten radial am weitesten außen gelegenen Spur aufgezeichnet. Nach dieser Aufzeichnung können Unterverzeichnisse und zusätzliche Stammsegmentgruppen und Stammtitel zugewiesen und in Spuren mit ansteigenden radialen Positionen auf der Speicherplatte 20 geschrieben werden. Die Ankerbasis und die Ankerzeiger 45 werden entsprechend aktualisiert.
  • Wir betrachten nun Figur 4. Titel- und Segmentstrukturen des Verzeichnisses dieser Anwendung werden nachfolgend beschrieben. Jedes Verzeichnis und Unterverzeichnis besitzt seine eigene Gruppe von Titeln und Segmenten. Jeder Verzeichnistitel zeigt nicht nur auf das aktuelle Verzeichnissegment und adressiert es (es ist das letzte Segment, das adressiert wurde, wie an späterer Stelle noch beschrieben werden wird), sondern es wird darüber hinaus ein Übersichtseintrag oder ein Index für die unmittelbar zuvor aufgezeichnete Verzeichnissegmentgruppe als Bestandteil des Titels aufgezeichnet. Jeder Titel umfaßt einen Zeiger auf den Rest der aktuellen Verzeichnissegmentaufzeichnungen, die gerade verarbeitet werden. Jeder Titel speichert außerdem zusammenfassende Informationen über frühere Verzeichnissegmentaufzeichnungen. In einem früheren Ausführungsbeispiel der vorliegenden Erfindung enthielt jeder Verzeichnistitel Adreßzeiger auf 22 Verzeichnissegmenteinträge. Der erste aufgezeichnete Verzeichnistitel in jedem Verzeichnis oder Unterverzeichnis zeigte auf die erste Verzeichnissegmentgruppe und enthielt keinen Index. Ein zweiter und nachfolgender Verzeichnistitel zeigte auf dazugehörige Verzeichnissegmentgruppen, und jede von ihnen enthielt Übersichtsdaten oder Indizes für die 42 Verzeichnissegmenteinträge (die auf 2 Spuren gespeichert waren; zwei Sektoren werden als Speicherplätze definiert, auf denen Verzeichnisdaten gespeichert werden, wenn einer der Sektoren nicht aufzeichnen kann), die im unmittelbar vorher aufgezeichneten Verzeichnistiteleintrag definiert waren.
  • Jeder der Verzeichnistitel 50,72 enthielt einen Titelteil 53 und einen Indexteil 54. Jeder Titelteil 53 enthielt das Identifikatorfeld H80, das die Datenstruktur als einen Verzeichnistiteleintrag identifizierte. Es wird daran erinnert, daß es nur einen Titel pro Sektor der optischen Speicherplatte 20 gibt. Der Umkehrzeiger 81 ist der Adreßzeiger auf den vorherigen Titel in der Liste umgekehrter einfacher Verknüpfungen. Jeder Umkehrzeiger 81 umfaßt eine Spur- und eine Sektoradresse, außer im ersten Titeleintrag in einem Verzeichnistitel, wo der Umkehrzeiger 81 gleich Null ist. In einem aufgebauten Ausführungsbeispiel wird für jeden Titel nur eine Spur verwendet, und es gibt dabei keine Beschränkung. Es wird eine Spuradresse benötigt, um die Anwendung der vorliegenden Erfindung zu erweitern, so daß auch Verzeichnistitel mit mehreren Spuren berücksichtigt werden können.
  • Der aktuelle Segmentzeiger 82 enthielt die Spuradresse der Verzeichnissegmentgruppen 58, 74, die durch den aktuellen Verzeichnistitel identifiziert sind. Es wird nur die Spuradresse bereitgestellt. Der vorherige Segmentzeiger 83 identifizierte die mit der höchsten Nummer versehene Spur, die zum unmittelbar zuvor aufgezeichneten Verzeichnistitel gehört und durch diesen identifiziert wird, um die Spuradresse der Segmente in der dazugehörigen Segmentgruppe anzuzeigen. Dieser Eintrag 83 machte es überflüssig, den aktuellen Segmentzeiger 82 des unmittelbar vorherigen Verzeichnistitels zu lesen, um den Spuradreßzeiger für die Segmentgruppe, auf die der aktuelle Verzeichnistitel verweist, zu finden. Nach dem Titelteil 53 identifizierte der Indexeintragteil 54 alle Segmente in der Segmentgruppe 52, die zum unmittelbar zuvor aufgezeichneten Verzeichnistitel gehören und auf die der vorherige Segmentzeiger 83 zeigte. Bis zu 42 Indexeinträge (einer für jedes Verzeichnissegment in der unmittelbar vorherigen Segmentgruppe) wurden in jedem Indexeintragteil 54 aufgezeichnet. (Jeder Eintrag hat vorzugsweise eine fest definierte Länge.) Jeder Indexeintrag enthielt ein Unterverzeichnis oder einen Dateiidentifikator 86. Der Name des Unterverzeichnisses oder der Datei ist im Eintragsfeld links ausgerichtet, und der nicht verwendete Teil ist mit binären Nullen oder anderen Null-anzeigenden Mustern gefüllt.
  • Das Indexfeld 87 enthielt den Namen "filename.ext", der ein Name mit Erweiterung aus mehreren Bytes ist und im Feld 87 links ausgerichtet ist. Der nicht verwendete Teil des Feldes 87 ist mit Null-anzeigenden Mustern gefüllt. Die Felder 86 und 87 stellen den Indexschlüssel 85 dar, der ein schnelles Auslesen der Verzeichnistitel 50 ermöglicht, um anzugeben, ob die Datensuche in den Verzeichnissegmenten 58, 74, die zum entsprechenden unmittelbar zuvor aufgezeichneten Verzeichnistitel gehören, erfolgreich war. Schließlich enthielt jeder Indexeintrag 54 eine Dateisektoranzahl 88, die der "relative Sektorzeiger" für die Datei ist. Der relative Sektorzeiger gibt die Anzahl der Sektoren an, die vom ersten Sektor in der Segmentgruppe, auf die verwiesen wird, entfernt sind, das heißt, der relative Sektor speichert einen Segmenteintrag, der durch die Felder 86 und 87 des Schlüssels 85 identifiziert ist.
  • Jedes Verzeichnissegment 52, 74 bestand aus einer Beschreibung einer bestimmten Datei oder eines bestimmten Unterverzeichnisses. Die Datei wird von einer Dateideskriptoraufzeichnung 100 (Figur 4) beschrieben, die aus dem Dateinamen (102), aus Attributen, einem Zeitstempel, einem Datumsstempel und einer Dateigrößenangabe besteht, was an späterer Stelle ausführlicher beschrieben werden wird. Es wird nur wenig Speicherplatz verbraucht, wenn man jede Dateigröße mit einer relativen Sektoranzahl 88, gefolgt von einer Zählung der Anzahl an zusammenhängenden Sektoren, gefolgt von der Anzahl der relativen Sektoren, die durch die Datei belegt sind, definiert. Jeder Dateiumfang (eine Beschreibung hierzu folgt an späterer Stelle) verwendet seine eigene relative Sektoranzahl. Der Dateideskriptorteil eines Verzeichnissegments beschrieb die Datei oder ein Unterverzeichnis. Dieser Deskriptor war in drei Teile unterteilt: 1) eine allgemeine Titelaufzeichnung für jeden Sektor eines Verzeichniseintrags; 2) ein gemeinsamer Dateititel, der die Steuerinformationen beschrieb, die allen Versionen der beschriebenen Datei gemeinsam sind; und 3) ein Dateiversionstitel, der lediglich eine Version der Datei beschrieb. Im Verzeichnissegment wurden die allgemeinen gemeinsamen Datei- und Dateiversionstitel zusammenhängend auf die Speicherplatte 20 geschrieben. Das zuletzt erstellte (aktuelle) Verzeichnissegment identifizierte alle Versionen einer beschriebenen Datendatei. Diese Beschreibung bedeutet, daß das zuvor aufgezeichnete Verzeichnissegment gelöscht wird. Da jedes Verzeichnissegment die Historie einer Datei enthält, wird die Suchdauer für eine gegebene Dateiversion reduziert.
  • Darüber hinaus war es erwünscht, in einem Sektor genau ein Verzeichnissegment zu speichern; wenn jedoch eine Datei aktiv und das Segment dabei größer wird, dann könnte das Segment in danebenliegende Speicherplattensektoren "überlaufen". Um größere logische Verzeichnissegmente (die mehr als einen Sektor belegen) zu ermöglichen, gibt es einen allgemeinen Titel in jedem der Sektoren, in denen ein Verzeichnissegment gespeichert ist.
  • Wir betrachten erneut Figur 4. Der allgemeine Verzeichnistitel 90 enthält ein anfängliches Identifikatorfeld 91, das das alphabetische Zeichen "5" enthält. Das Typenfeld 92 gibt den im mit dem allgemeinen Titel 90 versehenen Sektor aufgezeichneten Informationstyp an. Wenn beispielsweise das logische Verzeichnissegment in einem einzigen Sektor gespeichert werden kann, dann identifizierte ein erster Anzeiger den Sektor als einen einzigen Verzeichnissegmentblock. Wenn aber mehr als ein Sektor nötig war, um ein Verzeichnissegment zu speichern, dann hatte der erste Sektor einen ersten Identifikator zur Anzeige, daß er der erste Sektor einer Mehrzahl von Sektoren ist, der das Verzeichnissegment speichert. Alle dazwischenliegenden Sektoren hatten einen dritten Anzeiger im Typenfeld 92, der anzeigte, daß der Sektor ein mittlerer Sektor aus einer Mehrzahl an Sektoren ist, der ein einziges Verzeichnissegment speicherte. Der letzte Sektor für das Segment wurde von einem vierten Anzeiger im Typenfeld 92 identifiziert, um anzuzeigen, daß er der letzte Sektor einer Mehrzahl von Sektoren ist, der Informationen in einem einzigen Verzeichnissegment speicherte. Das Feld 93 enthielt eine Spur- und Sektoradresse des nächsten Sektors, der die Verzeichnissegmentdaten speicherte. Normalerweise gab diese Adresse den nächsten auf einer gegebenen Spur auf der Speicherplatte 20 einzulesenden Sektor an. Da einige Sektoren aufgrund von Medienfehlern gelöscht werden können, zeigte die Spur- und Sektoradresse in Feld 93 stets auf den nächsten intakten Sektor, der Verzeichnissegmentdaten speicherte. Das Feld 94 identifizierte die Umlauf- oder Byteposition innerhalb eines Sektors, die das letzte Byte speicherte, das in einem Sektor aufgezeichnet war. Diese letzte Byte-Anzeige ist ein konstanter Umrechnungsfaktor für eine relative Anzahl, die die Anzahl von Bytes angibt, die in einem gegebenen Sektor gespeichert werden können. Er wird zur Integritätszwecken sowie zur Längenangabe mit einbezogen. Das Feld 95 speicherte die Anzahl der Dateiversionstitel, die innerhalb eines gegebenen Sektors auf der Speicherplatte 20 gespeichert waren. Der Versionstitel 110 wird an späterer Stelle beschrieben.
  • Der gemeinsame Dateititel 100 erschien nur im ersten Sektor, der mit der Speicherung jedes Verzeichnissegments begann. Der gemeinsame Dateititel 100 wurde im ersten Sektor aufgezeichnet, der ein Verzeichnissegment speicherte, das direkt neben dem allgemeinen Titel 90 lag. Der allgemeine Titel 90 hatte eine feste Länge, und deshalb gab die Umlaufposition der aufgezeichneten Informationen im ersten Sektor an, daß der gemeinsame Dateititel 100 mit einer Dateibeschreibung beginnt. Das Feld 102 enthielt den Dateinamen der Datei, die im Verzeichnissegment beschrieben wurde. Ein Dateiname kann eine Dateinamenerweiterung besitzen (mehrere Bytes), was in Feld 103 wahrgenommen wurde. Das Feld 104 speicherte die Versionsnummer der aktiven Dateiversion. Wenn das Feld 104 auf Null eingestellt war, dann gab es keine aktive Version dieser Datei. Ob es eine aktive Version gab, wurde vom Benutzer festgelegt, der den Host-Prozessor 10 programmierte. Das Feld 105 enthielt eine Zählung, die die Anzahl der Versionen in dieser Datei angab. Die Programmierung des Host-Prozessors ermöglichte eine willkürliche Definition oder Bestimmung des Zeitpunkts, wann eine neue Version erstellt wurde. In vielen Fällen folgen die Versionen chronologisch aufeinander, beispielsweise wöchentlich, wie dies bei zahlreichen Versionen einer Lohnbuchhaltungsdatei der Fall ist. Der gemeinsame Dateititel 100 besitzt ebenfalls eine feste Länge und taucht nur im ersten Sektor auf, wo er ein Verzeichnissegment 58 oder 74 speichert. Am Ende des gemeinsamen Titels 100 beginnt eine Reihe von Dateiversionsbeschreibungen 110. Für jede Dateiversion, die auf der Speicherplatte 20 aufgezeichnet ist, gibt es eine Dateiversionsbeschreibung. Jede Dateiversionsbeschreibung 110 besaß außerdem eine feste Länge, so daß die Rotationsposition auf der Speicherplatte 20 oder die Byte-Position in einem Sektor den Anfang jeder Dateiversionsbeschreibung 110 anzeigte. Die Dateiversionsbeschreibung 110 enthielt ein Feld 111, in dem die beschriebene Versionsnummer enthalten war. Das Feld 111 enthielt zwei Bytes zur Angabe von bis zu 65,535 (64K) Versionen einer Datei. Zur Anzeige einer größeren Anzahl an Versionen kann das Feld 111 erweitert werden; für jede Version eines Verzeichnisses muß jedoch die Feldlänge konstant sein, um die Felder nach Umlauf- oder Byte-Positionen lokalisieren zu können. Wenn eine solche Erweiterung gewünscht wird, müssen alle Dateiversionsbeschreibungen 110 ebenfalls erweitert werden. Das Feld 112 enthielt eine Gruppe von Attribut-Flags, die die Attribute der gegebenen Dateiversion definierten. Solche Attribute zeigen an, daß es sich beispielsweise um eine Nur-Lese-Version handelt, wenn sie eine verborgene Datei ist, wie sie in DOS 2.1 supra verwendet wird, ist sie eine Systemdatei, ein Volume-Label, ein Unterverzeichnis, eine Archivdatei oder ähnliches. Das Feld 113 enthielt das Datum und die Uhrzeit (Zeitstempel) der Erstellung der Version. Die Angabe von Datum und Uhrzeit stehen in Übereinstimmung mit dem Format für Datum und Uhrzeit in DOS 2.1. Das Größenfeld 114 gab die Anzahl an Bytes an, die in der beschriebenen Dateiversion enthalten waren. Vorzugsweise werden bei der Größenangabe die am wenigsten bedeutungstragenden Stellen zuerst gelesen. Das Feld 115 gab die Anzahl an Bytes an, die in der im letzten Sektor, in dem Bytes von der Dateiversion gespeichert sind, gespeicherten Dateiversion enthalten waren. In anderen Worten, fünf Sektoren können die Datei speichern. Der fünfte Sektor ist möglicherweise nicht vollständig gefüllt. Die Anzahl an Bytes in diesem letzten Sektor wurde in Feld 115 angegeben. Das Umfangzählungsfeld 116 gab die Anzahl an Umfängen in dieser gegebenen Dateiversion an. Ein Dateiumfang ist derjenige Teil einer Datei, der in zusammenhängenden Sektoren der Speicherplatte 20 gespeichert ist. Die Umfangdefinitionen (die an späterer Stelle beschrieben werden) waren in Feld 117 enthalten. Die Gesamtlänge der Dateiversionsbeschreibung 110 wurde bestimmt durch die feste Länge der Felder 111-116 plus der Anzahl an Umfangdefinitionen 117 mit fester Länge. Auf diese Weise gab die Rotations- oder Byteposition der Speicherplatte 20 den Anfang jeder Dateiversionsbeschreibung 110 an, die in einem Verzeichnissegment 58 enthalten war. Die Umfangdefinition ist ein Feld mit fester Länge, das die relative Sektoranzahl in einer Datei des Umfangs angab, das heißt, wo der Umfang beginnt und die Anzahl an zusammenhängenden Sektoren, die den Umfang bilden.
  • Der Begriff "Umfang" wird an späterer Stelle ausführlich in bezug auf Figur 6 beschrieben, wo der Dateiumfangsabbildungssteuerblock dargestellt ist. Kurz gesagt können von einer Datei zu verschiedenen Zeiten unterschiedliche Aufzeichnungen auf der Speicherplatte 20 gespeichert sein. Jede Gruppe zusammenhängender Aufzeichnungen, die gespeichert sind, stellen einen Dateiumfang dar; wenn beispielsweise die Aufzeichnungen 5 bis 26 zuerst aufgezeichnet wurden, dann stellen diese Aufzeichnungen einen einzigen Umfang dar. Da die Aufzeichnungen 1 bis 4 nach den Aufzeichnungen 5 bis 26 aufgezeichnet wurden, können sie einen zweiten Umfang darstellen. Da die Speicherplatte 20 unlöschbar beschrieben ist und die Benutzerdaten zusammenhängend mit abnehmenden radialen Positionen aufgezeichnet sind, bilden, unabhängig von der logischen Beziehung der Daten, die Umfangsdefinition und die Umfangverwaltung einen wichtigen Bestandteil dieser Verzeichnisstruktur.
  • Bevor irgendwelche Aufzeichnungsoperationen erfolgen können, muß die Speicherplatte initialisiert werden, um ein Stammverzeichnis und die verschiedenen Ankerbasen und Anker einzurichten, wie dies aus der Darstellung in Figur 3 hervorgeht. Diese Initialisierung wird beschrieben, indem auf die Figuren 3 und 5 verwiesen wird. Es wird von der Annahme ausgegangen, daß die Speicherplatte 20 in geeigneter Weise mit einem Aufzeichnungsgerät verbunden wurde, und daß der Host- Prozessor 10 die Speicherplatte 20 als mit einem der Festplattenlaufwerke 17 verbunden erkannt hat. Der Host- Prozessor 10 macht von DOS 11 aus einen Subfunktionsaufruf und aktiviert damit ein Programm, das innerhalb des Host-Prozessors 10 gespeichert ist, um die Rechneroperationen auszuführen, die in Figur 5 dargestellt sind. Dieser Programmaufruf ist an Position 120 durch das Akronym INITOD angegeben. Die Ziffer 121 zeigt die Parameterdaten an, die zur Initialisierung der Speicherplatte 20 erforderlich sind. Dazu gehören die Identifikation des Laufwerks 17 oder die Adresse, die OD1 oder OD2 sein kann, die Systemoptionen (SYSOPT), die außerhalb des Anwendungsbereichs der vorliegenden Erfindung liegen, und ein Speicherplatten-Label, das dem Protokoll von DOS 2.1 folgt. Zusätzlich zur Erstellung eines Verzeichnisses auf der speicherplatte 20 gemäß Darstellung in Figur 3 werden Diagnosebereiche erstellt. Das DOS-Boot 25 des Datensektors in der radial am weitesten außen liegenden Spur wird zu diesem Zeitpunkt nicht geschrieben. Nachdem der Host-Prozessor 10 das Programm INITOD aufgerufen hat, setzt er an Schritt 122 den Rückkehrcode R auf Null zurück. Danach liest er an Schritt 123 die Spur 1 in Sektor 1 (T1S1), um festzustellen, ob ODSDCB 35 aufgezeichnet wurde; das heißt, um festzustellen, ob die Speicherplatte 20 bereits initialisiert wurde. An Schritt 124 untersucht der Host-Prozessor 10 die Ergebnisse des Lesezugriffs, der in Schritt 123 ausgeführt wurde. Wenn dieser Sektor nicht gleich Null ist, dann wird der Rückkehrcode an Schritt 125 auf eins gesetzt, und die Steuerung des Host- Prozessors 10 wird am Rückkehrpunkt 126 an das aufrufende Programm zurückgegeben. Wenn T1S1 an Schritt 124 gleich Null ist, dann erstellt der Host-Prozessor 10 einen Steuerblock mit der Bezeichnung ODDCB (optical disk device control block) 128, der an späterer Stelle in bezug auf Figur 6 ausführlich beschrieben wird. Die Informationsgehalte von ODDCB 128 werden zum größten Teil auf ODSDCB 35 aufgezeichnet, wie noch ersichtlich werden wird. ODDCB 128 ist resident im Host- Prozessor 10 in seinem Hauptspeicher (nicht dargestellt) gespeichert. Eine Einrichtung eines Diagnosetests der optischen Speicherplatte 20 beginnt an Schritt 130, bei dem ein Testmuster (nicht dargestellt), das für den Test von optischen Speicherplatten auf verschiedene Funktionsparameter geeignet ist, in den Hauptspeicher des Host-Prozessors 10 in einen sogenannten Formatbereich (nicht dargestellt) eingebracht wird. An Schritt 131 formatiert der Host-Prozessor 10 den Testbereich auf der Speicherplatte 20 und weist ihn zu. In einem früheren Ausführungsbeispiel der vorliegenden Erfindung wurde ein solches Diagnosetestmuster auf der radial am weitesten innen liegenden Spur der optischen Speicherplatte 20 aufgezeichnet, also im Verzeichnisbereich 28 radial nach innen (Figur 2). In Schritt 131 enthalten ist eine Aufzeichnung eines Testmusters auf diese radial am weitesten innen liegenden Spur. An Schritt 132 untersucht der Host-Prozessor 10 den Rückkehrcode dieser Aufzeichnungsoperation. Ist der Rückkehrcode nicht gleich Null, was der Fall ist, wenn eine Fehlerbedingung eingetreten ist, dann kann die Initialisierung nicht fortfahren. Entsprechend setzt der der Host-Prozessor 10 an Schritt 133 seinen Rückkehrcode R auf eins zurück und kehrt zur Funktion des Aufrufs von DOS 11 zurück. Es wird darauf hingewiesen, daß der Rückkehrcode R in Schritt 132 auf den Aufzeichnungsvorgang bezogen und nicht mit dem Rückkehrcode R in Schritt 133 identisch ist. Wenn wir von der Annahme ausgehen, daß das Diagnose-Testmuster erfolgreich auf der radial am weitesten innen liegenden Spur der Speicherplatte 20 aufgezeichnet wurde, dann identifiziert der Host-Prozessor 10 an Schritt 134, auf welcher Spur innerhalb von ODDCB 128 das Diagnose-Testmuster aufgezeichnet wurde (im Hauptspeicher des Host-Prozessors 10). An Schritt 135 wird der Formatbereich auf Null zurückgesetzt, um das Testmuster zu löschen.
  • Ab dem Schritt 135 fährt der Host-Prozessor 10 mit der Erstellung eines Stammverzeichnisses fort. An Schritt 140 wird zuerst ein Stammverzeichnissegment erstellt. Das Stammverzeichnissegment enthält eine zweispurige Zuweisung direkt radial neben der Diagnosespur, die in Schritt 134 aufgezeichnet wurde. Es wird darauf hingewiesen, daß die Zuweisung des Verzeichnisses von unten nach oben erfolgt, das heißt, Verzeichnissegment durch Stammanker. Der Grund für diese Vorgehensweise besteht darin, daß die Verzeichniselemente höherer Ordnung Zeiger auf die niedrigeren Verzeichniselemente enthalten. Da auf der Speicherplatte 20 Mängel vorhanden sein können, ist nicht bekannt, wo die niedrigeren Verzeichniselemente aufgezeichnet werden; aus diesem Grund werden die höheren Verzeichniselemente zum Schluß aufgezeichnet. Bis zu diesem Zeitpunkt wurden keine Verzeichnisdaten auf der Speicherplatte 20 aufgezeichnet. Der Host-Prozessor 10 greift nun auf die beiden radial neben der zuvor aufgezeichneten Diagnosespur liegenden Spuren zu, um zu prüfen, ob diese Spuren zugewiesen werden können. Wenn diese Spuren zugewiesen werden können, wird diese Tatsache im Hauptspeicher vermerkt, und die Spurenzeiger werden zu einem späteren Zeitpunkt auf der Speicherplatte 20 aufgezeichnet, wie aus der folgenden Beschreibung hervorgeht. Als nächstes wird an Schritt 141 ein Stammverzeichnistitel 50 in den Formatbereich des Hauptspeichers integriert, der die Adreßzeiger auf das soeben zugewiesene Stammverzeichnissegment 58 enthält. Diese Zuweisung wird erreicht, indem der aktuelle Segmentzeiger 82 des Stammtitelteils 53 (Figur 4) in den Hauptspeicher geschrieben wird. Der Umkehrzeiger 81 und der vorherige Segmentzeiger sind Null, da es der erste Verzeichnistitel ist, der erstellt wird. Eine der Spuren der Speicherplatte 20, die mit den soeben zugewiesenen beiden Spuren zusammenhängt, wird dem Verzeichnistitel 53 zugewiesen, damit die ersten Verzeichnissegmente im Stammverzeichnis verwendet werden können.
  • Inzwischen wurden dem Verzeichnis drei Spuren zugewiesen - zwei dem ersten Verzeichnissegment und eine dem ersten Verzeichnistitel. Bisher wurde auf der Speicherplatte 20 nichts aufgezeichnet, was zu einem Verzeichnis gehört. Danach greift in Schritt 142 der Host-Prozessor 10 auf ODDCB 128 zu (im Hauptspeicher des Host-Prozessors 10), um die Titeladresse auf die soeben in Schritt 141 zugewiesene Spurenadresse einzurichten. Nach der Einrichtung von ODDCB 128, um den soeben zugewiesenen Verzeichnistitel und das soeben zugewiesene Verzeichnissegment adressierbar zu machen, erstellt der Host- Prozessor 10 an Schritt 143 einen Verzeichnisankerzeiger, der die Spurenadresse für den soeben zugewiesenen Stammverzeichnistitel enthält. Dieser Programmerstellungsprozeß umfaßt die Einbeziehung der Titelspurenadresse in den Ankerzeiger im Hauptspeicher, was darin besteht, daß ein Identifikationsfeld auf P und ein Rückzeiger auf Null (dies ist der erste Ankerzeiger, der erstellt wird) und die Spurenadresse des Stammverzeichnistitels eingestellt wird. Außerdem wird die nächste verfügbare radial am weitesten außen liegende Spur dem Ankerzeiger zugewiesen. Noch immer wurde auf der Speicherplatte 20 nichts aufgezeichnet.
  • Der Host-Prozessor 10 greift an Schritt 144 (im Hauptspeicher des Host-Prozessors 10) auf ODDCB 128 zu und speichert die soeben zugewiesene Spurenadresse im später beschriebenen Feld des Gerätesteuerblocks 128. Als nächstes erstellt an Schritt 145 der Host-Prozessor 10 die Ankerbasis 40 im Hauptspeicher und weist die nächste verfügbare radial weiter außen liegende Spur der Speicherplatte 20 der Ankerbasis zu. Der erste Ankerbasiseintrag enthält ein Identifikationsfeld A, einen Rückzeiger auf das vorherige Ankerbasiselement, das auf Null gesetzt wird, da es sich um das erste Ankerbasiselement handelt, und die Spurenadresse des Verzeichnisankerzeigers (der soeben in Schritt 143 zugewiesen wurde). Sobald diese Felder auf die Ankerbasis 40 eingerichtet sind, greift der Host- Prozessor 10 an Schritt 146 auf ODDCB 128 zu und speichert die Spurenadresse für die Ankerbasis 40 in diesem Steuerblock in den Hauptspeicher. Alle Spurenadressendaten für den Zugriff auf die soeben zugewiesene Verzeichnistitelspur, die beiden Segmentspuren, die Ankerzeigerspur und die Ankerbasisspur sind nun für den Host-Prozessor 10 verfügbar, so daß ODSDCB 35 schließlich auf Spur 1, Sektor 1 der Speicherplatte 20 aufgezeichnet werden kann. Entsprechend erstellt der Host- Prozessor 10 an Schritt 147 ODSDCB 35 im Hauptspeicher und zeichnet es im Format auf, das in Figur 6, Spur 1, Sektor 1 der Speicherplatte 20 dargestellt ist. Vor der Aufzeichnung von ODSDCB 35 kann die Speicherplatte 20 entweder überhaupt keine Signale oder aber Diagnosesignale enthalten, die in einem reservierten Bereich (nicht dargestellt) gespeichert sind. Nach der Aufzeichnung von ODSDCB 35 werden zusätzliche routinemäßige Rechenoperationen durchgeführt, was durch die Ziffer 148 angezeigt wird. Danach wird die Verwaltung und die Steuerung des Host-Prozessors 10 an DOS 11 zurückgegeben, und zwar der Funktion, die die INITOD-Gruppe der Rechenoperationen aufgerufen hat.
  • Figur 6 veranschaulicht den Steuerblock FEMCB 155 zur Identifizierung von Dateiumfängen sowie den Gerätesteuerblock ODDCB 128. FEMCB 155 ist nur im Hauptspeicher des Host- Prozessors 10 gespeichert, die Umfangdefinitionen 117 des Dateiversionsbeschreibungstitels 110 (Figur 4) werden von FEMCB 155 abgeleitet. Für jede Datendatei, die in Host-Prozessor 10 für Datenverarbeitungsfunktionen geöffnet wird, gibt es ein FEMCB 155, und zwar entweder als eine Eingabe- oder eine Ausgabedatei. Mehrere Felder von FEMCB 155 werden veranschaulicht, die zum besseren Verständnis der vorliegenden Erfindung beitragen sollen. Das Feld FEMID 156 identifiziert diesen Teil des Hauptspeichers als FEMCB. Die Adressierbarkeit von FEMCB 155 wird unter Verwendung bekannter DOS-Verfahren auf einer höheren DOS-Funktionsebene hergestellt, und wird daher in keinem Ausführungsbeispiel der vorliegenden Erfindung explizit beschrieben. Das Feld 157 U gibt an, ob die Datei im geöffneten Zustand aktualisiert wurde. Eine binäre eins gibt eine Dateiaktualisierung an. Eine solche Anzeige wird verwendet, wenn die geöffnete Datei geschlossen wird, um anzuzeigen, ob die verarbeitete Datei in Host-Prozessor 10 auf die Speicherplatte 20 gespeichert werden soll. Das Feld DIR ADDR 158 speichert die Spur und Sektoradresse für das Verzeichnissegment 58, das die als geöffnet identifizierte Datei identifiziert. Das Feld 159 enthält die Attribut-Flags für die geöffnete Datei sowie für die Dateiversion entsprechend Feld 112 in der Darstellung des Verzeichnissegments 58 in Figur 4. Das Feld DR 160 enthält die Laufwerksadresse OD1 oder OD2, an der sich die optische Speicherplatte 20 befindet. Das Feld 161 speichert den Dateinamen der geöffneten Datei, die, um der Kürze willen, die Dateinamenerweiterung entsprechend den Feldern 102, 103 des gemeinsamen Dateititels 100 (Figur 4) umfaßt. Das Feld VER 162 speichert die Dateinummernversion (VER) der geöffneten Datei. Diese Nummer entspricht der Versionsnummer in Feld 111 der Dateinamenversion, die derzeit von Host-Prozessor 10 verarbeitet wird. Das Feld Öffnungen 165 zeigt die Anzahl an Programmen in Host-Prozessor 10 an, die diese Datei geöffnet haben. Jedesmal, wenn die Datei geöffnet wird, wird das Feld Öffnungen 165 um eins inkrementiert. Entsprechend wird, wenn eines der Programme die Datei schließt, die Anzahl an Öffnungen um eins reduziert. Das Feld VCNT 166 speichert die Versionszählung (VCNT) für die Version der im Verzeichnis 28 identifizierten geöffneten Datei mit der höchsten Nummer. Die gerade verarbeitete Dateiversion muß nicht die Version mit der höchsten Nummer sein. Das Feld RELS 167 identifiziert den hohen relativen Sektor (RELS) für die geöffnete Datei, die natürlich den Umfang mit den zuletzt getätigten Aufzeichnungen aller Umfänge der Datei identifiziert. Das Feld MAPADDR 168 zeigt auf die Adresse im Hauptspeicher des Host-Prozessors 10, an der die Umfangabbildung (MAPADDR) für die jeweilige Dateiversion beginnt. Jede Umfangabbildung besteht aus den Feldern 116 und 117 der Dateiversionsbeschreibung 110. Jede Datei besitzt eine Dateiversionsbeschreibung für jede ihrer Dateiversionen. Die Byte-Adresse MAPADDR der Umfangabbildung gibt die Anzahl von Bytes an, die die Umfangabbildung von den Feldern 91 entfernt ist. Es wird darauf hingewiesen, daß ein Verzeichnissegment 58 sich über eine Mehrzahl an Sektoren auf der Speicherplatte 20 erstrecken kann, und daher kann die relative Byte-Position im Feld MAPADDR 168 größer sein als die Anzahl an Bytes, die in einem Sektor gespeichert sind. Die physikalische Position des Anfangs des Umfangzählerfeldes 116 auf der Speicherplatte 20 innerhalb eines Verzeiöhnissegments 50 in einer bestimmten Dateiversionsbeschreibung 110 ist der Versatz, der die relative Zahl in Feld 167 geteilt durch die Anzahl an Bytes in einem Sektor ergibt. Der Rest zeigt den Byte-Versatz innerhalb des Sektors, in dem die Dateiversionsbeschreibung 110 gespeichert ist, an, und der Quotient zeigt die Entfernung von Feld 91 als eine Anzahl relativer Sektoren des Eintrags des Verzeichnissegments 58, minus 1, an. Das Feld NBR 169 zeigt die Anzahl (NBR) der Umfangdefinitionen an; dies ist dieselbe Anzahl, die auch im Umfangzählerfeld 116 auf der Speicherplatte 20 gespeichert ist. Das Feld EXT 170 enthält die Daten, die im Umfangdefinitionsfeld 117 gespeichert sind. Die Ziffer 171 zeigt eine Elipse an, was bedeutet, daß FEMCB 155 weitere Informationen für DOS enthält, die jedoch nicht für ein Verständnis der vorliegenden Erfindung relevant sind. Solche weitere Informationen können die Dateigröße, das Datum und die Uhrzeit, frühere Daten, Unterverzeichnis-Informationen usw. sein.
  • Zum besseren Verständnis der Umfänge und ihres jeweiligen Zusammenhangs bezüglich der Verzeichnisstruktur folgt dazu nun ein Beispiel. Wir gehen von der Annahme aus, daß die Aufzeichnungsgröße in "filename" gleich 256 Bytes ist. Die Datei wird erstellt, indem zuerst die Aufzeichnungen mit den Nummern 1 bis 9 und 16 bis 20 aufgezeichnet werden. Siehe nachfolgende Tabelle A. Version 1 der Umfangsabbildung, also die Felder 116 und 117, stellen die Umfangszählung 116 auf drei ein. Die erste Umfangsdefinition 117 ist für die Aufzeichnungen 1 bis 9, wobei die Anzahl der belegten Sektoren die Sektorgröße geteilt durch 256 ist, aufgerundet auf die nächsthöhere Zahl. Wenn die Aufzeichnung 9 nicht am Ende eines Sektors endet, dann wird der Rest dieses Sektors insgesamt auf Null gesetzt. Der zweite Umfang ist ein leerer Umfang. Er ist in einem zweiten Umfang der Umfangsdefinition 117 definiert und sucht die Anzahl an Sektoren, die gleich der Sektorgröße geteilt durch 256 (mal 5), aufgerundet auf die nächsthöhere Ganzzahl, sind. Diese Zahl repräsentiert die Aufzeichnungen mit der Numerierung 10 bis 14, die noch nicht erstellt oder zumindest noch nicht aufgezeichnet wurden. Die dritte Umfangsdefinition 117 sucht die Anzahl an Sektoren, die auf 256 mal 5, geteilt durch die Sektorgröße, aufgerundet auf die nächsthöhere Ganzzahl, eingestellt sind. Der relative Sektoreintrag wird nur für den ersten und den dritten belegten Umfang eingegeben. Diese relativen Sektorzahlen werden unabhängig davon berechnet, ob der zweite oder dazwischenliegende Umfang überhaupt gespeicherte Informationen repräsentiert. Wenn beispielsweise der erste und der zweite Umfang zu den im Dateinamen identifizierten Informationen drei Sektoren benötigen, dann ist die relative Sektorzahl für den dritten Umfang gleich 4. Die relative Sektorzahl für den dazwischenliegenden Umfang wird auf Null eingestellt, weil er keine informationsspeichernden Aufzeichnungen besitzt. Null kann in diesem Fall aus lauter Einsen bestehen. Die relative Sektorzahl für den ersten Umfang ist gleich Null. Je nach Adreßprinzip können weitere relative Zahlen zu den oben berechneten Zahlen hinzuaddiert werden. Es folgt die Erstellung von Dateinamenversionen und deren Aufzeichnung auf die Speicherplatte 20, was dazu führt, daß drei Dateiversionstitel 110 erstellt werden, die nach dem gemeinsamen Dateititel 100, der sofort nach dem allgemeinen Titel 90 aufgezeichnet wird, zusammenhängend aufgezeichnet werden. Danach wird der Dateiname aktualisiert. Wir gehen von der Annahme aus, daß die Aufzeichnungen 13 und 14 aufgezeichnet und die Aufzeichnungen 3 und 19 aktualisiert werden. Als Folge dieser Aktualisierung werden sieben Dateiversionstitel 110 erstellt, wie dies in der nachfolgenden Tabelle A dargestellt ist: TABELLE A STATUS NACH DER AKTUALISIERUNG EINER DATEI (1) URSPRÜNGLICHE DATEIVERSIONSBESCHREIBUNG-AUSGEWÄHLTE FELDER TABELLE A (FORTSETZUNG) (2) AKTUALISIERTE DATEIVERSIONSBESCHREIBUNG - AUSGEWÄHLTE FELDER
  • In der obigen Tabelle bezeichnet # die Nummer, FFFFFF alle Einsen (logisch, keine Daten sind aufgezeichnet, also bedeuten alle Einsen (1s) Null), XXX bedeutet willkürliche relative Adreßnummern, und die Zählung der Sektoren erfolgt hexadezimal; A-F bezeichnet die Äquivalente der Dezimalzahlen 10-15. Im Verzeichnistitel wird jede aktualisierte Dateiversionsbeschreibung 110 im Verzeichnissegment unmittelbar nach dem gemeinsamen Dateititel 100 und der ursprüngliche Dateibeschreibungstitel 110 nach der aktualisierten Dateiversionsbeschreibung aufgezeichnet, so daß die jüngste Dateiversionsbeschreibung 110 bei Einlesen eines Verzeichnissegments die erste ist (Speicherprinzip LIFO - Last In First Out).
  • Die Tabelle A ist für einen Dateinamen mit einer Aufzeichnungsgröße von 256 Bytes und einer Sektorgröße von 512 Bytes aufgebaut, so daß im Datenaufzeichnungsbereich 29 zwei Aufzeichnungen einen gegebenen einzelnen Sektor belegen. Die Aufzeichnungen werden den Sektoren zugewiesen, als ob alle Aufzeichnungen mit Daten gefüllt wären. Entsprechend ist in der ursprünglichen Dateiversionsbeschreibung von Tabelle A die Umfangdefinition #1 für die Aufzeichnungen 1 bis 10; tatsächlich existieren nur die Aufzeichnungen 1 bis 9, jedoch werden fünf volle Sektoren zugewiesen, als ob die Aufzeichnungen 1 bis 10 voll wären. Auch in der Speicherplatte 20 werden fünf Sektoren verwendet. Die Umfangdefinition #2 im ursprünglichen Dateiversionstitel ist für die Aufzeichnungen 11 bis 14, die noch erstellt werden müssen, was zwei Sektoren erhält, wobei der relative Sektor gleich FFFFFF ist. Die "Zuweisungen" für die Aufzeichnungen 11 bis 14 dient nur zur Verwaltung des Verzeichnisses; auf der Speicherplatte 20 werden nämlich keine Sektoren verwendet. In ähnlicher Weise ist die Umfangdefinition #3 nur für die Aufzeichnungen 16 bis 20 vorgesehen, allerdings werden drei Sektoren des Datenbereichs 29 "zugewiesen" und auf der Speicherplatte 20 verwendet, wobei der erste Sektor des Datenbereichs 29, der durch die Umfangdefinition #3 identifiziert ist, nur die Aufzeichnung 15 enthält, wodurch ein "zugewiesener" Speicherplatz für die Aufzeichnung 15 übrig bleibt, der später aufgezeichnet werden kann, so daß alle Aufzeichnungspositionen in filename erhalten werden, um die Datei aufzunehmen, wenn sie vollständig gefüllt ist.
  • In Tabelle A wird die aktualisierte Dateiversionsbeschreibung infolge einer Aufzeichnungsoperation zu Version #2, während die ursprüngliche Dateiversionsbeschreibung Version 1 bleibt. In der ursprünglichen Dateiversion gibt es drei Umfänge, während es in der zweiten oder aktualisierten Dateiversion sieben Umfänge gibt. Die Umfangdefinition #1U wird zu einem separaten Umfang, weil die Aufzeichnung 3 im ursprünglichen Umfang der Aufzeichnungen 1 bis 9 aktualisiert wurde. Die ursprüngliche Aufzeichnung 4 wird im zweiten Umfang, der einen relativen Versatz von 008 besitzt, mit der aktualisierten Aufzeichnung 3 verbunden, das heißt, die ursprüngliche Aufzeichnung 4 wird erneut in den neuen Umfang aufgezeichnet, was dazu führt, daß eine andere Kopie der ursprünglichen Aufzeichnung 4 innerhalb der Umfangdefinition #1 der ursprünglichen Dateiversion übrig bleibt. Die Umfangdefinition #3U dient für die ursprünglichen Aufzeichnungen 5 bis 10 plus den Zuweisungsspeicherplatz für die Aufzeichnung 10, die noch empfangen werden muß. Sein relativer Sektor wird jetzt zu #2, da der Sektor, der ursprünglich die Aufzeichnungen 3 und 4 gespeichert hat, sich nicht länger in der jüngsten oder aktuellen Dateiversion befindet. In der Definition #4U aus der ursprünglichen Umfangdefinition #2 für die Aufzeichnungen 11, 12, die noch nicht empfangen wurden, ist die relative Sektoradresse als FFFFFF beizubehalten, wobei ein Sektor für die Aufzeichnungen, die noch aufgezeichnet werden müssen, nur innerhalb des Verzeichnisses 28 logisch zugewiesen wird. Die neue Umfangdefinition =5U identifiziert neue Aufzeichnungen 13 und 14 als einen separaten Umfang mit einem Versatz von 9, das heißt, sie werden nach den Daten aufgezeichnet, die durch die Definition #2U (die Aktualisierung von Aufzeichnung 3 verursachte diesen neuen Umfang) definiert sind, wobei ein Sektor innerhalb des Datenbereichs 29 zur Speicherung benötigt wird. Die Umfangdefinition #6U für die Aufzeichnungen 15 bis 18 behält dieselbe relative Sektorzahl wie Umfangdefinition #3 in der ursprünglichen Version. Die Anzahl der Sektoren wird jedoch um eins reduziert, weil die Aufzeichnung 20 aktualisiert wurde. Da die Aufzeichnung 20 aktualisiert wird, trägt sie die ursprüngliche Aufzeichnung 19 mit sich und erstellt eine neue Umfangdefinition #7U mit einem Versatz von 00A (Dezimal 10), wobei ein Sektor des Datenbereichs 29 dadurch identifiziert wird.
  • Aus den obigen in Tabelle A enthaltenen Definitionen geht hervor, daß die physikalische Aufzeichnung verschiedener Aufzeichnungen während einer Aktualisierung in einer physikalischen Fragmentierung der Daten auf der Speicherplatte 20 resultiert, wobei jedoch der Dateiversionstitel alle Aufzeichnungen in numerischer Reihenfolge als zusammenhängende logische Datei verbindet, unabhängig davon, ob die Aufzeichnungen auch aufgezeichnet wurden. In diesem Sinne dient die Dateiversionsbeschreibung auch als Zuweisungsabbildung.
  • Wie aus der Darstellung in Tabelle A hervorgeht, wurde die Datei, die auf Speicherplatte 20 aufgezeichnet wurde, in zwei zeitversetzten Aufzeichnungsoperationen aufgezeichnet. Der Begriff "Aufzeichnungsoperation" bezeichnet alle Aufzeichnungen, die während eines gegebenen "geöffneten Schreibzugriffs" durch DOS auf die Datei erfolgten. In praktischer Hinsicht kann die "Aufzeichnungsoperation" aus mehreren Aufzeichnungssitzungen bestehen, die während dieses einen Zeitraums des "geöffneten Schreibzugriffs" (die Datei ist geöffnet, um beschrieben zu werden) durchgeführt wurden. Aus diesem Grund können die Aufzeichnungen, wie sie tatsächlich auf der Speicherplatte 20 in der Version 1 (ursprüngliche Dateiversion) aufgezeichnet sind, bestehend aus den Aufzeichnungen 1 bis 9, aufgezeichnet in fünf zusammenhängenden Sektoren, und die Aufzeichnungen 15 bis 20 (fünf Aufzeichnungen sind in drei zusammenhängenden Sektoren aufgezeichnet) in acht zusammenhängenden Sektoren auf der Speicherplatte 20 aufgezeichnet werden. Wurden während dieses einen Zeitraums des "geöffneten Schreibzugriffs" zwei Aufzeichnungssitzungen verwendet, könnten die Aufzeichnungen 15 bis 20 in drei zusammenhängenden Sektoren, die physikalisch von den fünf zusammenhängenden Sektoren, in denen die Aufzeichnungen 1 bis 9 aufgezeichnet sind, getrennt sind, aufgezeichnet werden; die Aufzeichnungen 15 bis 20 hätten ebenfalls vor den Aufzeichnungen 1 bis 9 aufgezeichnet werden können. Ungeachtet solcher Aufzeichnungssitzungssequenzen während eines Zeitraums des "geöffneten Schreibzugriffs" werden alle Aufzeichnungen, die während dieses einen Zeitraums des "geöffneten Schreibzugriffs" aufgezeichnet wurden, im Verzeichnis so behandelt, als seien sie während einer einzigen Aufzeichnungsoperation aufgezeichnet worden. Alle Aufzeichnungen, die während dieses einen Zeitraums des "geöffneten Schreibzugriffs" aufgezeichnet wurden, werden im Verzeichnissegment unabhängig von den physikalischen Aufzeichnungspositionen nach Aufzeichnungsnummer sortiert. In Ähnlicher Weise kann der zweite Zeitraum des "geöffneten Schreibzugriffs", wie er in Tabelle A dargestellt ist, aus mehreren zeitversetzten Aufzeichnungssitzungen bestehen. Lediglich die Dateiversionen, die im Veranschaulichungsbeispiel so identifiziert sind, als seien sie in aufeinanderfolgenden geöffneten Schreibzugriffen erstellt wurden, führen zu einer Änderung der Umfangdefinition; Umfangdefinitionen werden erst geändert, wenn die für den Schreibzugriff geöffnete Datei geschlossen wird.
  • Wir kehren nun zu Figur 6 zurück. ODDCB 128, wie es im Hauptspeicher des der Host-Prozessors 10 gespeichert ist, soll ausführlich beschrieben und mit ODSDCB 35 verglichen werden. ODDCB 128 besitzt ein erstes Feld 176 DCBID (device control block identification), das den Steuerblock 128 als ODDCB identifiziert. Die Adresse von Feld 176 besitzt die Anfangsadresse für ODDCB 128, wie dies bei der vorherigen Beschreibung vorausgesetzt wurde; sie wurde erzeugt und in DOS 11 gespeichert. Das Feld DR 177 gibt an, welches optische Festplattenlaufwerk 17 zur optischen Speicherplatte 20 gehört. Das Mediumfeld 178 enthält die Beschreibung der Speicherplatte 20, die im angegebenen Laufwerk 17 enthalten ist. Die im Mediumfeld 178 gespeicherten Informationen werden erhalten, indem ODSDCB 35 für die Speicherplatte 20, die angebracht wurde, eingelesen wird. Das Feld ANCH 179 (Anchor) enthält die Spurenadresse der Ankerbasis 40 als Lesezugriff der Speicherplatte 20 von ODSDCB 35. Anhand des Mediumfelds 178 kann der Host-Prozessor 10 die Gesamtanzahl an Sektoren auf der Speicherplatte 20 bestimmen, die für die Zuweisung verfügbar sind. Das Label-Feld 180 enthält das Label oder den Namen der optischen Speicherplatte 20 als ein Daten-Volume und wurde von ODSDCB 35 eingelesen. Das Feld "Letzte Daten" 185 speichert die Spurenadresse und die Sektoradresse innerhalb dieser Spur, die zuletzt zur Speicherung von Daten im Datenbereich 29 verwendet wurde. Diese Daten erhält man aus einer an späterer Stelle beschriebenen Positionssuchoperation, die in Figur 9 dargestellt ist. Das Feld Öffnen 186 gibt die Anzahl an Öffnungen der Dateiversion durch Computerprogramme, die im Host-Prozessor 10 ausgeführt werden, an. Diese Anzahl entspricht der Anzahl an "Benutzern", die aktiv mit der jeweiligen Dateiversion zu tun haben. Der Begriff "Benutzer" bezeichnet hier Programme. Das Feld Last DIR 187 enthält die Spurenadresse des zuletzt aufgezeichneten Verzeichnisankerzeigers 45. Der Ankerzeiger wird gefunden, indem man die Ankerbasis 40, auf die der Ankerbasiszeiger 37 (Figur 3) zeigt, auf der Speicherplatte 20 einliest. Das Feld Root HDR 188 speichert im Hauptspeicher die Spurenadresse des Stammverzeichnistitels 50, der in Verbindung mit der aktuellen Dateiversion, die verarbeitet wird, verwendet wird. Das Pfadfeld 189 enthält den DOS-Pfadnamen für den Zugriff auf die Dateiversion, die verarbeitet wird. Das Feld Path HDRS 190 enthält die Spurenadressen der Unterverzeichnistitel, die durch den Pfadnamen spezifiziert sind, der im Pfadfeld 189 gespeichert ist. Das Feld NSD 191 (Anzahl an Unterverzeichnissen) speichert eine Zählung der Unterverzeichnisse, die im Pfadfeld 189 vertreten sind. Das Feld Neu 192 speichert die Spurenadresse einer Verzeichnistitelspur, die noch nicht in einem Verzeichniseintrag höherer Ebene für das aktuelle Verzeichnis wiedergegeben wird. Das bedeutet beispielsweise, daß auf einen Subtitel 72 von einem Stammsegment 78 noch nicht gezeigt werden kann; das heißt, daß dieser Subtitel von Informationen, die auf der Speicherplatte 20 gespeichert sind, noch nicht adressierbar ist; dieser Feldinhalt ist eine Erinnerung für das Programm und für DOS 11, das Stammsegment so zu aktualisieren, daß der Subtitel angegeben wird. Dieselbe Regel gilt für die Stammtitel 50, bei denen die Verzeichnisankerzeiger 45 nicht aktualisiert wurden, um den Aufbau eines neuen oder zusätzlichen Stamtitels 53 wiederzugeben. Zusammenfassend läßt sich sagen, daß ODSDCB 35 nur Mediumbeschreibungsdaten enthält, während ODDCB 128 nicht nur diese, sondern auch andere, funktionale Informationen enthält, die beim Schließen einer beliebigen geöffneten Datei, das heißt, wenn das Feld Geöffnet 186 gleich Null ist, der Gewährleistung einer ordnungsgemäßen und genauen Aktualisierung des Verzeichnisses 28 dienen. Die Ziffer 193 identifiziert eine Elipse, die anzeigt, daß ODDCB auch noch andere Felder enthalten kann, die zur Dateiverwaltung verwendet werden; jedoch sind diese Felder für ein Verständnis der vorliegenden Erfindung nicht ausschlaggebend.
  • In den Figuren 7, 8 und 9 stellen Linien, die Blöcke verbinden, Programmaufrufe, Datenübertragungen usw. zwischen Programmen, die durch Kästen dargestellt und mit den Linien verbunden sind, dar.
  • Figur 7 veranschaulicht in vereinfachter Form die Maschinenoperationen des Host-Prozessors 10, die verwendet werden, um auf Informationen zuzugreifen, die in einem Verzeichnis 28 enthalten sind, das auf einer Speicherplatte 20 enthalten ist. Sobald eine Speicherplatte 20 in ein Laufwerk 17 eingebaut wird, greift der Host-Prozessor 10 auf die Speicherplatte 20 zu, um die Position des Verzeichnisses zu bestimmen und um von dort Informationen einzuholen, indem zuerst ODSDCB 35 und anschließend je nach Bedarf, der durch DOS 11 definiert wird, die auf der Speicherplatte 20 gespeicherten Verzeichnistitel und Verzeichnissegmente eingelesen werden. Die Ziffer 200 zeigt die Aktivierung der Maschinenoperationen 201 (lokalisieren und verbinden) durch DOS 11 an. Diese Maschinenoperationen (lokalisieren und verbinden) lokalisieren einen Titel/ein Segment des Verzeichnisses 28 zur Aktualisierung von ODDCB 128 im Hauptspeicher, um einen spezifizierten Verzeichnispfad zu erstellen, der von DOS 11, das heißt, vom aktuellen Verzeichnispfad für den Zugriff auf das Verzeichnis 28, empfangen wurde. Die Maschinenoperationen 201 beinhalten die Einstellung eines Anzeigers Anzahl an Namen 19' im Hauptspeicher auf die Anzahl an Namen (Namen von Unterverzeichnissen und Dateinamen), die im spezifizierten Verzeichnispfad enthalten sind, der von DOS 11 empfangen wurde.
  • Danach wird eine Schleife von Maschinenoperationen durchgeführt, um alle Namen (Verzeichnistitel, Dateinamen usw.) im Verzeichnis 28 zu suchen, die von DOS 11 spezifiziert wurden. Für jeden spezifizierten Namen wird die Verzeichnissuchoperation 202 aktiviert, um diesen Namen im Verzeichnis 28 zu suchen.
  • Die Verzeichnissuchoperation 202 durchsucht das Verzeichnis 28, um ein angefordertes Unterverzeichnis oder einen angeforderten Dateinamen zu suchen. Zuerst werden das zuletzt erstellte Stammverzeichnissegment 58 und seine identifizierten Unterverzeichnisse 71 nach Datei-/Pfadargumenten durchsucht. Wird dabei kein 'Treffer' erzielt, dann weitet sich die Suche auf die Titelindizes 57, 60 aus. Die Suchausweitung durchsucht zuerst die Indizes im Stammverzeichnis, beispielsweise die Indizes 57 und 60. Wird festgestellt, daß ein Unterverzeichnis mit dem angegebenen Namen im Indexeintrag 54 (Figur 4) in Feld 86 oder ein filename.ext in Feld 87 ist, dann wird das Verzeichnissegment 52, das diesem Indexeintrag entspricht, durchsucht, um die physikalische Position des Unterverzeichnisses oder Dateinamens auf der Speicherplatte 20 im Verzeichnis 28 oder im Benutzerdatenbereich 29 zu bestimmen. An dieser Stelle wird daran erinnert, daß die Verzeichnissuchoperation 202 für jeden im Pfad enthaltenen Namen einmal aktiviert wird. Da das Durchsuchen von Verzeichnissen ein gut bekanntes Verfahren ist, werden die näheren Einzelheiten, die bei einer solchen Durchsuchung eine Rolle spielen, nicht beschrieben; an dieser Stelle möge der Hinweis genügen, daß die Indexsuche im Stammverzeichnis mit Index 57 beginnt (es ist zu beachten, daß der Index 56 gleich Null gesetzt wird), in allen Indizes sowie im letzten Stammsegment, das noch nicht seine zugewiesenen zwei Spuren gefüllt, hat, fortgesetzt wird. Für jedes angegebene Unterverzeichnis wird eine identische Suche durchgeführt, bis alle gültigen physikalischen Adressen, die allen logischen Pfadnamen entsprechen, identifiziert wurden. Wenn diese Suchoperationen abgeschlossen sind, wird das Verzeichnis unter Verwendung der Pfadidentifikation, die jetzt in ODDCB 128 in den Feldern, die unter Verweis auf Figur 6 beschrieben werden, gespeichert ist, logisch mit DOS 11 verbunden. Die Verzeichnissuchoperation umfaßt außerdem eine Leseoperation 203, um die Verzeichnisindizes im Stammtitel und im Unterverzeichnistitel zu lesen, sowie eine Suchoperation, um die Titelindizes an Schritt 204 zu suchen.
  • Der letzte Suchteil 210 durchsucht das letzte Verzeichnissegment (das wahrscheinlich noch nicht gefüllt ist). Diese Suche kann auch als Subfunktion von DOS 11 aufgerufen werden, wie dies durch die Ziffer 209 angegeben wird, oder wird nach Abschluß der Suche eines Titelindex in der Operation 204 als Subfunktion vom Verzeichnis 202 aufgerufen. Die Suchsegment-Maschinenoperationen 210 durchsuchen ein Verzeichnissegment, das sich an einer spezifizierten Spurenaddresse innerhalb des Verzeichnisbereichs 28 befindet. Für ein Verzeichnissegment ist die spezifizierte Spur eine radial am weitesten innen liegenden Spur von den beiden Spuren, die für das Verzeichnissegment zugewiesen wurden. Die Maschinenoperationen 210 umfassen eine Leseoperation 211, um die beiden adressierten Segmentspuren zu lesen, indem jeder Sektor auf der Speicherplatte 20 nacheinander gelesen wird, um den geeigneten Dateinamen in Feld 102 oder im Dateierweiterungsnamen 103 zu finden. Das Feld 102 kann auch ein Unterverzeichnis identifizieren.
  • Die Suchoperationen Nächste Version 213 werden als eine DOS- Subfunktion von DOS 11 aus aufgerufen, wie dies durch die Ziffer 212 angegeben ist. Die Suchoperation Nächste Version 213 durchsucht einen Verzeichniseintrag (Titel und Segment) auf Informationen über eine nachfolgende oder nächste Version einer Datei. Zu den Eingabeparametern von DOS 11 gehört die Identifikation der letzten Dateiversionsnummer, die zusammen mit den Spuren- und Sektoradressen der Dateiverzeichnisbeschreibung 110 entsprechend der Dateiversionsnummer, die zuletzt als im Datenbereich 29 gespeichert gefunden wurde, gefunden wurde. Es sei daran erinnert, daß die Versionsnummern mit der Ziffer 1 beginnen, die die erste aufgezeichnete oder jüngste (aktuelle) Dateiversion angibt; diese letzte Version wurde gefunden, als die Suchoperation Nächste Version 213 aktiviert wurde. Der Host-Prozessor 10 lokalisiert bei der Durchführung der Maschinenoperationen 213 zuerst das Verzeichnissegment, in denen die Dateiversionsbeschreibungen 110 enthalten sind (es sei daran erinnert, daß ältere Versionen des Verzeichnisses gelöscht werden, sobald eine Datei aktualisiert wird). Danach werden alle Dateiversionsbeschreibungen durchsucht, um nach der Dateiversion zu suchen, die um eins niedriger ist als die von DOS spezifizierte Dateiversion. Der Informationsgehalt der Dateiversionsbeschreibung in den Feldern 111-117 (Figur 4) entsprechend der Nummer dieser nächsten Dateiversion (beispielsweise nächste ältere Dateiversion) wird an den Host- Prozessor 10 (Hauptspeicher) geliefert. Ist die zuletzt verarbeitete oder zuletzt gefundene Dateiversion die letzte im Verzeichnissegment, die den Dateinamen beschreibt, dann werden diese Informationen an den Host-Prozessor 10 zurückgeleitet. Dieses Einlesen und die Bereitstellung dieser Informationen sind relativ einfach zu implementierende Maschinenoperationen; daher folgt in diesem Zusammenhang keine nähere Beschreibung. Die Verzeichnissuchoperationen 202 können auch direkt von DOS 11 aus aktiviert werden.
  • Wir betrachten als nächstes Figur 8. Die Maschinenoperationen in Host-Prozessor 10 oder die Maschinenoperationen, die von Host-Prozessor 10 an das Laufwerk 17 initiiert werden, um ein Verzeichnis 28 zu aktualisieren, werden hier in vereinfachter Form dargestellt. Diese Maschinenoperationen erzeugen neue Informationen für das Verzeichnissegment 58 sowie neue Informationen für den Verzeichnistitel. In einer Unterverzeichnis-Anordnung können Verzeichnistitel und Verzeichnissegmente je nach Art und Umfang der Aktualisierungen entweder auf der Ebene des Stammverzeichnisses oder auf der des Unterverzeichnisses oder aber für eine Mehrzahl an Verzeichnisebenen erzeugt werden. Die aktualisierten Informationen werden dann auf der Speicherplatte 20 in einem Verzeichnisbereich 28 aufgezeichnet. Jedesmal, wenn eine Datei aktualisiert wird, werden die Versionsnummern der verschiedenen Versionen allesamt aktualisiert, um anzuzeigen, daß die aktuelle oder zuletzt aufgezeichnete Version die Version N ist, also die höchste Versionsnummer.
  • Wenn ein Verzeichnis mit einer höheren Ebene als das aktualisierte Unterverzeichnis benötigt wird, was beispielsweise der Fall ist, wenn ein Verzeichnissegment gefüllt wird, was dazu führt, daß ein neuer Unterverzeichnistitel erstellt wird, was wiederum die Aktualisierung beispielsweise eines Stammverzeichnissegments erforderlich macht, wird dies ebenfalls an das DOS des Host- Prozessors 10 mitgeteilt, und dies veranlaßt DOS, die höhere Ebene des Verzeichnisses 28 ebenfalls zu aktualisieren. Eine der möglichen Reaktionen aus der Aktualisierungsoperation 220 ist, daß die Speicherplatte 20 vollständig gefüllt ist, weil die Verzeichnisstruktur nicht ausreichend aufgebaut ist.
  • Eine Aktivierung des Aktualisierungsverzeichnisses 220 durch DOS 11 erfolgt an einem beliebigen Aktualisierungspunkt, von denen mehrere vorhanden sind. An Aufruf 221 werden die Maschinenoperationen 222 aktiviert, um nach einem sogenannten Titelschlitz zu suchen (Schlitz ist die umgangssprachliche Bezeichnung für einen Datenspeicherbereich, der in der Lage ist, einen Titel zu speichern, das heißt, einen oder mehrere Sektoren der Speicherplatte 20). Diese Maschinenoperationen dienen dazu, einen freien Sektor oder Nullsektor innerhalb des Verzeichnisbereichs 28 zu lokalisieren, um Informationen für die Aktualisierung des Verzeichnisses 28 zu empfangen. Ein neuer Verzeichnistiteleintrag 53, 72 wird vom Host-Prozessor 10 für das entsprechende Verzeichnis oder Unterverzeichnis aufgebaut. Diese neuen Verzeichnistiteleinträge 53, 72 (Figur 3) führen dazu, daß die vorherigen Titel der betreffenden Dateinamen gelöscht werden.
  • Der erste Schritt der Maschinenoperationen 222 besteht darin, festzustellen, ob der identifizierte Titelsteuerblock 50 noch immer einen freien Sektor besitzt, um einen zusätzlichen Verzeichnistiteleintrag 53, 72 zu empfangen. Diese Maßnahme wird erreicht, indem die Maschinenoperation Spurensuche des Schlitzes 223 aktiviert und der betreffende Verzeichnistitel über die Leseoperationen 225 aktiviert wird. Diese Operationen umfassen die Identifizierung der richtigen Spurenadresse (gemäß obiger Beschreibung) und dem Einlesen der Spur, die diesem Titel zugeordnet ist. Wenn auf der Spur, die diesem Titel zugeordnet ist, kein freier Sektor verfügbar ist, dann wird eine neue Spur für den Verzeichnistitel zugewiesen. Diese Zuweisung führt dazu, daß ein weiterer Titelsteuerblock 50 innerhalb desselben Verzeichnisses, also im Stammverzeichnis oder einem identifizierten Unterverzeichnis, erstellt wird. Der Schritt des Einlesens setzt sich zusammen aus dem Lesen aufeinanderfolgender Sektoren der Speicherplatte 20, bis ein Nullsektor oder freier Sektor gefunden wird. Sobald ein Nullsektor oder freier Sektor gefunden wird, aktivieren die Maschinenoperationen die Schlitzoperationen Segment Suchen 224, um im adressierten, zum oben eingelesenen Verzeichnistitel gehörenden, Verzeichnissegment nach freien Sektoren zu suchen. Wird ein freier Segmentsektor identifiziert, werden die beiden Adressen für Spur und Sektor zurück an DOS 11 des Host- Prozessors 10 gesendet. Diese Lesezugriffe der Speicherplatte 20 werden von Maschinenoperationen implementiert, die durch den Lesezugriff 225 dargestellt werden. Sobald die Verzeichnisinformationen an den Host-Prozessor 10 DOS zurückgesendet wurden, bestimmt der Host-Prozessor 10 an Schritt 230, ob das durchsuchte Verzeichnissegment gefüllt ist (dies schließt einen freien Titelschlitz von den Maschinenoperationen 225 ein), und danach zeichnet an Schritt 231 der Host-Prozessor 10 die Verzeichnisinformationen in den identifizierten freien Sektoren der Speicherplatte 20 sowohl für den Titel als auch für die Verzeichnissegmente auf. Die Rückkehr zu DOS 11 erfolgt am Rückkehrpunkt 232; wenn jedoch das Verzeichnissegment "voll" ist, entweder weil (1) es keine freien Sektoren in einer der Spuren, die dem aktuellen Verzeichnistitel zugewiesen sind, gibt, oder (2) weil es keine freien Sektoren im zugewiesenen Verzeichnissegment gibt, dann erstellt in den Maschinenoperationen 233 der Host-Prozessor 10 einen neuen Titel im Titelsteuerblock 50 oder 71 und weist zwei zusätzliche Spuren für ein Verzeichnissegment zu, das vom neuen Titel identifiziert werden soll. Diese Operationen gleichen im wesentlichen der anfänglichen Erstellung eines Stammverzeichnissegments gemäß Beschreibung in bezug auf Schritt 140 in Figur 5 und eines Verzeichnistitels in bezug auf Schritt 141. Für den Fall, daß ein Segment "voll" ist (alle Sektoren in den zugewiesenen beiden Spuren sind belegt), der Titel 53, der dieses Segment definiert, jedoch noch nicht voll ist, werden nur zwei Spuren für ein neues Segment zugewiesen. Die Zuweisungs- und Formatoperationen 234 werden vom neuen Titelelement 233 aktiviert. Diese Operationen weisen eine Spur oder einen Sektor auf der Speicherplatte 20 zu (falls im aktuellen Titelsteuerblock vorhanden), um einen neuen Titelsteuerblock zu empfangen. Die Formatierungsoperationen erfolgen nach der Zuweisung, zu der auch die Erzeugung der in Figur 4 dargestellten Datenstrukturen gehört. Die näheren Einzelheiten einer solchen Formatierung sind dem Fachmann im Programmierbereich gut bekannt. Nach den Zuweisungs- und Formatoperationen 234 zeichnet eine Schreiboperation 231 den soeben formatierten Titel auf der Speicherplatte 20 auf. Die Rückkehr zu DOS 11 erfolgt am Rückkehrpunkt 232.
  • DOS 11 kann auch andere Teile der Verzeichnisaktualisierungen der Maschinenoperationen 220 aktivieren, beispielsweise die Suche nach einem freien Eintrag (der Begriff "Eintrag" ist eine umgangssprachliche Bezeichnung für freie Sektoren auf der Speicherplatte 20), wie er an Eintrag 240 aktiviert wurde. Die Maschinenoperationen 241 Freien Eintrag Suchen können dazu führen, daß eine oder mehrere Ebenen einer Verzeichnishierarchie durchsucht werden, beispielsweise eine Suche nicht nur im Stammverzeichnis, sondern in mehreren Unterverzeichnissen. Die Identifizierung des durchsuchten Verzeichnisses findet man in ODDCB 128 in Pfad HDRS, Feld 190. Die Ergebnisse dieser Maschinenoperationen bestehen darin, daß die Adressen für Spur und Sektor des verfügbaren Sektors zur Speicherplatte 20 zurückgeleitet werden, um einen Titel, ein Segment oder einen Anker zu empfangen.
  • Bei der Suche nach einem freien Verzeichniseintrag verwenden die Operationen 241 zuerst den Aufruf 242, um die Schlitzoperationen Titel Suchen 222 zu aktivieren, um nach freien Sektoren zu suchen (umgangssprachlich auch als "Schlitz" bezeichnet). Wenn das Titelsuch-Schlitzmodul 222 die Identifizierung eines freien Sektors in einem Titelsteuerblock 53, 72 zurücksendet, senden die Maschinenoperationen Freien Eintrag Suchen 241 die identifizierte Adresse für Verzeichnisspur und Verzeichnisadresse an DOS 11 zurück. Die Rückkehr vom Titelsuch-Schlitzmodul 222 kann zusätzlich zur Aktualisierung von Verzeichnissen höherer Ebenen eine Identifizierung höherer Ebenen einer Verzeichnisstruktur erforderlich machen, beispielsweise die Aktualisierung des Verzeichnisankerzeigers 45 oder der Ankerbasis 40. Dies ist besonders dann der Fall, wenn neue Titelelement- Maschinenoperationen 233 auftreten. In diesem Fall kann die vom Titelschlitzmodul 222 durchgeführte Rückkehr der Sektoradresse und der Spurenadresse der freien Sektoren, um das freie Eintragsmodul 241 zu suchen, dazu führen, daß der Eintrag Operation Freien Eintrag Suchen 241 den Host-Prozessor 10 veranlaßt, die Ankeraktualisierungsoperationen 243 zu aktivieren. Durch die Ankeraktualisierungsoperationen 243 aktiviert der Host-Prozessor 10 zuerst die Spurenschlitzoperationen 223, wie dies durch den Doppelpfeil 244 dargestellt ist, um festzustellen, ob im letzten identifizierten, also aktuellen Verzeichnisankerzeigersegment 45,ein freier Sektor verfügbar ist. Wenn ein freier Sektor verfügbar ist, dann ermöglichen die Ankeraktualisierungsoperationen 243 dem Host-Prozessor 10, die Schreiboperationen 245 zu aktivieren, um die in den Operationen 222 identifizierte Spuren- und Sektornummer im soeben zugewiesenen Sektor der Spur des Verzeichnisankerzeigers 45 aufzuzeichnen. Andernfalls muß ein neuer Verzeichnisankerzeiger 45 erstellt werden, und die Operationen, die in bezug auf Schritt 143 von Figur 5 beschrieben werden, werden anschließend implementiert, um einen Ankerzeiger in das neu erstellte Verzeichnisankerzeigersegment 45 zu schreiben, indem die Ankeraktualisierungsoperationen 243 daraufhin die Schreiboperationen 245 aktivieren, um die Verzeichnisinformationen auf der Speicherplatte 20 aufzuzeichnen. Die in den Operationen 222 ermittelte Spuren- und Sektoradresse wird daraufhin auf der soeben für den neuen Verzeichnisankerzeiger 45 zugewiesenen Spur aufgezeichnet. Wenn die oben beschriebene Aktualisierung des Verzeichnisses der nächsthöheren Ebene erfolgt, muß dieses Verzeichnis der nächsthöheren Ebene ebenfalls aktualisiert werden, um die neue Spuren- und Sektoradresse auf der Speicherplatte 20 für die niedrigeren Verzeichniseinträge zu reflektieren. Um dieses Ziel zu erreichen, ermöglichen es die Maschinenoperationen 241 Freien Eintrag Suchen dem Host-Prozessor 10, die Operationen 246 Verzeichniseintrag Aktualisieren aufzurufen. Es können mehrere Aufrufe der Operationen 246 Verzeichniseintrag Aktualisieren erfolgen, nämlich einer auf jeder Ebene der Verzeichnishierarchie.
  • Die Operationen 246 Verzeichniseintrag Aktualisieren ermöglichen dem Host-Prozessor 10 DOS, den Verzeichniseintrag (Segment, Titel oder Anker) im Hauptspeicher des Host- Prozessors 10 zu finden, den Eintrag zu aktualisieren und ihn in die spezifizierte Adresse auf der Speicherplatte 20 zu schreiben. Zuerst rufen die Verzeichnissuchoperationen 247 (die Verzeichnissuchoperationen 247 sind dieselben wie die Verzeichnissuchoperationen 202 von Figur 7) die Operationen 246 Verzeichniseintrag Aktualisieren auf. Nach Abschluß der Verzeichnissuche führt die Leseoperation 248 den identifizierten Verzeichnissektor (entweder für Titel, Segment oder Anker) zu den Operationen 246 Verzeichniseintrag Aktualisieren zurück. Die Umfangdaten gemäß ihrer Beschreibung in bezug auf Tabelle A werden aktualisiert, indem alle Versionsnummern entsprechend geändert werden, so daß sie diese Aktualisierung wiedergeben. Die neuen Umfangdaten werden in den soeben eingelesenen Eintrag eingefügt, um einen aktualisierten Verzeichniseintrag zu erstellen (Verzeichnistitel und Verzeichnissegment). Der aktualisierte Eintrag wird daraufhin an den Spuren- und Sektoradressen, die soeben durch die Schlitzoperationen Titel Suchen 222 identifiziert wurden, auf die Speicherplatte 20 geschrieben, um die Operationen Freier Eintrag 241 zu finden. Nachdem der aktualisierte Verzeichniseintrag an seine neue Spur und seine neuen Sektoren geschrieben wurde, wird als Ergebnis der Suche, die in den Operationen 247 durchgeführt wurde, der alte Verzeichniseintrag durch die Operationen 246 Verzeichniseintrag Aktualisieren gelöscht. Auf diese Weise werden alle früheren Datei- oder Unterverzeichnisversionen sowie eine aktuelle Version im letzten aktualisierten Verzeichniseintrag für die Datei identifiziert und beschrieben. Bei dieser Art von Aktualisierung bleibt eine einzelne eindeutige Beschreibung der Archivierung der Datei auf der Speicherplatte 20 übrig, und gleichzeitig wird die Verzeichnissuchdauer im Verzeichnisbereich 28 der Speicherplatte 20 wesentlich reduziert.
  • Um die Verzeichnisumfangsbeschreibungen zu aktualisieren, macht DOS 11 einen Aufruf 256, um die Verzeichnisumfangsoperationen 255 zu aktualisieren, bei denen für eine angegebene Datei, die derzeit geöffnet ist (das heißt, die derzeit von Host-Prozessor 10 bearbeitet wird, die Umfangsabbildung (wie in Tabelle A) aktualisiert wird (die Öffnungen 165 von FEMCB 155 und die Öffnungen 186 von ODDCB 128 sind ungleich Null). Die aktualisierten Umfangsinformationen gemäß Tabelle A werden beispielsweise im Hauptspeicher des Host-Prozessors 10 gehalten. Jedesmal, wenn ein neuer Umfang erstellt wird, indem der Host-Prozessor 10 Daten im Benutzerdatenaufzeichnungsbereich 29 aufzeichnet, wird FEMCB 155 (Figur 6) aktualisiert. Die Aktualisierung von FEMCB erfolgt, nachdem die Daten in den Benutzerdatenaufzeichnungsbereich 29 geschrieben wurden. DOS 11 wendet Eingabeparameterdaten über die Spuren- und Sektoradressen für jede der Umfangaktualisierungen an. Es wird darauf hingewiesen, daß FEMCB 155 gemäß Darstellung in Tabelle A keine absoluten Sektor- und Spurenadressen auf der Grundlage der tatsächlichen Sektor- und Spurenadressen enthält, sondern daß es sich hierbei vielmehr um die relative Anzahl logischer Sektoren am Anfang der Speicherplatte handelt. Jedesmal, wenn die Datei nach einer "Schreiböffnung" geschlossen wird (eine Datei wurde von DOS 11 geöffnet, um Daten in die geöffnete Datei zu schreiben), wird das aktualisierte FEMCB 155 im Verzeichnisbereich 28 aufgezeichnet. Wenn es beispielsweise bei der verarbeiteten Datei drei Schreiböffnungen gibt, dann werden möglicherweise drei neue Versionen der Datei erstellt, da diese jedesmal, wenn die Schreiböffnung geschlossen wird, separat identifiziert wird. Diese Versionskontrolle kann zur Sicherung der Datenintegritst verwendet werden.
  • Der Verzeichnisaktualisierungsprozeß sucht zuerst das FEMCB 155 für die geöffnete Datei; für jede geöffnete Datei wird ein eigenes separates FEMCB im Host-Prozessor 10 aufgebaut und im Hauptspeicher gespeichert. Als nächstes liefert DOS 11 die absoluten Adressen auf der Speicherplatte 20 für die neuen und alten Umfänge; die logischen Adressen werden neu berechnet. Die Anzahl der logischen (relativen) Sektoren vom Anfang der geöffneten Datei (logische Sektoren) wird bestimmt, indem das Produkt der relativen Spur mit der Anzahl der Sektoren in einer logischen Spur multipliziert wird. Somit ist die Anzahl der logischen Sektoren, die im alten FEMCB verwendet wird, eine andere Anzahl als die Anzahl an Sektoren im aktualisierten FEMCB. Diese beiden Berechnungen führen dazu, daß relative (logische) Sektornummern vom Anfang der Datei entnommen werden. Wenn auf diese aktualisierten Daten zugegriffen werden soll, werden diese relativen Sektornummern durch eine Tabellensuche im Verzeichnis 28 in absolute Adressen umgewandelt. Das Verzeichnis 28 wird nur dann aktualisiert, wenn ein Schreibzugriff auf eine geffnete Datei erfolgt, also obwohl die Anzahl der Datenspeichersektoren im Datenbereich 29 gleich bleibt. Die Adressen der neuen Daten, die andere Daten ersetzen, müssen bestimmt werden, auch wenn die relativen Sektornummern sich möglicherweise nicht ändern. Ein neuer Eintrag wird in das FEMCB innerhalb der Umfangabbildung 116, 117 (Figur 4) eingefügt. Der Grund für diesen neuen Eintrag ist, daß das Feld 113 für Datum und Uhrzeit sowie das Feld 115 einen anderen Informationsgehalt haben können, obwohl die Anzahl der Sektoren, die verwendet werden, um die aktualisierte Version der geöffneten Datei zu speichern, sich nicht ändert. Wenn es viele Aktualisierungen gibt, werden natürlich zusätzliche Sektoren benötigt, weil zusätzliche Aufzeichnungen als Bestandteil der Datei aufgezeichnet werden.
  • Auch wenn die Daten in der Datei nicht ersetzt werden, wie dies aus der Darstellung in Tabelle A hervorgeht, als die Aufzeichnung 3 aktualisiert wurde, können sich dennoch die relativen Sektoren ändern. Wenn wir beispielsweise die Tabelle A betrachten, dann sehen wir, daß der Eintrag 117-1 den Umfang #1 definiert, der die Aufzeichnung 3 enthält. In der aktualisierten Dateiversion definiert der Eintrag 117-1 den Umfang #1 im Gegensatz zu den ursprünglichen fünf Sektoren lediglich mit einem Sektor. Der Eintrag 117-2 für die Umfangdefinition #2U für die Aufzeichnungen 3 und 4 besitzen neue relative Nummern. Entsprechend ist der Eintrag 117-3 für die Umfangdefinition #3U ein neuer Umfang in der neuen Version, dessen eigene relative Sektornummer gleich zwei ist. In anderen Worten, die Berechnungen zur Änderung der relativen Sektornummern muß eventuelle neue Umfänge berücksichtigen, die erstellt werden, also #2U aufgrund der neu ersetzten Daten. Die relativen Sektornummern für die neu erstellten Umfänge und für alle Aufzeichnungen nach dem neu erstellten Umfang werden geändert. Das heißt, die Aufteilung der Umfangdefinition #1 in zwei Umfänge erstellt die Umfangdefinition #3U, die mit Aufzeichnung 5 beginnt und eine relative Sektornummer 2 besitzt, während die Umfangdefinition #2U einen relativen Sektor 8 gemäß Definition im Benutzerbereich 29 besitzt, also acht Sektoren ab dem Anfang der Datei. In ähnlicher Weise wurde durch das Hinzufügen der Aufzeichnungen 13 und 14 die neue Umfangdefinition #5U mit ihrem eigenen relativen Sektor erstellt, der nach der Umfangdefinition #2U folgt, während die relative Sektornummer für den Umfang #3 ursprünglich (relative Sektoren gleich 5) denselben relativen Sektor enthält, jedoch zu Umfangdefinition #6U wird. Aus der obigen Schilderung geht eindeutig hervor, daß bei den relativen Sektorzahlen für Daten, die mit Daten, die nicht geändert werden, entweder verschachtelt oder aktualisiert sind, höhere relative Sektorzahlen erstellt werden, da diese Daten erst dann aufgezeichnet werden, nachdem alle anderen Daten in Bereich 29 aufgezeichnet wurden. Die logische Positionierung dieser Daten bleibt die gleiche innerhalb der Umfangabbildung, wobei der relative Sektor in der Umfangabbildung die relative physikalische Position im Datenbereich 29 anzeigt. Diese Aktualisierung erfolgt innerhalb des Host-Prozessors 10, und zwar jedesmal dann, wenn eine beliebige Aufzeichnung im Bereich 29 auf der Speicherplatte 20 aktualisiert wird.
  • DOS 11 kann auch direkt über den Eintragspunkt 261 die Operation 260 Index Aufbauen aufrufen, um ein Segment 58, 74 zu durchsuchen, wenn ein Dateiname extrahiert werden soll, und für einen Titel 50, 72 (Figur 4) einen Index 54 aufbauen. Der Host- Prozessor 10 baut den Index immer dann auf,-wenn ein neuer Titelsteuerblock 50, 72 erstellt werden soll, das heißt, der vorherige Titelsteuerblock ist jetzt vollständig gefüllt. Dieser Index wird aufgebaut, nachdem die Zuweisungs- und Formatoperationen 234 den neuen Titelsteuerblock in einem Formatbereich des Hauptspeichers des Host-Prozessors 10 erstellt haben und bevor die Schreiboperationen 231 aktiviert werden. Nicht die Zuweisungs- und Formatoperationen 234, sondern DOS führt den Aufruf durch. Die zugewiesene Spur auf der Speicherplatte 20 für das zu durchsuchende abgeschlossene Segment 58 wird durch DOS 11 identifiziert. Das Feld im gemeinsamen Dateititel 100, im Dateinamen 102 und im Dateierweiterungsnamen 103 werden in der Leseoperation 262 aus jedem dieser Titel des vorigen Titelsteuerblocks gelesen. Alle Spuren des gefüllten Segments 58 werden durchsucht. Wenn keine Einträge in den Spuren, die dem Segment 58 zugewiesen sind, gefunden werden, dann wird eine Anzeige 'kein Treffer' zurückgeleitet, so daß kein Index aufgebaut wird; andernfalls werden die Indexeinträge in der Sortieroperation 263 (dem Sortiermodul von DOS 11) in aufsteigender Reihenfolge sortiert. Nach der Sortierung werden die Schlüssel 85 von jedem gemeinsamen Dateititel, der dem neuen Titel 50 im Bereich 54 hinzugefügt wurde, extrahiert, wie dies aus der Darstellung in Figur 4 hervorgeht. Danach veranlaßt DOS 11, daß der Verzeichnistitel auf die Speicherplatte 20 geschrieben wird.
  • Wenn auf Daten zugegriffen wird, die auf der Speicherplatte 20 gespeichert sind, dann müssen die Umfangabbildungen 116, 117 (Figur 4) für die Versionsnummer der gerade bearbeiteten Datei von einer relativen oder logischen Sektornummer in eine Nummer, die die tatsächliche Spurenadresse und Sektoradresse auf der Speicherplatte 20 wiedergibt, konvertiert werden. In FEMCB 128 wird die relative Sektornummer (auf der Basis der radial am weitesten außen liegenden Umlaufspur und des radial am weitesten außen liegenden Sektors, Umlauf Null, Sektor Null) in eine Spurenadresse und Sektoradresse konvertiert, indem die relative Sektornummer durch die Anzahl der Sektoren auf jeder Spur geteilt wird. Der Rest ist eine Sektornummer auf der identifizierten Spur, während der Quotient die Spurennummer ist.
  • Wenn Sektoren unabhängig von der Position auf der Spur adressierbar sind, werden die Sektoren von 0 bis N numeriert, wobei N die Anzahl der Spuren multipliziert mit der Anzahl der Sektoren pro Spur ist. Dann besteht die Konversion von logisch in real darin, daß die Sektornummer des Sektors, in dem das Feld 91 des gemeinsamen Titels 90 gespeichert ist, der logischen Sektornummer hinzugefügt -wird.
  • Die Maschinenoperationen Platzbegrenzung Suchen bestimmen, wie aus der Darstellung in Figur 9 hervorgeht, die radialen Begrenzungen der Verzeichnis- und Benutzerdatenbereiche 28 und 29. Diese Maschinenoperationen aktualisieren ODDCB 128, Feld 185 und 187 mit den letzten Adressen für die Daten- und Verzeichnisaufzeichnungen. Wenn die Speicherplatte 20 in ein Laufwerk 17 eingebaut wird, dann kennt der Host-Prozessor 10 nicht die Position der radialen Begrenzungen der Daten- und Verzeichnisbereiche. In ODDCB 128 enthalten, wie dies jedoch nicht aus der Darstellung in Figur 6 hervorgeht, ist ein Feld, das die Anzahl der Sektoren im freien Speicherplatz 30 angibt. Dieses Feld ist anfänglich auf Null eingestellt, während die Inhalte des Feldes 185 Letzte Daten auf die Umlauf- und Sektoradresse eingestellt sind, die angibt, daß die Speicherplatte 20 vollständig mit Daten gefüllt ist. Das letzte Verzeichnisfeld 187 wird auf Null gesetzt, um anzuzeigen, daß die Speicherplatte 20 mit Verzeichnisdaten gefüllt ist. Ein Suchparameter J wird willkürlich auf drei eingestellt, um drei Spuren darzustellen, was anzeigt, daß die beiden Spuren eines Verzeichnissegments 58 innerhalb von beliebigen je drei Spuren im Verzeichnisbereich zu finden sind. Der Grund dafür ist, daß es für jede zwei Spuren, die einem Verzeichnissegment zugewiesen sind, eine Spur gibt, die genau einem Verzeichnistitel-Steuerblock zugewiesen ist. Die Maschinenoperationen gehen darüber hinaus von der willkürlichen Annahme aus, daß jedem Verzeichnissektor drei Datensektoren zugewiesen sind. Die niedrigste mögliche Spurennummer in der Suche könnte eins sein (Spur Null enthält die Boot-Daten und die selbstbeschreibenden Steuerdaten, während die Spur mit der höchsten Nummer die Spurennummer ist, die in ODSDCB 35 gespeichert ist), um die Spurenadresse der Ankerbasis minus eins anzuzeigen (die radial am weitesten außen liegende, genau neben der Ankerbasis 40 liegende Spur). Daraufhin aktiviert DOS 11 an Aufruf oder Eintrag 271 die Operation Speicherplatzbegrenzungen Suchen 270, die die nachfolgend beschriebenen Funktionen innerhalb der oben angeführten Parameter ausführt. Die Operation Speicherplatzbegrenzungen Suchen 270 bewirkt, daß der Host-Prozessor 10 die Leseoperation 272 aktiviert, um die im Aufzeichnungsbereich der Speicherplatte 20 radial am weitesten in der Mitte liegende Spur zu lesen. Sie wird als "die hohe Begrenzung" bezeichnet. Da von der Annahme ausgegangen wurde, daß es für jeden Verzeichnissektor drei Datensektoren gibt, wird ein Wert eines ersten Tests für eine Spurenadresse für eine Dreiviertelsumme der niedrigen und der hohen Begrenzung festgesetzt, das heißt, an drei Vierteln der radialen Distanz in Richtung der radial am weitesten innen liegenden Spur. Diese Testspur wird daraufhin in der Leseoperation 272 eingelesen. Wenn die angezeigten Daten sich als Verzeichniseintrag erweisen, dann wird die Spur mit dem hohen Begrenzungswert für den Datenbereich 29, der im Hauptspeicher an Feld 185 von ODDCB 128 gespeichert ist, der Testspurenadresse angeglichen. Dann hat die zu lesende am nächsten getestete Spur eine Adresse, die die Summe des neuen Werts für die hohe Begrenzung für den Datenbereich, summiert auf die niedrige Begrenzung, geteilt durch 2, ist. Diese Prozedur wird wiederholt, bis die radiale Extremität der Verzeichnissegmente und die Extremität des Verzeichnisbereichs gefunden sind.
  • Handelt es sich bei den gelesenen Daten nicht um ein Verzeichnissegment, sondern um Benutzerdaten, dann ist die radiale Position der nächsten Testspur die Hälfte der Summe der soeben gelesenen Spurenadresse (neue niedrige Begrenzung für den Verzeichnisbereich) plus der Adresse der hohen Begrenzung. Dieser Prozeß wird dann wiederholt, vorausgesetzt, es existiert eine Ungleichheit zwischen den soeben getesteten Spuren, und die niedrige Begrenzung oder die hohe Begrenzung sind gleich, um anzuzeigen, daß es keinen freien Speicherplatz gibt (Speicherplatte 20 ist voll).
  • Es kann jedoch von der Annahme ausgegangen werden, daß an drei Vierteln der radial am weitesten innen liegenden Spur ein Verzeichnis existiert, und deshalb können drei radial nebeneinander liegende Spuren gelesen werden, um zu versuchen, ein Verzeichnissegment zu finden. Die Änderung wird fortgesetzt, bis die Spurentestadresse in den Datenbereich kommt. Wenn sich der Datenbereich radial nach innen zum radialen Dreiviertelpunkt erstreckt, dann resultiert der Test wahrscheinlich in einer Nullwiedergabe, das heißt, es wurden weder Daten in der Testspur aufgezeichnet noch ist in dieser Testspur ein Verzeichniseintrag gespeichert. In diesem Fall wird die hohe Begrenzung auf die aktuelle Spurenadresse minus eins eingestellt, das heißt, die nächste radial am weitesten außen liegende Spur könnte Benutzerdaten enthalten. Die radial am weitesten außen liegende Begrenzung für das Verzeichnis wird daraufhin auf die radiale Testspurenadresse plus eins eingestellt, das heißt, die nächste radial am weitesten innen liegende Spur könnte ein Verzeichnissegment enthalten, was darauf hinweist, daß es freien Speicherplatz gibt.
  • In jedem der Tests kann ein gelöschter Sektor auftreten. Dann wird der Testwert J auf drei zurückgesetzt und die Suche nach dem Verzeichnissegment erneut gestartet. Die Testspurennummer wird jedoch um eins erhöht, um nach dem Verzeichnis zu suchen. An diesem Punkt veranlaßt die Operation Speicherplatzbegrenzungen Suchen 270 den Host-Prozessor 10, die Operation Begrenzungen Suchen 273 zu aktivieren, um die Extremitäten der Daten und Verzeichnisbereiche 29 und 28 zu identifizieren. Dieses Modul ermöglicht dem Host-Prozessor 10, die Spur- und Sektornummer der Begrenzungen auf der Speicherplatte 20 zu identifizieren. Diese Begrenzungen sind die Adreßwerte für die hohen und niedrigen Möglichkeiten, die durch die Operation Speicherplatzbegrenzungen Suchen 270 berechnet werden, das heißt, einige Datenbereiche wurden genau wie Verzeichnisbereiche identifiziert, jedoch sind die radialen Umfänge nicht genau bekannt. Ein Spurenadreßwert wird auf die Hälfte der zuletzt identifizierten hohen und niedrigen Begrenzung eingestellt. Ist dieser Testspurenadreßwert gleich dem hohen oder gleich dem niedrigen Wert, dann wurde eine der radialen Extremitäten identifiziert; daraufhin wird eine Leseoperation 272 aktiviert, um die Testspur zu lesen. Wird ein Nullsektor gefunden, dann wird die hohe Begrenzung auf den soeben eingelesenen Spurenadreßwert eingestellt, oder der Null genannte Wert wird als ein Spurenadreßwert mit einem Nullsektor identifiziert. Der Prozeß wird wiederholt, bis ein Nullsektor mit der niedrigsten Adresse gefunden wird. Sobald der niedrigste Nullsektor gefunden ist, wird ein ähnlicher Prozeß verfolgt, um den höchsten oder radial am weitesten innen liegenden Nullsektor zu finden. In diesem Fall wird, falls eine Null gefunden wird, die Testspur auf den niedrigen Adreßwert eingestellt, bis ein Sektor gefunden wird, der nicht gleich Null ist. Dann stellt die Spurenadresse der zuletzt getesteten Spuren die hohe radiale Begrenzung dar.
  • Zusätzlich zur Programmierung in DOS, die zum leichteren Verständnis der vorliegenden Erfindung beschrieben wird, sei darauf hingewiesen, daß die Programmierung, wie sie derzeit in DOS existiert und wie sie in den angeführten IBM- Veröffentlichungen dargestellt wird, ebenfalls einbezogen ist; in späteren Ausführungen von DOS oder Ausführungen vergleichbarer Betriebssysteme ist zu erwarten, daß eine Vielzahl verschiedener Funktionen und Maschinenoperationen verwendet werden, die durch entsprechende Programmierung implementiert wurden. Abweichungen im Aufbau sind beim Anwendungsbereich der vorliegenden Erfindung zu berücksichtigen.
  • Unter Verwendung des oben beschriebenen Verzeichnisses und der oben beschriebenen Aufzeichnungsverfahren resultiert die Erkennung eines Speichermediumfehlers während der Aufzeichnung von Daten oder Verzeichnisinformationen auf der Speicherplatte darin, daß der Sektor, in dem der Speichermediumfehler enthalten ist, ignoriert wird und die Informationen im nächsten verfügbaren Sektor aufgezeichnet werden. Der praktische Effekt dieser Vorgehensweise besteht darin, den nicht aufgezeichneten Teil der aufgezeichneten Daten oder des aufgezeichneten Verzeichnisses entlang der spiralförmigen Spur auf der Speicherplatte 20 um eine Sektorposition zu verschieben. Das Verzeichnis wird so erstellt, daß der fehlerhafte Sektor in der Verzeichnisstruktur ignoriert wird, so, als existiere er überhaupt nicht. Diese Form des Umgangs mit Speichermediumfehlern funktioniert gut beim beschriebenen Verzeichnis und seinen Umfangstrukturen der vorliegenden Erfindung. Die in zusammenhängenden Sektoren unmittelbar vor den fehlerhaften Sektoren stehenden aufgezeichneten Daten sind in einem ersten Umfang enthalten. Die fortgesetzte Aufzeichnung in der spiralförmigen Spur nach dem fehlerhaften Sektor (der fehlerhafte Sektor wird ausgelassen) definiert die Weiterführung eines zweiten unabhängigen Umfangs zusammenhängender Sektoren. Diese Art von Operation macht es erforderlich, daß das Verzeichnis Änderungen von Adressen berücksichtigt, da die Daten ja auf der Speicherplatte 20 aufgezeichnet sind. Dies ist nur ein Beispiel für den Wert der definierten Datenumfänge in der aktuellen Verzeichnisstruktur.
  • Einige Benutzer von Festplattenmedien haben gemäß Beschreibung im vorliegenden Dokument eine Haupt-Festplatte, die zuvor zugeordnete Beziehungen zwischen den physikalischen Sektoren auf einer Platte und der logischen Adressierstruktur von Computerprogrammen, die für die Bearbeitung solcher Speicherdaten vorgesehen sind, enthält. In diesem Fall wird die oben beschriebene Berücksichtigung von Speichermedienfehlern unwirksam, da die physikalischen Adressen der gespeicherten Daten geändert werden, so daß die Computerprogramme nicht mehr zuverlässig auf die auf der Speicherplatte gespeicherten Daten zugreifen können.
  • Entsprechend dieser Situation ermöglicht das Prinzip der vorliegenden Erfindung zwei Mittel (Alternativen) zur Bewältigung von Medienfehlern auf einem einzigen Speicherplattenmedium. Zum Zweck der vorliegenden Beschreibung wird von der Annahme ausgegangen, daß die Master-Platte, auf der das oben beschriebene Computerprogramm zu physikalischen Positionen auf der Platte enthalten ist, an einem Herstellungsstandort für Speicherplatten bereitgestellt wird, auf denen das oben beschriebene Verzeichnis verwendet wird. In Übereinstimmung mit der vorliegenden Erfindung wird ein separater Teil der Speicherplatte 20 entsprechend der Adresse auf der Master-Platte dieser Aufzeichnung zugeordnet oder für sie reserviert. Diese Anordnung ist in Figur 10 auf der Speicherplatte 20A (A steht hierbei für Alternativ- Speicherplattenanordnung) dargestellt. In einer willkürlichen Auswahl wird der Teil, der auf der Speicherplatte 20A zur Speicherung von auf der Master-Speicherplatte zuvor zugeordneten aufgezeichneten Daten zugeordnet ist, reserviert für einen radial am weitesten außen liegenden Teil des Datenaufzeichnungsbereichs 29 (Figur 2) der Speicherplatte 20. Der Speicherplatten-Steuersektor (27) enthält in ODSDCB 36 die Anzahl an Umläufen, die die Daten der Master-Platte enthalten. Auf diese Weise liest ein Controller 15, der zuerst eine Speicherplatte 20 liest, ein ODSDCB 36, in dem steht, daß diese Spuren oder Umläufe eine andere Einrichtung zur Medienfehlerbehebung haben als andere Spuren, das heißt, die Einrichtung zur Medienfehlerbehebung erfordert den Eingriff durch den Controller 15 und möglicherweise des Host-Prozessors 10 anstelle der transparenten Fehlerbehebung, die durch das Prinzip der vorliegenden Erfindung bereitgestellt wird. Um die physikalische Adresse auf Dateninhalte der Master-Platte (nicht dargestellt) auf der Speicherplatte 20A aufrechtzuerhalten, ist es erforderlich, daß die Einrichtung zur Medienfehlerbehebung die Praxis verfolgt, die bei der derzeit modernen magentischen Speicherplattenaufzeichnung angewandt wird, das heißt, im defekten Sektor kann eine Sektorlöschung vorgenommen werden, wonach ein Adreßzeiger auf einen anderen Datenspeicherbereich zeigt. Da es jedoch sein kann, daß der gesamte Sektor für eine Aufzeichnung untauglich geworden ist, muß im fehlerhaften Sektor lediglich angegeben werden, daß dieser Sektor fehlerhaft ist und darin keine Daten aufgezeichnet werden.
  • In Übereinstimmung mit der vorliegenden Erfindung ist an einem radial am weitesten innen liegenden Teil der Speicherplatte beispielsweise sogar in einem radial innen liegenden Speicherbereich des Verzeichnisses 28 ein Alternativ- Speicherbereich 282 zur Unterbringung von Medienfehlern bei der Aufzeichnung von Daten der Master-Platte auf der Speicherplatte. Der radial am weitesten innen liegende Umlauf 280 kann eine Überwachungsspur oder eine Diagnosespur sein, was in der magnetischen und in der optischen Datenaufzeichnung üblich ist. Der Umlauf 281 enthält einen Index auf die Alternativ-Aufzeichnungsbereiche, die durch die defekten Sektoren in dem Teil der Speicherplatte 20A erforderlich werden, in dem die Daten der Master-Platte gespeichert sind. Eine geringe Anzahl an Umläufen 282 stellen den Datenspeicherbereich des Alternativsektors dar. Bei der Aufzeichnung der Daten der Master-Platte in den radial am weitesten außen liegenden zugewiesenen Bereich für diese Daten werden bei der Erkennung eines fehlerhaften Sektors, anstatt die Sektoradressen entlang der spiralförmigen Spur nach unten zu verdrängen, die Daten, die diesem defekten Sektor zugewiesen sind, von der Software unter Verwendung gewöhnlicher Verfahren innerhalb eines Host-Prozessors, der eingesetzt wird, um die Daten der Master-Platte auf der Speicherplatte 20 aufzuzeichnen, beibehalten (nicht dargestellt oder beschrieben). Nach Abschluß der Aufzeichnung behält der Host- Prozessor weiterhin Daten, die für einen oder mehrere fehlerhafte Sektoren im zuvor zugeordneten Datenspeicherbereich der Master-Platte vorgesehen sind. Zu diesem Zeitpunkt werden die Alternativ-Umläufe 282 mit den Daten aufgezeichnet, und unter Verwendung eines Formats, wie es in Figur 10 dargestellt ist, wird ein Index auf diese Alternativ-Daten in Umlauf 281 gesetzt. Die Aufzeichnung in Umlauf 281 sowie in allen anderen Umläufen beginnt in einem Datensektor Null und verläuft im Gegenuhrzeigersinn gemäß Darstellung in Figur 10 zum Datensektor 23. Im Datensektor Null und anderen Datensektoren des Tabellenbereichsumlaufs 281 hat ein erstes Byte 285 einen fest definierten Dateninhalt oder Indikator, der gleich EO ist. Das nächste abwärts liegende Byte des Umlaufs 281 ist eine Sequenznummer SN, die in Bereich 286 gespeichert ist. Der erste Sektor in Umlauf 281, der die Gruppe des Tabelleneintrags enthält, wird als Nummer Null identifiziert. Der nächste Datensektor im selben Umlauf enthält die Sequenznummer eins, und so weiter. Für den Fall, daß in Umlauf 281 ein fehlerhafter Sektor gefunden wird, wird dieser Sektor ignoriert, und der nächste verfügbare Datensektor in Umlauf 281 wird verwendet, um die Tabellendaten aufzuzeichnen, die ursprünglich für den fehlerhaften Sektor vorgesehen waren. Die Sequenznummer in Feld 286 bleibt unabhängig davon, welcher physikalische Datensektor verwendet wird, um diesen Teil der Alternativ-Datenspurtabelle zu speichern, dieselbe. Nach dem Byte 286 enthalten die Byte- Gruppen 287, 288 und 289 ff. die Adressen der fehlerhaften Sektoren im Aufzeichnungsbereich der Master-Daten. Beim Auslesen des Umlaufs 281 bestimmt der lesende Host-Prozessor 10, welche der Gruppen 287, 288 usw. sich auf einen fehlerhaften Sektor bezieht, der von Interesse sein könnte. Die Anzahl an Adressen 287, 288 usw. entspricht der Anzahl an in der Mehrzahl der Spuren 282 verfügbaren Datensektoren. Die logische Position der Adresse des fehlerhaften Bereichs unter den Adressen 287, 288, 289 ff. wird verwendet, um auf den Sektor in den Spuren 282 zu zeigen, die die Daten, die abwechselnd gespeichert werden, speichern. Während beispielsweise die numerischen Inhalte der Adresse 287 (identifiziert als fehlerhafter Zeiger Null) auf den fehlerhaften und gelöschten Datenspeichersektor zeigt, wobei zu berücksichtigen ist, daß die physikalische Position die erste Adresse in einem Umlauf 281 ist, zeigt der Datensektor Null auf den Datensektor Null des radial am weitesten innen liegenden Umlaufs des Bereichs 282. In ähnlicher Weise zeigt der Fehlerzeiger Nummer eins, der die Adresse 288 bildet, auf den Datensektor eins in diesem radial am weitesten innen liegenden Umlauf des Bereichs 282. Dies setzt sich entsprechend für alle Umläufe im Bereich 282 fort. Wird im Alternativ-Umlaufbereich 282 ein fehlerhafter Sektor gefunden, dann enthält der Adreßbereich, der diesem fehlerhaften Sektor entspricht, alle binären Einsen, um anzuzeigen, daß der entsprechende Alternativsektor fehlerhaft ist und nicht verwendet werden kann
  • In Übereinstimmung mit der obigen Darstellung ist ersichtlich, daß ein wirksames Mittel bereitgestellt wird, um eine vielfältige Alternativ-Sektorverwaltung zu ermöglichen, was wiederum vielfältige Adressierarchitekturen auf ein und demselben Aufzeichnungsmedium ermöglicht. In Übereinstimmung mit der vorliegenden Erfindung kann der Datenbereich 29, der den Daten der Master-Platte zugeordnet ist, den größten Teil des zuordnungsfähigen Datenbereichs auffüllen, das heißt, das Verzeichnis 28 kann relativ klein sein und möglicherweise gar nicht existieren; wenn es sich jedoch beispielsweise bei den Master-Daten um ein Computerprogramm handelt, das von einem lesenden Host-Prozessor 10 ausgeführt werden soll, dann können einige Umläufe reserviert werden, um Computerprogramm- Aktualisierungen bereitzustellen, die unter Verwendung eines Host-Prozessors 10 auf die Speicherplatte 20 geschrieben werden. Auf diese Weise kann ein Programmanbieter Aktualisierungen elektronisch an einen Host-Prozessor 10 übertragen, um diese Aktualisierungen auf die Speicherplatte 20 zu kopieren, die als Programm-Aufzeichnungsmedium dient. Danach, wenn der Host-Prozessor 10 das Programm von der Speicherplatte 20 in seinen eigenen Speicher lädt, bezieht er eine Programmierung mit ein (die in diesem Dokument nicht beschrieben wird), die das Verzeichnis 28 durchsucht, um festzustellen, ob Aktualisierungen des ursprünglichen Programms vorhanden sind, die durch die Daten der Master-Platte repräsentiert werden. Da diese Art der Programmierung zu den gewöhnlichen Operationen auf diesem Gebiet gehört, wird sie nicht näher beschrieben.
  • Wir betrachten nun Figur 11 etwas genauer. Eine erhöhte Leistung eines Datenspeichersystems in Übereinstimmung mit der vorliegenden Erfindung wird erreicht, indem man die in dieser Figur dargestellten Anordnungen einbezieht. Der Host-Prozessor 10 umfaßt einen Datenspeicherteil 301 mit beliebigem Zugriff, der der Arbeitsspeicher für den Computer ist. Die Software (nicht dargestellt oder näher beschrieben) des Host-Prozessors 10 ordnet einen Teil des Speichers 301 zu, der als ein Software-Cache-Speicher 306 dient, damit Daten bezüglich der auf der Speicherplatte 20 zu speichernden Daten in den Cache- Speicher gestellt werden können, und ordnet weiterhin einen Cache-Speicher 302 zu, um einen Teil des aktuellen Verzeichnisses zu speichern. Wenn die Such- und Verbindungsfunktion 201, die in Figur 7 dargestellt ist, ein Segment des Verzeichnisses auf der Speicherplatte 20 identifiziert, auf der Datenbereiche identifiziert sind, auf die zugegriffen werden soll, dann wird der gesamte Verzeichnisinhalt des aktuellen Segments 300 im aktuellen Verzeichnis-Cache-Speicher 302 gespeichert, wie dies durch den doppelköpfigen Pfeil 303 dargestellt ist. Der Host-Computer 10 kann die Kopie im aktuellen Verzeichnis-Cache-Speicher 302 aktualisieren. Nach Abschluß der Datenverarbeitungsoperationen wird über den Anwendungsbereich der vorliegenden Erfindung hinaus die aktualisierte Kopie im aktuellen Segment 300 gespeichert, vorausgesetzt, dieser Speicherplatz ist noch immer verfügbar. Wenn das aktuelle Segment 300 gefüllt ist, dann empfängt das letzte Verzeichnissegment, das noch immer aufzeichnungsbereite Sektoren enthält, den aktualisierten Verzeichnisteil. In ähnlicher Weise werden die Daten, die in Übereinstimmung mit einem Dateinamen 305 gespeichert sind, im Daten-Cache-Speicher 306 gespeichert. Der Host-Computer 10 operiert daraufhin mit den Daten, die im Daten-Cache-Speicher 306 gespeichert sind, und mit dem Verzeichnisteil, der im aktuellen Verzeichnis-Cache-Speicher 302 gespeichert ist. Nach Abschluß der Datenverarbeitungsoperationen werden die aktualisierten Daten im Daten-Cache-Speicher 306 auf Speicherplatte 20 gespeichert, wie dies bereits für die aktualisierten Daten beschrieben wurde.
  • Es wird davon ausgegangen, daß in vielen Operationen dieses aktuelle Segment 300 dasjenige Segment ist, das noch in das Verzeichnis eingefügt werden muß, das heißt, dieses Verzeichnis ist noch nicht vollständig gefüllt. Es wird darauf hingewiesen, daß die Inhalte des aktuellen Segments 300 unabhängig davon, auf welchen Dateinamen zugegriffen wird oder werden soll, an den Host-Computer 10 weitergegeben werden. Es wird außerdem darauf hingewiesen, daß der Titelbereich 310 sich radial außerhalb des aktuellen Segments 300 befindet, jedoch nicht dem aktuellen Verzeichnis-Cache-Speicher 302 zugeordnet ist. Diese Anordnung berücksichtigt die Initialisierungsverfahren der Speicherplatte 20, die in bezug auf Figur 5 beschrieben werden, in der die unteren oder etwas direkteren Teile des Verzeichnisses näher zum Anfangspunkt als die Indexteile dargestellt sind.
  • Die Operation von Cache-Speichern durch Host-Computer und die Datenübertragung zwischen den Cache-Speichern und das Anlegen von Sicherheitskopien beispielsweise auf der Speicherplatte 20 sind bekannte Operationen, die daher nicht näher ausgeführt werden. Wichtig ist, darauf hinzuweisen, daß die Inhalte des gesamten aktuellen Segments dem aktuellen Verzeichnis-Cache- Speicher zur Bereitstellung eines schnellen Zugriffs auf die Verzeichnisidentifikationen und Adressen aller Dateinamen des aktuellen Segments zugeordnet sind. In einer Anwendungsversion in diesem Teil der vorliegenden Erfindung wird, sobald eine Datenübertragung zwischen einem Host-Computer 10 und einer Speicherplatte 20 initiiert wird, das aktuelle Segment, das identifiziert wurde, immer dem aktuellen Verzeichnis-Cache- Speicher zugeordnet. Für jeden Dateinamen, der nicht im aktuellen Segment, auf das zugegriffen werden soll, enthalten ist, ersetzt das Segment, das diesen neuen Dateinamen identifiziert, das aktuelle Segment im aktuellen Verzeichnis- Cache-Speicher 302.
  • Ein Datenumfang ist eine Reihe zusammenhängender Datenspeichersektoren, die Daten aus einer gegebenen Datei speichern. Ein erster Datenumfang 320 (Figur 12) beispielsweise umfaßt neun Datenspeichersektoren, von denen jeder zwei Aufzeichnungen speichert, die in den neun Sektoren von 1 bis 18 numeriert sind. Die umkreisten Zahlen 4, 8 und 9 geben den innerhalb eines Sektors zugeordneten Speicherplatz an, in dem keine Daten gespeichert sind. Die am niedrigsten numerierte Aufzeichnung in jedem der Datenspeichersektoren wird mit der Gleichung NX-(N-1) bestimmt, wobei N die Anzahl der Aufzeichnungen ist, die in einem gegebenen Sektor gespeichert werden soll, und X die logische Zahl des Sektors innerhalb einer Datei ist. Die logische Zahl eines Sektors darf nicht mit der physikalischen Zahl eines Sektors auf der Speicherplatte verwechselt werden. Beide Zahlen und ein X sind Ganzzahlen. In der ersten Aufzeichnung wurde ein fehlerhafter Sektor auf der Speicherplatte gefunden, was durch die Ziffer 321 angegeben ist. Die Aufzeichnung wurde fortgesetzt sowie auch eine zweite Gruppe zusammenhängender Sektoren, die durch die Ziffer 322 angegeben wird und die logischen Sektoren 10 und 11 enthält. Im zweiten Umfang 322 werden die beiden Aufzeichnungen 20 und 21 im logischen Sektor 10 bzw. 11 aufgezeichnet, während die Aufzeichnungsbereiche 19 und 22 keine gespeicherten Daten enthalten. Es wird darauf hingewiesen, daß, während ein Sektor verwendet werden könnte, um die Aufzeichnungen 20 und 21 zu speichern, zwei Sektoren zugeordnet werden, um im unlöschbaren Medium eine einfache Aktualisierungsprozedur zu gewährleisten.
  • Wir wollen von der Annahme ausgehen, daß der logische Sektor 5 aktualisiert werden soll, indem die Aufzeichnung 9 eingefügt und die Aufzeichnung 10 unverändert bleibt. Nach der Aktualisierung hat man nicht zwei Datenumfänge, sondern es sind vier Datenumfänge erforderlich, um die aktualisierten aufgezeichneten Daten zu identifizieren. Der aktualisierte logische Sektor 5 enthält nun die Aufzeichnungen 9 und 10, wie dies an Ziffer 323 angegeben ist. Diese Aktualisierung unterteilt den ursprünglichen Datenumfang in drei Teile. Ein erster Teil ist ein Datenumfang 324 einschließlich der logischen Sektoren 1 bis 4; ein zweiter Datenumfang 325, der nur den logischen Sektor 5 umfaßt (gemäß Angabe durch Ziffer 323), und ein dritter Umfang 326 besteht aus den logischen Sektoren 6 bis 9. Der andere Datenumfang 322 bleibt unverändert (gemäß Angabe durch Ziffer 327). Die logischen Sektoren innerhalb jeder Datei haben keinerlei physikalische Beziehung zu den physikalischen Sektoren auf der Speicherplatte 20, außer innerhalb eines Datenumfangs. Logische Sektoren werden verwendet, um die Verzeichniseinträge für die Datenversionen zu identifizieren, wie dies an früherer Stelle beschrieben wurde.

Claims (5)

1. Ein Datenspeichermedium (20) mit einem darauf gespeicherten Verzeichnis und mit adressierbaren Speicherbereichen (28) für das Verzeichnis und mit adressierbaren Speicherbereichen (29) zur Speicherung von Benutzerdaten, die durch Steuerdaten, die im Verzeichnisspeicherbereich gespeichert sind, identifiziert werden können, wobei die genannten Benutzerdaten in Dateien (66) angeordnet und durch Dateinamen logisch adressierbar sind, wobei das Medium folgendes umfaßt:
eine erste Mehrzahl von Verzeichnistitel-Steuerblöcken (50), die in einer Verknüpfungsliste logisch verknüpft sind, wobei jeder Verzeichnistitel-Steuerblock einen Titelteil (53) und einen Indexteil (54) aufweist; und
eine erste Mehrzahl von Verzeichnissegmentsätzen (58) wobei jeder solcher Satz eine Mehrzahl von Verzeichnissegmenten zur Speicherung von Steuerdaten und Adreßdaten, die auf die genannten Dateien, in denen die Benutzerdaten gespeichert sind, zeigen, aufweist;
wobei der genannte Titelteil (53) jedes der genannten Verzeichnistitel-Steuerblöcke (50) einen Adreßzeiger (55) auf entsprechende der genannten Verzeichnissegmente in einem Verzeichnissegmentsatz aufweist, so daß in einem betreffenden Verzeichnistitel-Steuerblock auf alle Segmente in einem Satz durch die Adreßzeiger gezeigt wird;
dadurch charakterisiert, daß:
der Indexteil (57, 60), der Dateinamen für Steuerdaten besitzt, die mit einem der genannten Verzeichnissegmentsätze (58, 61) übereinstimmen, in einem der genannten Verzeichnistitel-Steuerblöcke (50) gespeichert und in der genannten Verknüpfungsliste in aufsteigender Richtung um eine Position vom Verzeichnistitel-Steuerblock, der den Adreßzeiger auf den Verzeichnissegmentsatz enthält, logisch versetzt ist.
2. Ein Medium gemäß Anspruch 1, wobei:
das Speichermedium (20) ein WORM-Speichermedium mit einer Mehrzahl an Speicherbereichen umfaßt, wobei die ersten Speicherbereiche zur Speicherung der Verzeichnistitel- Steuerblöcke (50) dienen, wobei die zweiten Speicherbereiche zur Speicherung der Verzeichnissegmentsätze (52) dienen und wobei die dritten Speicherbereiche zur Speicherung von Daten (29) dienen, die durch die Verzeichnissegmentsätze definiert werden;
die dritten Speicherbereiche physikalisch von den ersten und zweiten Speicherbereichen getrennt sind; und
die ersten und zweiten Speicherbereiche, die mit einem gegebenen dritten Speicherbereich übereinstimmen, sich aufeinanderfolgend auf dem Speichermedium befinden.
3. Ein Medium gemäß Anspruch 2, wobei:
jedes der genannten Verzeichnissegmente eine numerische Anzeige der Versionsnummer der auf dem Datenspeichermedium gespeicherten Daten umfaßt, wobei jede Version eine aktualisierte oder geänderte Kopie der Daten ist und wobei die numerische Anzeige bei jeder aktualisierten oder geänderten Version inkrementiert wird; und
jedes Verzeichnissegment Adreßzeiger auf alle Versionen, die zuvor auf dem Datenspeichermedium gespeichert wurden,
enthält, so daß eine chronologische Entwicklung der Aktualisierungen des Verzeichnissegments vorliegt.
4. Ein Medium gemäß Anspruch 1, wobei:
es sich bei dem Medium um ein WORM-Speichermedium handelt; und
jeder Titelsteuerblock einen Dateinamenindex (54) umfaßt, um Dateien zu identifizieren, auf die von einem zweiten Verzeichnissegmentsatz gezeigt wird, bei dem es sich nicht um denjenigen Verzeichnissegmentsatz handelt, der zum Titelsteuerblock gehört, so daß eine Verzeichnissuche nach Dateinamen auf die Durchsuchung der genannten Dateinamenindizes in den Titelsteuerblöcken begrenzt werden kann.
5. Ein Verfahren für den Betrieb eines Datenspeichersystems, bei dem Daten auf einem Datenspeichermedium (20) mit adressierbaren Speicherbereichen (28) für ein Verzeichnis und mit adressierbaren Speicherbereichen (29) für die Speicherung von Benutzerdaten, die durch Steuerdaten, die in einem Verzeichnisspeicherbereich gespeichert sind, identifiziert werden können, seriell aufgezeichnet werden können, wobei die genannten Benutzerdaten in Dateien organisiert und durch Dateinamen lokal adressierbar sind, wobei das Verfahren folgendes umfaßt:
Anlegen eines Verzeichnisses im Verzeichnisspeicherbereich (28), wobei das genannte Verzeichnis folgendes umfaßt:
eine erste Mehrzahl von Verzeichnistitel-Steuerblöcken (50), die in einer Verknüpfungsliste logisch verknüpft sind, wobei jeder Verzeichnistitel-Steuerblock (50) einen Titelteil (53) und einen Indexteil (54) aufweist, wobei
der Titelteil (53) jedes der genannten Verzeichnistitel- Steuerblöcke (50) einen adressierbaren Zeiger (55) auf entsprechende der genannten Verzeichnissegmente in einem Verzeichnissegmentsatz (58) besitzt, so daß auf alle Segmente in einem Satz durch die Adreßzeiger in einem entsprechenden Verzeichnistitel-Steuerblock gezeigt wird; und
eine erste Mehrzahl von Verzeichnissegmentsätzen (58), wobei jeder solcher Satz eine Mehrzahl von Verzeichnissegmenten zur Speicherung von Steuerdaten und Adreßdaten, die auf die genannten Dateien, in denen die Benutzerdaten gespeichert sind, zeigen, aufweist;
der wiederholte Empfang von Benutzerdatenaufzeichnungen zur Speicherung, wobei die genannten empfangenen Benutzerdaten im Benutzerdaten-Speicherbereich (29) gespeichert werden;
dadurch charakterisiert, daß das Verfahren weiterhin folgendes umfaßt:
die Speicherung von Dateinamen für Steuerdaten entsprechend einem der genannten Verzeichnissegmentsätze (58, 61) in einem der genannten Verzeichnistitel- Steuerblöcke (50), die in der genannten Verknüpfungsliste in aufsteigender Richtung um eine Position vom Verzeichnistitel-Steuerblock (50), der den Adreßzeiger auf den Verzeichnissegmentsatz (58, 61) enthält, logisch versetzt ist.
DE3856090T 1987-03-26 1988-03-23 Aus Einheitsfunktionsgruppen aufgebaute Dateienspeicherungszuordnungstabellen für Dateienspeichereinheiten grosser Kapazität Expired - Fee Related DE3856090T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/030,393 US4827462A (en) 1987-03-26 1987-03-26 Modular data storage directories for large-capacity data storage units

Publications (2)

Publication Number Publication Date
DE3856090D1 DE3856090D1 (de) 1998-02-05
DE3856090T2 true DE3856090T2 (de) 1998-06-25

Family

ID=21854007

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3856090T Expired - Fee Related DE3856090T2 (de) 1987-03-26 1988-03-23 Aus Einheitsfunktionsgruppen aufgebaute Dateienspeicherungszuordnungstabellen für Dateienspeichereinheiten grosser Kapazität

Country Status (6)

Country Link
US (1) US4827462A (de)
EP (1) EP0284037B1 (de)
JP (1) JPH0664548B2 (de)
BR (1) BR8801415A (de)
CA (1) CA1281424C (de)
DE (1) DE3856090T2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004001207A1 (de) * 2004-01-06 2005-07-28 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zum Aktualisieren von Daten auf einem Plattenspeichermedium
DE102010005172B4 (de) * 2010-01-20 2016-01-14 Siemens Aktiengesellschaft Verfahren zum Betreib eines Archivierungssystems für medizinische Bilddatensätze und Archivierungssystem

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0731901B2 (ja) * 1987-03-11 1995-04-10 ソニー株式会社 デイスク記録再生装置
US5008820A (en) * 1987-03-30 1991-04-16 International Business Machines Corporation Method of rapidly opening disk files identified by path names
JP2543523B2 (ja) * 1987-05-22 1996-10-16 パイオニア株式会社 ディスク及びその再生装置
US5053948A (en) * 1988-01-29 1991-10-01 Wisconsin Alumni Research Foundation File index system for mass storage device
US5053945A (en) * 1988-10-06 1991-10-01 Alphatronix System and method for performing a multi-file transfer operation
US5093915A (en) * 1988-11-02 1992-03-03 Xerox Corporation Method for selectively loading bootable fiber to control apparatus based upon the corresponding bootable attributes
JP2637817B2 (ja) * 1989-02-13 1997-08-06 パイオニア株式会社 情報再生装置
JPH02236612A (ja) * 1989-03-10 1990-09-19 Sony Corp ディスク選択制御方法
EP0389399A3 (de) * 1989-03-20 1993-01-20 International Business Machines Corporation Zu einem WORM-optischen Träger gehörende Struktur eines Verzeichnisses
US5491807A (en) * 1989-03-20 1996-02-13 International Business Machines Corporation System and method for worm volume management of new and updated data files using variable threshold block addresses
JPH0646488B2 (ja) * 1989-04-21 1994-06-15 株式会社東芝 記憶媒体のオートチェンジャ装置
US5398142B1 (en) * 1989-05-31 1997-09-16 Raxco Inc Method for eliminating file fragmentation and reducing average seek times in a magnetic disk media environment
JPH087981B2 (ja) * 1989-08-30 1996-01-29 日本ビクター株式会社 追加方式の追記型情報記録媒体及びその情報管理方法
JPH03149614A (ja) * 1989-08-31 1991-06-26 Univ California 情報処理システム及び記憶処理方法
JPH07104812B2 (ja) * 1989-09-11 1995-11-13 日本ビクター株式会社 追記型情報記録媒体の情報管理方法
US5504873A (en) * 1989-11-01 1996-04-02 E-Systems, Inc. Mass data storage and retrieval system
US5280468A (en) * 1989-11-16 1994-01-18 Olympus Optical Co., Ltd. Optical recording medium
EP0429727B1 (de) * 1989-11-30 1996-01-17 Sony Corporation Datenrecorder
JP2822525B2 (ja) * 1990-01-12 1998-11-11 ソニー株式会社 記録媒体の再生装置及び再生方法並びに検索方法
JPH0833864B2 (ja) * 1990-01-30 1996-03-29 富士通株式会社 データ保全方式
US5095423A (en) * 1990-03-27 1992-03-10 Sun Microsystems, Inc. Locking mechanism for the prevention of race conditions
US5043967A (en) * 1990-08-20 1991-08-27 International Business Machines Corporation Structured data storage method and medium
US5537652A (en) * 1990-08-20 1996-07-16 International Business Machines Corporation Data file directory system and method for writing data file directory information
JP3141242B2 (ja) * 1990-08-24 2001-03-05 ソニー株式会社 光ディスク記録装置
US5347651A (en) * 1991-04-23 1994-09-13 International Business Machines Corporation System for allocating worm optical medium file storage in groups of fixed size addressable areas while tracking unrecorded areas and end of volume
JP2625609B2 (ja) * 1991-07-10 1997-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション ディスク記憶装置
JPH05313980A (ja) * 1992-05-07 1993-11-26 Olympus Optical Co Ltd 情報記録方法
JPH0628778A (ja) * 1992-05-14 1994-02-04 Matsushita Electric Ind Co Ltd 光ディスクおよび光情報記録再生装置
JP3435703B2 (ja) * 1992-05-20 2003-08-11 ソニー株式会社 再生装置、再生方法
US6529451B2 (en) * 1992-10-05 2003-03-04 Mitsubishi Denki Kabushiki Kaisha Optical disk and optical disk drive device
US7548497B2 (en) * 1992-10-05 2009-06-16 Mitsubishi Denki Kabushiki Kaisha Optical disk and optical disk drive device
JP3078686B2 (ja) 1992-10-05 2000-08-21 三菱電機株式会社 光ディスク、光ディスク駆動装置および光ディスクの書き込み読み出し方法
US5685003A (en) * 1992-12-23 1997-11-04 Microsoft Corporation Method and system for automatically indexing data in a document using a fresh index table
EP0612071B1 (de) * 1993-02-19 2000-04-26 Canon Kabushiki Kaisha Datenwiedergabeverfahren und Datenwiedergabegerät
SG144685A1 (en) * 1993-06-08 2008-08-28 Matsushita Electric Ind Co Ltd Optical disk, and information recording/reproduction apparatus
US5933839A (en) * 1993-07-23 1999-08-03 Kabushiki Kaisha Toshiba Distributed file system for renewing data with high integrity
JP3662946B2 (ja) * 1993-09-22 2005-06-22 株式会社東芝 ファイル管理方式および携帯可能電子装置
US5523903A (en) * 1993-12-23 1996-06-04 International Business Machines Corporation Sector architecture for fixed block disk drive
MY112118A (en) * 1993-12-23 2001-04-30 Hitachi Global Storage Tech Netherlands B V System and method for skip-sector mapping in a data recording disk drive.
US5660176A (en) * 1993-12-29 1997-08-26 First Opinion Corporation Computerized medical diagnostic and treatment advice system
US5664172A (en) * 1994-07-19 1997-09-02 Oracle Corporation Range-based query optimizer
US5754351A (en) * 1994-09-06 1998-05-19 Seagate Technology, Inc. Embedded header for split data sectors in zoned bit recorded disc drives
US5590320A (en) * 1994-09-14 1996-12-31 Smart Storage, Inc. Computer file directory system
US5812882A (en) * 1994-10-18 1998-09-22 Lanier Worldwide, Inc. Digital dictation system having a central station that includes component cards for interfacing to dictation stations and transcription stations and for processing and storing digitized dictation segments
JP3666907B2 (ja) * 1994-10-20 2005-06-29 富士通株式会社 データベース用ファイル格納管理システム
WO1997008623A1 (en) * 1995-08-23 1997-03-06 Symantec Corporation Coherent file system access during defragmentation operations on a storage media
JP2963038B2 (ja) * 1995-11-30 1999-10-12 三洋電機株式会社 ディスク記録再生装置及び該装置の制御方法
US5850566A (en) * 1995-12-13 1998-12-15 International Business Machines Corporation Method for storing multiple files without header information and for each storage medium maintaining a separate stored index including header information for each file
US6366930B1 (en) 1996-04-12 2002-04-02 Computer Associates Think, Inc. Intelligent data inventory & asset management systems method and apparatus
US6560701B1 (en) 1997-02-10 2003-05-06 International Business Machines Corporation Alternate boot record
JP3546654B2 (ja) * 1997-08-07 2004-07-28 株式会社日立製作所 情報記録装置及び情報記録方法
US6215747B1 (en) * 1997-11-17 2001-04-10 Micron Electronics, Inc. Method and system for increasing the performance of constant angular velocity CD-ROM drives
KR100524297B1 (ko) * 1998-03-24 2006-01-12 엘지전자 주식회사 재기록 가능한 디스크와 이를 이용한 기록 방법
US7406250B2 (en) * 1998-05-15 2008-07-29 Kabushiki Kaisha Toshiba Information recording method and information reproducing method
EP1026669B1 (de) * 1999-02-02 2002-01-02 Matsushita Electric Industrial Co., Ltd. Optisches Aufzeichnungsmedium und Aufzeichnungs- und Wiedergabeverfahren und Gerät dafür
US6552982B1 (en) 1999-03-08 2003-04-22 Matsushita Electric Industrial Co., Ltd. Information recording medium, information recording and reproduction method, and information recording and reproduction apparatus
US6330210B1 (en) * 1999-04-29 2001-12-11 Hewlett-Packard Company Data structure for control information on rewriteable data storage media
US20030157292A1 (en) * 1999-06-23 2003-08-21 Dataplay, Inc. Miniature optical disk for data storage
JP2001155346A (ja) * 1999-11-26 2001-06-08 Toshiba Corp 情報記録媒体、情報記録装置、情報記録方法、情報再生装置、情報再生方法
JP3991543B2 (ja) 2000-01-11 2007-10-17 株式会社日立製作所 撮像装置
US6990058B1 (en) 2000-04-03 2006-01-24 Dphi Acquisitions, Inc. Structure and method for storing data on optical disks
US6738333B1 (en) 2000-05-30 2004-05-18 Dphi Acquisitions, Inc. Format for recording data in a storage disk
US7051054B1 (en) * 2000-05-30 2006-05-23 Dphi Acquisitions, Inc. Method and apparatus for emulating read/write file system on a write-once storage disk
EP1436700A2 (de) * 2000-05-30 2004-07-14 DPHI Aquisitions, Inc. Fehlerverwaltungssystem für einmal beschreibbare speicherplatte
JP2002082825A (ja) * 2000-06-23 2002-03-22 Sharp Corp ファイル管理方法
DE10034053A1 (de) * 2000-07-13 2002-01-24 Abb Research Ltd Anordnung von Daten auf einem optischen oder magnetooptischen Datenträger
US6798594B2 (en) * 2000-10-10 2004-09-28 Seagate Technology Llc Position sensing system for a disc drive using micro-servo sectors and side-by-side R/W recording elements
US7180849B2 (en) * 2001-05-18 2007-02-20 Sharp Kabushiki Kaisha Optical storage medium enabling uniform light transmittance, optical read/write apparatus for same, and optical read/write method for same
US20050262033A1 (en) * 2002-03-29 2005-11-24 Kazuhiko Yamashita Data recording apparatus, data recording method, program for implementing the method, and program recording medium
US7514037B2 (en) * 2002-08-08 2009-04-07 Kobe Steel, Ltd. AG base alloy thin film and sputtering target for forming AG base alloy thin film
US7613773B2 (en) * 2002-12-31 2009-11-03 Rensselaer Polytechnic Institute Asynchronous network audio/visual collaboration system
US7869315B2 (en) * 2003-02-28 2011-01-11 Samsung Electronics Co., Ltd. Write-once optical disc having update area and access area
US7447786B2 (en) * 2003-05-09 2008-11-04 Oracle International Corporation Efficient locking of shared data that is accessed for reads in a cluster database
US7441097B2 (en) * 2003-09-10 2008-10-21 Seagate Technology Llc Data storage system and method for adaptive reconstruction of a directory structure
US7663990B2 (en) * 2004-05-21 2010-02-16 Samsung Electronics Co., Ltd. Optical recording medium having access control area and method for recording or reproducing thereof
US20060026432A1 (en) * 2004-07-30 2006-02-02 Weirauch Charles R Drive tracking system for removable media
US7877543B2 (en) * 2004-12-03 2011-01-25 Hewlett-Packard Development Company, L.P. System and method for writing data and a time value to an addressable unit of a removable storage medium
US20060218201A1 (en) * 2005-03-24 2006-09-28 International Business Machines Corporation System and method for effecting thorough disposition of records
WO2006103679A2 (en) * 2005-04-01 2006-10-05 Ged-I Ltd. A method for data storage protection and encryption
KR20080036946A (ko) * 2005-08-29 2008-04-29 소니 가부시끼 가이샤 기록 장치, 기록 방법, 재생 장치, 재생 방법, 프로그램 및기록 매체
JP5296548B2 (ja) * 2006-11-06 2013-09-25 パナソニック株式会社 記録装置
US8631235B2 (en) * 2007-08-08 2014-01-14 Oracle America, Inc. System and method for storing data using a virtual worm file system
US8095509B2 (en) * 2007-08-11 2012-01-10 Novell, Inc. Techniques for retaining security restrictions with file versioning
US20100250726A1 (en) * 2009-03-24 2010-09-30 Infolinks Inc. Apparatus and method for analyzing text in a large-scaled file
US9171044B2 (en) * 2010-02-16 2015-10-27 Oracle International Corporation Method and system for parallelizing database requests
US9405668B1 (en) * 2011-02-15 2016-08-02 Western Digital Technologies, Inc. Data storage device initialization information accessed by searching for pointer information
US10802740B2 (en) * 2016-04-21 2020-10-13 Netapp, Inc. Systems, methods, and computer readable media providing arbitrary sizing of data extents
US10459810B2 (en) 2017-07-06 2019-10-29 Oracle International Corporation Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery
KR102521054B1 (ko) 2017-10-18 2023-04-12 삼성전자주식회사 조기 중단에 기반한 심층 신경망의 연산 제어 방법 및 시스템
CN110321325B (zh) * 2019-06-21 2024-05-10 腾讯科技(深圳)有限公司 文件索引节点查找方法、终端、服务器、***及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4468728A (en) * 1981-06-25 1984-08-28 At&T Bell Laboratories Data structure and search method for a data base management system
US4420807A (en) * 1981-08-31 1983-12-13 International Business Machines Corporation Selectively holding data in a buffer for defective backing store tracks
US4408728A (en) * 1981-12-21 1983-10-11 Brunswick Corporation Anti-reverse actuator mechanism
US4611272A (en) * 1983-02-03 1986-09-09 International Business Machines Corporation Key-accessed file organization
JPS59165161A (ja) * 1983-03-11 1984-09-18 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン ワード・プロセッシング・システムにおけるデータ・セットのボリューム回復方法
JPS6074020A (ja) * 1983-09-30 1985-04-26 Toshiba Corp 記憶装置
US4633393A (en) * 1983-10-21 1986-12-30 Storage Technology Partners Ii Generic key for indexing and searching user data in a digital information storage and retrieval device
US4575827A (en) * 1984-05-18 1986-03-11 International Business Machines Corporation Self-archiving data recording

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004001207A1 (de) * 2004-01-06 2005-07-28 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zum Aktualisieren von Daten auf einem Plattenspeichermedium
DE102010005172B4 (de) * 2010-01-20 2016-01-14 Siemens Aktiengesellschaft Verfahren zum Betreib eines Archivierungssystems für medizinische Bilddatensätze und Archivierungssystem

Also Published As

Publication number Publication date
US4827462A (en) 1989-05-02
BR8801415A (pt) 1988-11-01
CA1281424C (en) 1991-03-12
DE3856090D1 (de) 1998-02-05
EP0284037B1 (de) 1997-12-29
JPH0664548B2 (ja) 1994-08-22
EP0284037A2 (de) 1988-09-28
EP0284037A3 (de) 1993-03-03
JPS63244145A (ja) 1988-10-11

Similar Documents

Publication Publication Date Title
DE3856090T2 (de) Aus Einheitsfunktionsgruppen aufgebaute Dateienspeicherungszuordnungstabellen für Dateienspeichereinheiten grosser Kapazität
DE68913605T2 (de) Verfahren zur Handhabung defekter Sektoren auf einem plattenförmigen Informations-Aufzeichnungsträger und Gerät zur Durchführung des Verfahrens.
DE3780807T2 (de) Verfahren zum schnellen oeffnen von mit pfadnamen identifizierten plattendateien.
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE69032517T2 (de) Verfahren und System zum dynamischen Identifizieren von Datenträgern in einem Gestaltungsdateisystem
DE69414556T2 (de) Schnell loeschbare datei
DE69333906T2 (de) Verfahren und System für die Dateienverwaltung mit einem schnell löschbaren, programmierbaren ROM
DE69130312T2 (de) Dateisystem mit Schreib/Lesespeicher und einmaligen Schreib- und mehrmaligen Lese-speicher
DE69623720T2 (de) Verfahren zum Aufräumen eines Flash-Speichers mit Übersetzungsschicht
DE69429651T2 (de) Informationsverwaltungsverfahren, datenaufzeichnungsträger und -verfahren, informationswiederauffindungsverfahren und -gerät
DE69431499T2 (de) Meta-data-Struktur und Handhabung
DE69431186T2 (de) Verfahren und Dateisystem zur Zuordnung von Datei-Blöcken zu Speicherplatz in einem RAID-Plattensystem
DE69533570T2 (de) Verfahren und System zum Erkennen von Datenverlust in einem hierarchischen Datenspeichersystem
DE69513956T2 (de) Datenspeicherverwaltung für in einem netzwerk zusammengeschaltete prozessoren
DE69310908T2 (de) Verfahren und geraet um nicht loeschbare dateien auf ein speichermedium zu schreiben
DE69623407T2 (de) Verfahren zur Überprüfung der Blockzuordnung eines Flash-Speichers mit Übersetzungsschicht
DE69528430T2 (de) Verfahren und System zum Auswählen von Daten für Migration in einem hierarchischen Datenspeichersystem mit Frequenzverteilungstabellen
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE69321901T2 (de) Redundante Speicherplattenmatrix mit verbesserter Schreib- und Lesegeschwindigkeit
DE60129025T2 (de) Speicherbereichszuordnung in einem dateisystem zum beschreiben beliebiger bereiche
DE69530405T2 (de) Schnappschuss von auf einem massenspeichersystem gespeicherten daten
DE69612752T2 (de) Speicheranordnung
DE69600754T2 (de) Aufteilung einer Teilung in einem Plattenspeichersystem
DE69421370T2 (de) Verfahren und Vorrichtung zur Datenspeicherung
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee