DE3743890A1 - Verfahren zum schnellen eroeffnen von plattendateien - Google Patents

Verfahren zum schnellen eroeffnen von plattendateien

Info

Publication number
DE3743890A1
DE3743890A1 DE19873743890 DE3743890A DE3743890A1 DE 3743890 A1 DE3743890 A1 DE 3743890A1 DE 19873743890 DE19873743890 DE 19873743890 DE 3743890 A DE3743890 A DE 3743890A DE 3743890 A1 DE3743890 A1 DE 3743890A1
Authority
DE
Germany
Prior art keywords
file
entry
files
drive
main memory
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.)
Granted
Application number
DE19873743890
Other languages
English (en)
Other versions
DE3743890C2 (de
Inventor
Kenneth Walter Christopher Jr
Barry Alan Feigenbaum
Jin Kim
Douglas Carleton Love
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 DE3743890A1 publication Critical patent/DE3743890A1/de
Application granted granted Critical
Publication of DE3743890C2 publication Critical patent/DE3743890C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Computer And Data Communications (AREA)

Description

Die Erfindung bezieht sich auf ein Verfahren zum Eröffnen von Dateien nach dem Oberbegriff des Anspruchs 1.
Die Erfindung wurde entworfen als eine Verbesserung eines bekannten, kommerziell verfügbaren Systems von einem Typ, in welchem Hardware, wie z. B. in IBM PC, unter einem Plattenbetriebssystem (Disk Operating System, DOS) betrieben wird, und in welchem Dateien auf Festplatten unter Verwendung von Inhaltsverzeich­ nissen mit Baumstruktur und Pfadnamen gespeichert werden. Die Information ist auf einer Platte gemäß eines vorbestimmten Musters von Zylindern und Sektoren gespeichert, wobei jeder Sektor eine vorbestimmte Zahl von Bytes enthält. Um zu einem gewünschten Sektor zuzugreifen, muß der Lese/Schreib-Kopf zunächst zu dem Zylinder bewegt werden, der den gewünschten Sektor enthält, und die Platte muß am Kopf vorbei bewegt werden, bis der gewünschte Sektor erreicht ist, dann wird der Sektor gelesen und sein Inhalt in einem Puffer gespeichert. Betrachtet man den gesamten Zeitaufwand, der notwendig ist, um auf Daten einer Platte zuzugreifen, dann sieht man, daß die haupt­ sächliche Verzögerung durch die physische Bewegung des Kopfes zustande kommt. Wo eine Anwendung eine große Eingabe/Ausgabe (E/A) Aktivität erfordert, ist es wünschenswert, die Kopfbewegung soweit wie möglich zu reduzieren.
Dateien werden auf der Platte in einer Gruppe (Cluster) oder in Gruppen von Sektoren gespeichert, wobei jedes Cluster eine vorbestimmte Zahl von Sekto­ ren umfaßt. Jedes Cluster hat eine eindeutige, eigene Startadresse. Die Orte, an denen die Dateien auf einer Platte gespeichert sind, werden mittels einer Dateizu­ ordnungstabelle (FAT, File Allocation Table), die ihrerseits auf der Platte gespeichert ist, regi­ striert. Jede Position in der FAT ist einem anderen Cluster zugeordnet und enthält einen Eintrag, welcher besagt, daß keine weiteren Cluster mit einer Datei verbunden sind, oder welcher auf das nächste Cluster einer Datei zeigt. Kleine Dateien sind in einem einzigen Cluster enthalten. Lange Dateien sind in Clustern enthalten, die miteinander verkettet sind.
Dateien werden durch die Benutzung von Inhaltsver­ zeichnissen mit Baumstruktur aufgefunden. Jede Platte enthält ein Stamm(inhalts)verzeichnis, viele Un­ ter(inhalts)verzeichnisse und eine Vielzahl von Dateien. Eine gegebene Datei mag sich am Ende eines Pfades, der durch das Stammverzeichnis und mehrere Unterverzeichnisse geht, befinden. Jedes Verzeichnis enthält Einträge über zusätzliche Verzeichnisse und Dateien. Eine spezielle Datei kann durch die Angabe von Laufwerk, Pfad und Dateinamen identifiziert werden; z. B. C:Verz 1/Verz 2/Datei 1 identifiziert einen Dateinamen Datei 1, der sich in einem Verzeichnis Verz 2 befindet, welches ein Unterverzeichnis von Verz 1 ist und darin aufgeführt wird, wobei Verz 1 ein Unterver­ zeichnis vom Stammverzeichnis des Laufwerks C ist und darin aufgeführt wird.
Wenn eine Datei eröffnet wird, ist es notwendig, auf das Laufwerk zuzugreifen und durch alle Verzeichnisse zu suchen, die in dem Pfad angegeben sind, um das Verzeichnis zu finden, das den Eintrag des Dateinamens enthält. In einem letzteren Verzeichnis werden alle Einträge und Dateinamen gesucht, bis der gewünschte Dateiname gefunden ist. Wenn eine Datei vorher noch nicht eröffnet wurde, dann wird es keinen Eintrag geben und darum müssen Einträge gemacht werden, bevor eine Datei benutzt werden kann. Wenn die Datei vorher eröffnet wurde, dann ist im Eintrag des Verzeichnis­ ses, in welchem der Dateinahme aufgeführt ist, ein Index in der FAT eingetragen, der dem Cluster ent­ spricht, bei dem die Datei beginnt. Während einer solchen Eröffnungsprozedur müssen physische E/A Aktivitäten vorgenommen werden, um auf das Stammver­ zeichnis und jedes Unterverzeichnis zuzugreifen, und um durch eine lange Liste von Dateinamen zu suchen. In einigen Anwendungen müssen dieselben Dateien mehrfach im Lauf eines gegebenen Programms eröffnet werden, wobei ein relativ großer Zeitverlust entstehen kann, weil jedes Eröffnen mit viel E/A Aktivität verbunden ist.
Die Erfindung, wie sie in den Ansprüchen gekennzeich­ net ist, stellt sich daher die Aufgabe, ein Verfahren gemäß dem Oberbegriff von Anspruch 1 bereitzustel­ len, bei dem die mit dem Eröffnen einer Datei verbun­ dene physische E/A Aktivität sehr reduziert wird und eine anfänglich bereits einmal eröffnete Datei später schnell eröffnet werden kann.
Diese Aufgabe wird durch die in Anspruch 1 genannten Maßnahmen gelöst. Die Unteransprüche betreffen weitere Ausgestaltungen der Erfindung. Kurz gesagt wird diese Aufgabe gelöst, indem in einem Cachebereich des Hauptspeichers die Geschichte der Dateibenutzungen erzeugt und aufrechterhalten (gespei­ chert) wird. Jedesmal wenn auf ein Verzeichnis oder eine Datei zugegriffen werden soll, dann wird diese Geschichte überprüft, und wenn sich die zum Eröffnen erforderliche Information im Cache befindet, dann wird die Geschichte direkt benutzt, ohne daß ein weiterer Suchprozeß über die Baumstruktur nach einem Verzeich­ nis oder Dateinamen notwendig wäre, der mit physischen E/A Aktivitäten verbunden sein könnte. Durch Festhal­ ten in einem Cachebereich des Hauptspeichers wird auf solche Informationen mit den hohen Geschwindigkeiten des Hauptspeichers zugegriffen, und es sind damit nicht die niedrigeren Geschwindigkeiten der physischen E/A Aktivitäten eines Plattenzugriffs verbunden.
Es ist ein Vorteil des erfindungsgemäßen Verfahrens, daß der Zeitverlust beim Eröffnen einer früher schon einmal eröffneten Datei sehr klein ist. Es ist ein weiterer Vorteil, daß beim Eröffnen einer Datei nicht mehr durch alle Verzeichnisse eines Plattenlaufwerks und durch viele Dateinamen gesucht werden muß, wenn zu dieser Datei kurz vorher zugegriffen wurde. Diese Vorteile gelten insbesonders auch für verschachtelte Dateien.
Im folgenden Ausführungsbeispiel wird auf die Abb. 1 bis 9 Bezug genommn. Hierbei bedeutet
Fig. 1 ein schematisches Diagramm, in welchem in allgemeiner Weise die Beziehung der Er­ findung zur Umgebung oder zum Stand der Technik, in welchem das erfindungsgemäße Verfahren ausgeführt wird, dargestellt ist;
Fig. 2 ein Flußdiagramm der allgemeinen Schritte der Erfindung, die in Antwort auf eine Benutzeranforderung vorgenommen werden;
Fig. 3 ein Flußdiagramm für die Auswahl von verschiedenen Unterprozeduren aus den Hauptprozeduren;
Fig. 4 ein Flußdiagramm der Prozedur "Nachschlagen";
Fig. 5 ein Flußdiagramm der Prozedur "Einfügen";
Fig. 6 ein Flußdiagramm der Prozedur "Benutzeranforderung löschen";
Fig. 7 ein Flußdiagramm der Prozedur "Löschen";
Fig. 8 ein Flußdiagramm der Prozedur "Fortschreiben";
Fig. 9 ein Flußdiagramm, das zeigt, wie DOS verschiedene Prozeduren der Erfindung aufrufen kann.
Im folgenden wird auf Fig. 1 Bezug genommen. Ein Datenverarbeitungssystem 10, wie z. B. ein IBM PC AT, enthält einen Prozessor 12, der über eine Daten­ sammelleitung (Bus) 14 mit einem Hauptspeicher 16 und einer Plattensteuereinheit 18 verbunden ist. Die Plattensteuereinheit ihrerseits ist mit einem Platten­ laufwerk 20 verbunden, welche eine Platte 22 enthält, die ein übliches Speichermedium zur Aufzeichnung von Informationsbits hat. Während des Betriebs des Systems 10 werden DOS Prozeduren 24 den Hauptspeicher 16 geladen oder sind dort resident. Diese Prozeduren werden hauptsächlich dazu benutzt, um den Zugriff zu den Informationen auf der Platte 22 zu steuern. Zu DOS gehören Systempuffer 26, in welche oder über welche Informationen zwischen der Platte 22 und dem Haupt­ speicher 16 in der üblichen Art und Weise übertragen werden.
Darüber hinaus wird ein Satz von Prozeduren mit Namen "Schnell-Eröffnen" 28, die dem Betrieb des Cache 30 "Schnell-Eröffnen" zugeordnet sind, in den Hauptspei­ cher 16 geladen und verbleiben resident in ihm. Die Details dieser Prozduren werden weiter unten be­ schrieben. Wenn es mehr als ein Laufwerk in dem System gibt, dann gibt es eine entsprechende Anzahl von Caches 30, einen für jedes Laufwerk. Die Platte 22 selbst wird so formatiert, so daß sie eine Dateizu­ ordnungstabelle (FAT) 32 und ein Stamminhaltsverzeich­ nis 34 enthält. In Fig. 1 ist auch ein Beispiel einer Dateienstruktur dargestellt, in welcher Datei 40 mit Namen Datei 1 in einem Unterverzeichnis 38 mit Namen Verz 2 enthalten ist, welches seinerseits ein Unterver­ zeichnis von Unterverzeichnis 36 mit Namen Verz 1 ist, das ein Unterverzeichnis des Stammverzeichnisses 34 ist. Ohne Installation der Prozdur Schnell-Eröffnen 28 arbeitet das System in der üblichen bekannten Art und Weise. Die Prozdur Schnell-Eröffnen 28 wird in­ stalliert, indem verschiedene Variable, die weiter unten beschrieben werden, initialisiert werden, und sie wird danach beendet, verbleibt aber resident im Hauptspeicher 16, um bei Bedarf für die Benutzung verfügbar zu sein.
Wie bereits erwähnt, gibt es einen Cache 30 für jedes Plattenlaufwerk im System. Jeder Cache enthält einen Informationsblock, der als Kopf des Laufwerkcaches bekannt ist. Ein solcher Kopf enthält verschiedene Felder, deren Bedeutung in Tabelle 1 angegeben ist.
Tabelle 1 - Kopf des Laufwerkscaches
FeldBedeutung 1Kopf der LRU-Kette von diesem Laufwerk 2Abstand (Offset) zum letzten Eintrag der LRU-Kette 3Zeiger zum ersten Kind in der Kette der Einträge 4Zeiger zum Kopf des nächsten Laufwerkscaches 5Laufwerkkennzeichnung
Darüber hinaus sind in jedem Cache 30 eine Anzahl von Verzeichnis- und Dateieinträgen gespeichert, von denen jeder die Informationsfelder enthält, die in Tabelle 2 aufgeführt sind. Diese Einträge bilden eine verkettete Datenstruktur, die weiter unten ausführlicher be­ schrieben wird. Die Größe des Caches 30 wird durch die gewünschte Anzahl von Einträgen bestimmt. Diese Anzahl kann gewählt werden durch einen vom System bestimmten Standardwert oder durch den Benutzer, der die Anzahl
Tabelle 2 - Felder eines Eintrags
FeldBedeutung 1Zeiger zum nächsten LRU-Eintrag 2Zeiger zum nächsten MRU-Eintrag 3Zeiger zum Kind 4Zeiger zum Mitkind 5Zeiger zum vorherigen Knoten 6Verzeichnis/Datei-Information
der Einträge wählt. Normalerweise sollte die vom Benutzer gewählte Anzahl größer als die tiefste Verschachtelung der Pfadeinträge in diesem Laufwerk sein.
Wie man erkennt, werden die Einträge in einer Kette so verwaltet, daß, wenn Cache 30 mit Einträgen voll ist und ein neuer Eintrag hinzugefügt werden soll, dieser neue Eintrag den am längsten nicht mehr angesprochenen (Least Recently Used, LRU) Eintrag im Cache ersetzt. So werden die Felder 1 und 2 gebraucht, u m die Einträ­ ge gemäß des LRU-, MRU- (Most Recently Used, zuletzt angesprochen) Konzepts zu verketten. Jeweils ein Eintrag wird für jede eröffnete Datei und für jedes Unterverzeichnis, das in dem Pfad zu dieser Datei liegt, hinzugefügt. Zwei Dateinen oder Verzeichnisse, oder Kombinationen davon, im selben Unterverzeichnis werden als auf der gleichen Stufe befindlich betrach­ tet und als "Mitkinder" bezeichnet. Jeder Eintrag, der ein Unterverzeichnis eines anderen oder eine Datei ist, wird "Kind" genannt. Für Suchzwecke werden die Einträge in dem Cache durch die Zeigerfelder 3 bis 5 in einer Baumstruktur angeordnet. Feld 6 enthält jene Information, die zum üblichen Verzeichniseintrag gehört, der auf dem Plattenmedium enthalten ist, mit dem Unterschied, daß diese Information in das Feld 6 des Namenseintrages eingefügt wird und darum im Hauptspeicher resident ist. Auf solche Informationen kann deshalb schnell zugegriffen werden, wenn es notwen­ dig ist, eine Datei zu eröffnen, für die ein entsprechender Eintrag im Cache 30 vorhanden ist. Die Informationen für eine Datei sind Dateiname und Erweiterung, Attribute, Zeit des letzten Schreibens, Datum des letzten Schreibens, das erste Cluster der Datei und die Dateigröße.
Im folgenden wird Bezug genommen auf Fig. 2. Wenn die Anwendung oder das Benutzerprogramm eine Datei er­ öffnen will, dann wird der bekannte DOS-Aufruf "Unter­ brechung (Interrupt) 21Hex" für die Eröffnung einer Datei benutzt. Ein solcher Aufruf geht zu DOS 24 und das Schnell-Eröffnen ist, wie vorhin angezeigt, so installiert, um eine solche Unterbrechung abzufangen und darauf zu reagieren. Die erste Entscheidung besteht natürlich darin, zu bestimmen, ob das Schnell-Eröffnen bereits installiert ist oder nicht; dies wird in Schritt 52 getan. Wenn nicht, dann schreitet die Prozdur voran, gemäß des im Stand der Technik bekannten Plattenzugriffschrittes 54, um jedes Unterverzeichnis und die Datei in der bekannten Weise aufzufinden; danach kehrt Schrit 56 zum Benutzer oder zur Anwendung zurück. Wenn das Schnell-Eröffnen installiert ist, dann schlägt Schritt 58 die Anforde­ rung in einer Weise aus, die ausführlicher weiter unten beschrieben werden soll. Wenn es während des Prozesses einen Fehler gab, verzweigt Schritt 60 nach 54 und der Prozeß schreitet gemäß der Prozesse des Standes der Technik voran. Wenn es keinen Fehler gab, bestimmt Schritt 62, ob der Pfad teilweise oder vollständig gefunden wurde. Wenn er nicht teilweise gefunden wurde, d. h. wenn der ganze Pfad und der Dateiname gefunden wurde, dann wird in Schritt 56 dieselbe Information an den Benutzer zurückgegeben wie durch den Schritt 54. Wenn die Information nur teil­ weise gefunden wurde, dann greift Schritt 64, beginnend bei der Stelle der gefundenen Information, auf die Platte zu, um die restlichen Teile des Pfads und den Dateinamen aufzufinden. Jeder Teil wird in Schritt 66 eingefügt, und Schritt 68 veranlaßt, daß der Prozeß ab Schritt 64 wiederholt wird, bis das Ende des Pfads oder der Dateiname erreicht wird, woraufhin die entsprechende Information an den Benutzer zurück­ gegeben wird.
Im folgenden wird Bezug genommen auf Fig. 3. Der zentrale Teil der Prozedur ist bekannt als "Haupt­ prozedur", und er wird benutzt, um zu entscheiden, welche von 4 Unterprozeduren benutzt werden sollen. Die Unterprozeduren sind bezeichnet als "Nachschla­ gen", "Einfügen", "Löschen", bzw. "Fortschreiben". Diese verschiedenen Prozeduren können z. B. dadurch aufgerufen werden, daß verschiedene, ihnen entspre­ chende Nummern in eines der Prozessorregister einge­ setzt werden. In jedem Fall entscheidet Schritt 70, ob es eine Nachschlagen-Operation ist, die Schritte 72, 74 und 76 entscheiden in ähnlicher Weise, ob es eine Einfügen-, Löschen- bzw. Fortschreiben-Operation ist. Wenn keine dieser Operationen aufgerufen ist, wird eine Fehlermeldung zurückgegeben. Diese verschiedenen Unterprozeduren werden mit Bezug auf die ihnen ent­ sprechenden verschiedenen Figuren beschrieben.
Im folgenden wird Bezug genommen auf Fig. 4. In der Prozedur "Nachschlagen" findet Schritt 78 zunächst denjenigen Cache 30, der dem angesprochenen Laufwerk zugeordnet ist. Schritt 80 setzt die LRU-Kette aus dem Vor-LRU-Stapelspeicher. Dieser Stapelspeicher ist ein logischer Stapelspeicher, der benutzt wird, um das entsprechend einem Baum strukturierte Unterverzeichnis aufzunehmen und dabei die LRU-Kette aufrechtzuerhal­ ten.
Als nächstes bildet Schritt 82 den Startpunkt einer Schleife, in welcher der jetzige (current, gerade angesprochene) Knoten ein Zeiger ist, welcher anfangs so gesetzt wird, daß er auf den Kopf des Laufwerkscaches zeigt, und welcher danach so gesetzt wird, daß er auf den Eintrag des jetzigen Knotens zeigt. Die Variable "jetziges Mitkind" wird auf 0 gesetzt, und dann wird das Verzeichnis oder der Dateinamen gelesen. Das Ende des Pfades oder der Dateiname wird dadurch bestimmt, daß der Ascii-Wert 0 gefunden wird, und Schritt 84 entscheidet dann, ob das Ende erreicht wurde. Wenn es nicht erreicht wurde, was gewöhnlich der Fall sein wird, wenn eine Suche zum ersten Mal beginnt, dann findet Schritt 86 üblicher­ weise einen Eintrag des Kindes des jetzigen Knotens, wobei der Zeiger zum Kind des jetzigen Eintrags benutzt wird. Schritt 88 schaut, ob es keine weiteren Kinder gibt, d. h. ob der Eintrag das letzte Kind in der Folge ist. Diese Tatsache würde durch eine -1 in dem Feld des Kindes angezeigt. Der gewünschte Name wird dann mit dem Dateinamen des Kindes verglichen. Wenn ein solcher Vergleich, als Resultat des Schrittes 90, eine Übereinstimmung feststellt, dann erzeugt Schritt 92 den Vor-LRU-Stapelspeicher, speichert die Adresse des jetzigen Knotens im Stapelspeicher und verzweigt nach Schritt 82 zurück. Diese Schritte laufen so oft ab, bis der Dateiname gefunden ist, wonach das Ja (positives Ergebnis) aus Schritt 84 die Verzweigung nach Schritt 94 verursacht und der ge­ fundene Datensatz oder die gefundene Information an DOS zurückgegeben wird. Wenn Schritt 90 zu einem negativen Ergebnis führt, dann schaut Schritt 98 nach dem Zeiger für das Feld des Mitkindes und eine Schleife, die die Schritte 96, 90 und 98 umfaßt, würde so oft durchlaufen, bis keine weiteren Mitkinder mehr übrig sind, woraufhin dann Schritt 94 zu DOS zurück­ kehrt. Bei der Rückkehr zu DOS setzt die Prozedur "Schnell-Eröffnen" den Zeiger auf das Verzeichnis oder den Dateinamen, das bzw. der in der von DOS bereitge­ stellten Zeichenfolge Pfad/Dateinamen gefunden wurde. DOS seinerseits untersucht den Zeiger, um zu be­ stimmen, ob der ganze Pfad gefunden wurde, oder nur ein Teil oder gar nichts. Wenn es weitere Mitkinder gibt, dann setzt Schritt 96 den Zeiger des jetzigen Knotens auf das jetzige Mitkind.
Im folgenden wird Bezug genommen auf Fig. 5. Der Zweck der Prozedur "Einfügen" ist es, Information über das Verzeichnis oder die Datei als einen Eintrag in den Cache einzufügen, wobei von der Information über den jetzigen Knoten und das jetzige Mitkind ausgegangen wird. Schritt 102 macht einen Eintrag der Namensdaten aus der Eingabe und Schritt 104 holt den nächsten verfügbaren Eintrag. Solange der Cache nicht voll ist, wird ein neuer Eintrag einfach an irgend eine freie Stelle gesetzt werden. Sobald der Cache gefüllt ist, wird der in der LRU-Liste am längsten nicht mehr ange­ sprochene Eintrag der nächste verfügbare Eintrag sein, der durch den neueren ersetzt werden soll. Schritt 106 löscht den Vor-LRU-Stapelspeicher, sofern etwas darin ist. Wenn der jetzige Zeiger zum Mitkind gleich 0 ist, dann wird der neue Eintrag durch Schritt 110 als ein Kind unter dem jetzigen Knoten installiert und Schritt 112 verzeichnet diesen Knoten in dem Vor-LRU-Stapel­ speicher. Wenn ein jetziges Mitkind in Schritt 108 ungleich 0 ist, dann installiert Schritt 114 den neuen Eintrag als ein Mitkind des jetzigen Knotens.
Im folgenden wird Bezug genommen auf die Fig. 6 und 7. Wenn eine Anwendung oder ein Benutzer verlangt, daß eine bestimmte Datei gelöscht werde, dann löscht eine Prozedur nicht nur die Datei auf der Platte in der üblichen Art und Weise, sondern löscht auch alle entsprechenden Einträge im Cache. Als Antwort auf die Benutzeranforderung in Schritt 116 geht so der Prozeß über DOS 24, und Schritt 118 entscheidet, ob die Pro­ zedur "Schnell-Eröffnen" installiert wurde. Wenn nicht, dann greift Schritt 122 auf die Platte zu und löscht die Datei, wonach Schritt 124 zum Benutzer zurückkehrt. Wenn die Prozedur "Schnell-Eröffnen" in­ stalliert ist, dann wird die Anforderung "Löschen" 120 gegeben. Infolge einer solchen Anforderung schlägt Schritt 126 im Cache nach, um festzustellen, ob es einen entsprechenden Eintrag gibt oder nicht. Wenn kein Eintrag gefunden wird, wird die Prozedur einfach verlassen. Wenn der Eintrag gefunden wird, dann wird er aus der LRU-Kette mit Baumstruktur von Schritt 132 entfernt, und dieser spezielle Eintrag wird an die oberste Stelle der LRU-Kette gesetzt, wodurch er für die Benutzung (Ersetzung) durch einen neuen Eintrag verfügbar wird. Der Eintrag des Dateinamens wird zuerst gelöscht und anschließend alle Eltern-Verzeichnisse, die keine Zeiger zu Kindern oder Mitkindern enthalten.
Im folgenden wird Bezug genommen auf die Fig. 8 und 9. Es gibt gewisse Funktionen, die in der Prozedur "Schnell-Eröffnen" enthalten sind und die direkt durch DOS aufgerufen werden können, um gewisse Funktionen auszuführen, die die von DOS bereitgestellten Funktio­ nen unterstützen. Die DOS-Anforderungen betreffen die Funktionen, eine Datei abzuschließen, Null-Bytes in eine Datei zu schreiben oder einen Knoten zu erzeugen. Die Schritte 142, 144 und 146 bestimmen dementspre­ chend, ob solche Funktionen angefordert sind und verzweigen dann zu den Schritten 134 bis 140 der Prozedur "Fortschreiben". Die positiven Ergebnisse der Schritte 136 bis 140 schreiben entsprechend die Verzeichniseinträge und die Anzahl der Cluster, die mit einer Datei verbunden sind, fort, bzw. löschen einen Eintrag.
In der vorangegangenen Diskussion wurde der Vor-LRU- Stapelspeicher erwähnt, und nun soll seine Beziehung zum LRU-Stapelspeicher erklärt werden. Beide Stapel­ speicher schließen die Benutzung von LRU- und MRU-Zeigern in den Einträgen ein. Wenn der Prozeß einen Pfad verfolgt, dann geht er vom Stammverzeichnis aus durch alle Unterverzeichnisse, bis er den Dateina­ men erreicht; ein Vor-LRU-Stapelspeicher wird in Übereinstimmung mit der Ordnung erzeugt, in welcher auf die verschiedenen Knoten zugegriffen wird. So ist z. B. bei einer Datei, die durch C:/Verz 1/Verz 2/Datei 1 spezifiziert ist, die Ordnung der Einträge: das Stammverzeichnis, Verz 1, Verz 2 und Datei 1. Diese Reihenfolge stellt deswegen ein Problem dar, weil das Stammverzeichnis den am längsten nicht mehr ange­ sprochenen Eintrag darstellt, und sollte ein solcher Eintrag zum Ersetzt-werden freigegeben werden, dann würde ein Zugriff auf die übrigen Einträge abgeschnit­ ten werden. Dieses Problem wird vermieden durch die Benutzung des Vor-LRU-Stapelspeichers und, sobald der Pfad aufgestellt ist, durch Neuordnung der Einträge, um ein LRU-Stapelspeicher zu erzeugen, in welchem der Dateiname als der am längsten nicht mehr angesprochene Eintrag erscheint, wodurch bei einer Ersetzung zu­ nächst der Dateiname und nicht irgend ein Eltern-Ver­ zeichnis ersetzt wird.

Claims (6)

1. Verfahren zum Eröffnen von Dateien in einem Datenverarbeitungssystem (10) mit mindestens einem Laufwerk (20) für ein externes Speicherme­ dium (22), vorzugsweis einer Speicherplatte, auf dem die Dateien (40) und ein Inhaltsverzeichnis mit Baumstruktur für Datei- und Unterverzeich­ nisnamen (24, 36, 38) gespeichert sind, dadurch gekennzeichnet, daß im Hauptspeicher (16) des Datenverarbeitungs­ systems für jedes Laufwerk ein Bereich vorgebbarer Größe vorgesehen wird, in dem ein Ausug des Inhaltverzeichnisses mit Zugriffs­ information über Dateien aufrecht erhalten wird, die in der zurückliegenden Zeit eröffnet worden sind, und daß bei Anforderungen zum Eröffnen von Dateien der Auszug des Inhaltsverzeichnisses zuerst durchsucht wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß in jedem Hauptspeicherbereich eine feste Anzahl von verketteten Einträgen gleichen Formats für Namen von Dateien bzw. von Unter­ verzeichnissen vorgesehen ist, und daß neue Einträge nach dem Prinzip des LRU verwaltet werden.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die Einträge in einem LRU-Stapelspeicher ver­ waltet und in einem Vor-LRU-Stapelspeicher vorbereitet werden.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß jeder Eintrag Zeiger enthält, von denen je einer auf den dem betreffenden Eintrag in der Baumstruktur übergeordneten Eintrag (Eltern), einer auf einen in der Baumstruktur gleichrangi­ gen Eintrag (Mitkind) und einer auf einen dem betreffenden Eintrag in der Baumstruktur unterge­ ordneten Eintrag (Kind) zeigt.
5. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß beim Eröffnen einer Datei zuerst auf die im zugehörigen Hauptspeicherbereich vorhandenen Informationen über die Datei zugegriffen wird und möglicherweise fehlende weitere Informationen über den vollständigen Pfad zum Datei-Inhaltsver­ zeichnis aus dem Speichermedium gelesen werden.
6. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, daß in jedem Hauptspeicherbereich ein Laufwerkskopf zur Identifikation des zugeordneten Laufwerkes enthalten ist, und daß die Laufwerk­ köpfe über Zeiger miteinander verkettet sind.
DE19873743890 1987-03-30 1987-12-23 Verfahren zum schnellen eroeffnen von plattendateien Granted DE3743890A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/032,210 US5008820A (en) 1987-03-30 1987-03-30 Method of rapidly opening disk files identified by path names

Publications (2)

Publication Number Publication Date
DE3743890A1 true DE3743890A1 (de) 1988-10-27
DE3743890C2 DE3743890C2 (de) 1989-03-23

Family

ID=21863700

Family Applications (2)

Application Number Title Priority Date Filing Date
DE8787118540T Expired - Fee Related DE3780807T2 (de) 1987-03-30 1987-12-15 Verfahren zum schnellen oeffnen von mit pfadnamen identifizierten plattendateien.
DE19873743890 Granted DE3743890A1 (de) 1987-03-30 1987-12-23 Verfahren zum schnellen eroeffnen von plattendateien

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE8787118540T Expired - Fee Related DE3780807T2 (de) 1987-03-30 1987-12-15 Verfahren zum schnellen oeffnen von mit pfadnamen identifizierten plattendateien.

Country Status (19)

Country Link
US (1) US5008820A (de)
EP (1) EP0284664B1 (de)
JP (1) JPS63244243A (de)
KR (1) KR940005775B1 (de)
CN (1) CN1020014C (de)
AT (1) ATE78943T1 (de)
BE (1) BE1001068A4 (de)
BR (1) BR8801438A (de)
CA (1) CA1303747C (de)
DE (2) DE3780807T2 (de)
ES (1) ES2033786T3 (de)
FR (1) FR2613505A1 (de)
GB (1) GB2204161B (de)
GR (1) GR3005888T3 (de)
HK (1) HK33892A (de)
IT (1) IT8819948A0 (de)
MY (1) MY103353A (de)
PH (1) PH27427A (de)
SG (1) SG5292G (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19960114A1 (de) * 1999-12-08 2001-06-13 Heidenhain Gmbh Dr Johannes Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems
AT510716A4 (de) * 2011-04-08 2012-06-15 Albrecht Dipl Ing Kadlec Reiner allokations-cache für echtzeitsysteme

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649205A (en) * 1989-07-07 1997-07-15 Martins; Augusto Baronio File retrieval system
US5276874A (en) * 1989-08-11 1994-01-04 Digital Equipment Corporation Method for creating a directory tree in main memory using an index file in secondary memory
US5371885A (en) * 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
US5150473A (en) * 1990-01-16 1992-09-22 Dantz Development Corporation Data storage format for addressable or sequential memory media
JPH03296841A (ja) * 1990-04-16 1991-12-27 Nec Corp キャッシュ制御方式
JP2746734B2 (ja) * 1990-06-08 1998-05-06 富士通株式会社 ストリームファイルに対してのアクセス処理方式
EP0463874A2 (de) * 1990-06-29 1992-01-02 Digital Equipment Corporation Cache-Anordnung für ein Dateisystem in einem digitalen Datenverarbeitungssystem
US5241672A (en) * 1991-04-01 1993-08-31 Xerox Corporation System using the storage level of file updates in nonvolatile memory to trigger saving of RAM to disk and using the file updates to reboot after crash
JPH06175914A (ja) * 1992-09-21 1994-06-24 Eastman Kodak Co メモリ管理装置
US5422762A (en) * 1992-09-30 1995-06-06 Hewlett-Packard Company Method and apparatus for optimizing disk performance by locating a file directory on a middle track and distributing the file allocation tables close to clusters referenced in the tables
US5701463A (en) * 1994-09-09 1997-12-23 Cheyenne Advanced Technology Limited Method of replacing the identity of a file with another as part of a file open request in a computer system
DE69535330T2 (de) * 1994-09-14 2007-05-31 Intel Corporation, Santa Clara Caching-System mit Explitzer Folgeliste
US5590320A (en) * 1994-09-14 1996-12-31 Smart Storage, Inc. Computer file directory system
US5644736A (en) * 1995-05-25 1997-07-01 International Business Machines Corporation System and method for selecting components of a hierarchical file structure
US5765192A (en) * 1996-05-01 1998-06-09 Sun Microsystems, Inc. Method and computer program product to reuse directory search handles
US5819298A (en) * 1996-06-24 1998-10-06 Sun Microsystems, Inc. File allocation tables with holes
US5924116A (en) * 1997-04-02 1999-07-13 International Business Machines Corporation Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node
US6094706A (en) * 1998-03-02 2000-07-25 International Business Machines Corporation Caching in a data processing system using the pigeon hole principle
US6151595A (en) * 1998-04-17 2000-11-21 Xerox Corporation Methods for interactive visualization of spreading activation using time tubes and disk trees
US6654761B2 (en) * 1998-07-29 2003-11-25 Inxight Software, Inc. Controlling which part of data defining a node-link structure is in memory
US6216199B1 (en) * 1999-08-04 2001-04-10 Lsi Logic Corporation Hardware mechanism for managing cache structures in a data storage system
CN1344413A (zh) * 1999-11-10 2002-04-10 皇家菲利浦电子有限公司 记录载体、用于重放记录载体的装置、用于重放记录载体的方法、用于录制记录载体的装置以及用于录制记录载体的方法
US6643754B1 (en) * 2000-02-15 2003-11-04 International Business Machines Corporation System and method for dynamically allocating computer memory
US6529897B1 (en) 2000-03-31 2003-03-04 International Business Machines Corporation Method and system for testing filter rules using caching and a tree structure
US6928466B1 (en) 2000-09-28 2005-08-09 Emc Corporation Method and system for identifying memory component identifiers associated with data
TWI230858B (en) * 2000-12-12 2005-04-11 Matsushita Electric Ind Co Ltd File management method, content recording/playback apparatus and content recording program
DE10162046A1 (de) 2001-12-17 2003-06-26 Thomson Brandt Gmbh Wiedergabegerät mit einem Zwischenspeicher zum Verringern der mittleren Zugriffszeit auf einen Informationsträger
EP1400970A1 (de) * 2002-09-10 2004-03-24 Siemens Aktiengesellschaft Verfahren und Gerät zur Steuerung einer Speicheranordnung für Kraftfahrzeuge
US7287046B2 (en) * 2002-09-30 2007-10-23 Emc Corporation Method and system of compacting sparse directories in a file system
JP4543363B2 (ja) * 2002-12-18 2010-09-15 ネッツエスアイ東洋株式会社 コンピュータのセキュリティシステム
KR100962763B1 (ko) * 2003-01-20 2010-06-10 엘지전자 주식회사 데이터 방송 파일 시스템 처리 방법
US7873685B2 (en) * 2004-05-13 2011-01-18 Pixar System and method for flexible path handling
EP1779253A4 (de) * 2004-07-12 2010-01-27 Samsung Electronics Co Ltd Verfahren und vorrichtung zum durchsuchen von in einem tragbaren speichergerät gespeicherten rechteobjekten unter verwendung von objektortsdaten
JP4659537B2 (ja) * 2005-07-05 2011-03-30 株式会社日立製作所 ファイル提供方法、ストレージ装置及びファイル提供プログラム
KR101130090B1 (ko) * 2010-04-05 2012-03-28 주식회사 안철수연구소 단말 장치 및 상기 단말 장치의 파일 배포처 확인 방법
CN102279734A (zh) * 2010-06-12 2011-12-14 环旭电子股份有限公司 自动映像数据的嵌入式系统及其方法
CN111054082B (zh) * 2019-11-29 2023-10-13 珠海金山数字网络科技有限公司 Unity资源数据集编码的方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3905023A (en) * 1973-08-15 1975-09-09 Burroughs Corp Large scale multi-level information processing system employing improved failsaft techniques
GB1504112A (en) * 1976-03-17 1978-03-15 Ibm Interactive enquiry systems
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus
US4277826A (en) * 1978-10-23 1981-07-07 Collins Robert W Synchronizing mechanism for page replacement control
US4598357A (en) * 1980-11-14 1986-07-01 Sperry Corporation Cache/disk subsystem with file number for recovery of cached data
US4489378A (en) * 1981-06-05 1984-12-18 International Business Machines Corporation Automatic adjustment of the quantity of prefetch data in a disk cache operation
US4533995A (en) * 1981-08-03 1985-08-06 International Business Machines Corporation Method and system for handling sequential data in a hierarchical store
US4530055A (en) * 1982-03-03 1985-07-16 Sperry Corporation Hierarchical memory system with variable regulation and priority of writeback from cache memory to bulk memory
JPS6058492B2 (ja) * 1982-06-26 1985-12-20 富士通株式会社 デ−タベ−ス検索方式
JP2539347B2 (ja) * 1982-09-13 1996-10-02 株式会社日立製作所 フアイル管理方法
US4571674A (en) * 1982-09-27 1986-02-18 International Business Machines Corporation Peripheral storage system having multiple data transfer rates
DE3381124D1 (de) * 1983-02-03 1990-02-22 Ibm Dateiorganisation mit schluesselzugriff.
JPS59153251A (ja) * 1983-02-18 1984-09-01 Toshiba Corp デイスクキヤツシユシステム
JPS59163659A (ja) * 1983-03-07 1984-09-14 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション ワ−ド・プロセシング・システムにおけるデ−タ・セツトのアクセス方式
US4571700A (en) * 1983-06-16 1986-02-18 International Business Machines Corporation Page indexing system for accessing sequentially stored data representing a multi-page document
US4603380A (en) * 1983-07-01 1986-07-29 International Business Machines Corporation DASD cache block staging
JPS60254325A (ja) * 1984-05-31 1985-12-16 Fujitsu Ltd デ−タ検索キ−制御方式
JPS61175838A (ja) * 1985-01-31 1986-08-07 Ricoh Co Ltd デ−タ処理方式
JPS61228538A (ja) * 1985-04-01 1986-10-11 Nec Corp フアイル管理方式
JPS61271547A (ja) * 1985-05-27 1986-12-01 Mitsubishi Electric Corp デイスクフアイルアクセス方式
EP0452989A3 (en) * 1985-05-29 1992-04-15 Kabushiki Kaisha Toshiba Magnetic disk controller incorporating a cache system adopting an lru system
US4779189A (en) * 1985-06-28 1988-10-18 International Business Machines Corporation Peripheral subsystem initialization method and apparatus
US4761737A (en) * 1986-01-16 1988-08-02 International Business Machines Corporation Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system
US4827462A (en) * 1987-03-26 1989-05-02 International Business Machines Corporation Modular data storage directories for large-capacity data storage units

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DE-Buch Wilhelm G. Spruth Interaktive Systeme, Science Research Associates GmbH, S. 200-213 *
US-B.: J. Martin Computer Data-Base Organization 2. Aufl., 1977, Prentice Hall Inc. S. 444-446 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19960114A1 (de) * 1999-12-08 2001-06-13 Heidenhain Gmbh Dr Johannes Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems
AT510716A4 (de) * 2011-04-08 2012-06-15 Albrecht Dipl Ing Kadlec Reiner allokations-cache für echtzeitsysteme
AT510716B1 (de) * 2011-04-08 2012-06-15 Albrecht Dipl Ing Kadlec Reiner allokations-cache für echtzeitsysteme

Also Published As

Publication number Publication date
EP0284664A2 (de) 1988-10-05
ATE78943T1 (de) 1992-08-15
GB2204161A (en) 1988-11-02
MY103353A (en) 1993-06-30
GB2204161B (en) 1991-09-18
KR880011665A (ko) 1988-10-29
GR3005888T3 (de) 1993-06-07
JPH0519175B2 (de) 1993-03-16
EP0284664A3 (en) 1989-03-15
DE3780807T2 (de) 1993-03-11
US5008820A (en) 1991-04-16
CN88100793A (zh) 1988-10-19
CA1303747C (en) 1992-06-16
GB8728924D0 (en) 1988-01-27
CN1020014C (zh) 1993-03-03
EP0284664B1 (de) 1992-07-29
PH27427A (en) 1993-06-21
DE3780807D1 (de) 1992-09-03
ES2033786T3 (es) 1993-04-01
SG5292G (en) 1992-03-20
DE3743890C2 (de) 1989-03-23
HK33892A (en) 1992-05-15
BR8801438A (pt) 1988-11-01
KR940005775B1 (ko) 1994-06-23
JPS63244243A (ja) 1988-10-11
FR2613505A1 (fr) 1988-10-07
BE1001068A4 (fr) 1989-06-27
IT8819948A0 (it) 1988-03-25

Similar Documents

Publication Publication Date Title
DE3743890C2 (de)
DE69130312T2 (de) Dateisystem mit Schreib/Lesespeicher und einmaligen Schreib- und mehrmaligen Lese-speicher
DE69229982T2 (de) Verfahren und Gerät um ein rechnergestütztes Dateiensystem zu betreiben
DE69623227T2 (de) Verfahren und System zur Berechnung von Dateinamen mit hoher Wahrscheinlichkeit der Eindeutigkeit
DE69702568T2 (de) Mehrstufiges Cache-System für Massenspeichereinrichtung und Verfahren zum Einrichten eines solchen Systems
DE68925746T2 (de) Versionen-Verwaltungswerkzeug
DE69530405T2 (de) Schnappschuss von auf einem massenspeichersystem gespeicherten daten
DE19740525C1 (de) Verfahren zur Abspeicherung und Wiedergewinnung von Daten in einem Steuersystem, insbesondere in einem Kraftfahrzeug
DE68927621T2 (de) Echtzeitdatenbasis
DE69031494T2 (de) Verfahren zum lesen und schreiben von dateien auf nichtlöschbaren speichermedien
DE69636192T2 (de) Datenmigrationssystem und -verfahren unter verwendung von undichten dateien
DE69032517T2 (de) Verfahren und System zum dynamischen Identifizieren von Datenträgern in einem Gestaltungsdateisystem
DE69700574T2 (de) Verfahren zum Cache-Speichern von Netzwerk- und CD-ROM-Zugriffen unter Verwendung einer lokalen Festplatte
DE69533786T2 (de) Vorrichtung zum Erzeugen von objektorientierten Schnittstellen für relationale Datenbanken und von dieser Vorrichtung durchgeführtes Verfahren
DE69333906T2 (de) Verfahren und System für die Dateienverwaltung mit einem schnell löschbaren, programmierbaren ROM
DE69926227T2 (de) System und verfahren zum verbessern von programmstartzeit
DE69801112T2 (de) Dateispeicherverwaltungssystem für schnappschusskopieroperationen
DE68929229T2 (de) Steuergerät mit einem Cache-Speicher und Verfahren zur Steuerung des Cache-Speichers
DE68924833T2 (de) Verfahren und Anordnung zur Datenabbildung in einem Datenverarbeitungssystem mit virtuellem Speicher.
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE69310908T2 (de) Verfahren und geraet um nicht loeschbare dateien auf ein speichermedium zu schreiben
DE60035432T2 (de) System zur verwaltung der rdbm fragmentierungen
DE60112257T2 (de) Virtuelles Dateisystem für dynamisch erzeugte Webseiten
DE19961499A1 (de) Caching von Objekten in Platten-gestützten Datenbanken
EP3084638A1 (de) Posix-kompatibles dateisystem, verfahren zum erzeugen einer dateiliste und speichervorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee