DE10059006A1 - Verfahren und System zur sicheren Verwaltung von Dateien in nichtflüchtigen Speichern - Google Patents
Verfahren und System zur sicheren Verwaltung von Dateien in nichtflüchtigen SpeichernInfo
- Publication number
- DE10059006A1 DE10059006A1 DE10059006A DE10059006A DE10059006A1 DE 10059006 A1 DE10059006 A1 DE 10059006A1 DE 10059006 A DE10059006 A DE 10059006A DE 10059006 A DE10059006 A DE 10059006A DE 10059006 A1 DE10059006 A1 DE 10059006A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- file
- files
- active
- write operation
- 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
Links
- 238000000034 method Methods 0.000 title claims description 37
- 238000004590 computer program Methods 0.000 claims abstract description 5
- 230000000717 retained effect Effects 0.000 claims abstract 2
- 101100445488 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) ptr-2 gene Proteins 0.000 claims description 25
- 230000008859 change Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 9
- 230000015654 memory Effects 0.000 claims description 6
- 206010000210 abortion Diseases 0.000 abstract 1
- 231100000176 abortion Toxicity 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 17
- 101100215778 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) ptr-1 gene Proteins 0.000 description 14
- 101100407828 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) ptr-3 gene Proteins 0.000 description 8
- 238000011084 recovery Methods 0.000 description 7
- 238000013475 authorization Methods 0.000 description 4
- 238000010845 search algorithm Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Ein Verfahren und ein System der sicheren Verwaltung von EEPROM-Dateien, um Daten nach dem Abbruch einer Schreiboperation wiederherzustellen, wobei die Daten in einer satzorientierten Datenstruktur gespeichert sind und jeder Satz zusätzlich zu den Dateninhalten ein Statusbyte enthält.
Description
Diese Erfindung bezieht sich im Allgemeinen auf Verbesserungen
der Dateiverwaltung von Dateien in nichtflüchtigen Speichern und
insbesondere auf die sichere Verwaltung von Dateien im
nichtflüchtigen Speicherbereich von Chipkarten und anderen
digitalen Geräten für den Fall unterbrochener Schreibzyklen.
Chipkarten verbreiten sich immer mehr in unterschiedlichen
Anwendungsbereichen, zum Beispiel als Telefonkarten, Bankkarten,
Kreditkarten, ID-Karten, Versicherungskarten usw. Zusätzlich zu
den ausgefeilten Identifikations- und Berechtigungs-Mechanismen,
die sie enthalten, werden Chipkarten häufig als
Datenspeichereinheiten benutzt. Bei typischen Prozessen und
Operationen mit Chipkarten, zum Beispiel Zahlungsoperationen,
Autorisierungsprozessen usw., müssen die auf der Chipkarte
gespeicherten Daten geändert werden. Im Folgenden werden solche
Prozesse und Operationen als "Transaktionen" bezeichnet.
Bei einer Vielzahl von Transaktionen, die mit einer Chipkarte
ausgeführt werden, müssen Teile der in der Mikrosteuereinheit
(microcontroller) der Chipkarte enthaltenen Software entweder
vollständig oder gar nicht ausgeführt werden. Eine Folge von
Operationen, die nicht geteilt werden kann (und die deshalb nur
vollständig oder gar nicht ausgeführt werden kann), wird als
atomare Operationsfolge bezeichnet. Atomare Operationsfolgen
treten immer in EEPROM-Schreibroutinen auf. Atomare Folgen
beruhen auf der Voraussetzung, dass in EEPROM-Schreibzyklen
gewährleistet sein muss, dass die jeweiligen Daten nicht nur
teilweise geschrieben werden. Das kann beispielsweise vorkommen,
wenn der Nutzer der Chipkarte die Karte während des
Schreibprozesses aus dem Endgerät (terminal) herausnimmt oder wenn
der Strom ausfällt. Eine sichere Verwaltung der EEPROM-
Schreibdaten ist besonders wichtig, wenn die Chipkarte als
elektronisches Zahlungsmittel (e-cash) verwendet wird, da die
Chipkarte eine zuverlässige Zahlungsvorrichtung für den Nutzer
sein muss, und weil insbesondere bei Zahlungstransaktionen
Daten, die in unterschiedlichen Dateien enthalten sind,
gleichzeitig geändert werden müssen.
In diesen Fällen muss das Betriebssystem der Chipkarte
sicherstellen, dass die Konsistenz aller Daten garantiert wird,
wenn die Chipkarte nach einem unterbrochenen Schreibprozess
wieder in Betrieb genommen wird.
Gegenwärtig enthalten Chipkarten in ihren EEPROMs
Sicherungspuffer (backup buffer). Solche Puffer sind groß genug, um
alle notwendigen und wichtigen Daten zu speichern, und enthalten
ein Kennzeichen (flag), das den Status anzeigt. Das Kennzeichen
kann entweder auf "Daten im Puffer gültig" oder auf "Daten im
Puffer ungültig" gesetzt werden. Zusätzlich muss ein
Zuordnungsspeicher für die Zieladresse und die tatsächliche
Länge der Pufferdaten zur Verfügung stehen. Im Betriebsfall
werden die Daten in der Zieladresse in den Puffer kopiert,
zusammen mit ihrer physischen Adresse und Länge. Das Kennzeichen
wird auf "Daten im Puffer gültig" gesetzt. In einem nächsten
Schritt werden die neuen Daten an die gewünschte Adresse
geschrieben, und das Kennzeichen wird auf "Daten im Puffer
ungültig" gesetzt. Wenn das Betriebssystem vor ATR (Antwort
zurückzusetzen) gestartet wird, wird das Kennzeichen geprüft.
Falls es auf "Daten im Puffer gültig" gesetzt ist, werden die im
Puffer enthaltenen Daten automatisch an die gleiche gespeicherte
Adresse geschrieben.
Mit diesem Mechanismus wird gewährleistet, dass gültige Daten in
der Datei enthalten sind, und im Fall einer
Programmunterbrechung können die Daten im EEPROM der Chipkarte
wiederhergestellt werden.
Die bekannte Methode der Verwendung eines Sicherungspuffers hat
verschiedene Nachteile. Erstens muss der Puffer wenigstens so
groß sein wie die zu puffernden Daten und auf der Chipkarte auf
dem EEPROM reserviert werden. Da der Platz auf dem EEPROM teuer
ist und auf der Karte in genügender Größe vorhanden sein muss,
um alle für den Nutzer wichtigen Daten zu speichern, kann der
Puffer nicht beliebig groß sein. Deshalb ist die Menge und die
Größe der zu puffernden Daten beschränkt. Zweitens ist der
Puffer einem ständigen Betrieb ausgesetzt und deshalb übermäßig
beansprucht/belastet. Da die Zahl der Schreib-/Löschzyklen
des EEPROM begrenzt ist, besteht das Risiko, dass Daten in
diesem wichtigen Puffer höchstwahrscheinlich auf Grund des
Verschleißes des Speichers verfälscht werden. Drittens wird auf
Grund des obligatorischen Schreibzugriffs auf den Puffer die
Ausführungszeit des Programms verlängert. Unter ungünstigen
Bedingungen kann der Zugriff dreimal länger dauern als der
direkte Schreibzugriff auf den EEPROM. Diese Erfindung
überwindet auch diese Nachteile.
Demzufolge ist es eine primäre Aufgabe der vorliegenden
Erfindung, die oben erwähnten Nachteile zu überwinden und ein
einzigartiges Verfahren und System für die sichere Verwaltung
von Daten bei Chipkarten-Anwendungen zur Verfügung zu stellen.
Diese und andere Aufgaben der vorliegenden Erfindung werden
erreicht durch Speichern der Daten in logischen Strukturen, d. h.
in satzorientierten (record-oriented) Datenstrukturen. Jeder Satz
enthält zusätzlich zum Dateninhalt ein Statusbyte. Das
Statusbyte zeigt an, ob dieser Satz gegenwärtig gültig ist oder
nicht (Primärattribut). Weiterhin enthält der Satz eine
Folgenummer (Synchronisationsnummer), die verwendet wird, um die
Verbindung zu den zu synchronisierenden Dateien herzustellen
(Sekundärattribut). In der Menge der zu synchronisierenden
Dateien wird eine Primärdatei definiert, deren aktueller Satz
die gegenwärtig gültige Synchronisationsnummer enthält. Die
andere(n) Datei(en) wird (werden) als Sekundärdatei(en)
bezeichnet.
Entsprechend der vorliegenden Erfindung wird ein Verfahren und
ein System zur Datenverwaltung in einem Chipkarten-EEPROM
bereitgestellt, das die Daten selbst für den Fall der
Unterbrechung oder des Abbruchs einer Folge (zum Beispiel durch
Stromausfall) sichert, ohne dass ein Puffer benötigt wird. Die
Erfindung ermöglicht, dass zwei oder mehr Dateien der Chipkarte
konsistent bleiben, wenn eine Unterbrechung auftritt, während
die Dateien aktualisiert werden, indem die Informationen, die
die Herstellung der Konsistenz betreffen, zusammen mit den Daten
gespeichert werden. Dadurch wird die Datensicherheit selbst über
Kommandofolgen hinweg gewährleistet. Die Erfindung umfasst ein
spezielles Datenformat und einen Suchalgorithmus, um die
gültigen Dateiinhalte zu bestimmen und Daten zu korrigieren, die
auf Grund von Unterbrechungen oder Speicherfehlern unvollständig
geschrieben wurden. Der Satzsuchalgorithmus macht eine spezielle
Wiederherstellungsroutine für Dateninhalte nach einer unnötigen
Unterbrechung verfügbar.
Fig. 1 veranschaulicht die Struktur einer Datei entsprechend der
vorliegenden Erfindung;
Fig. 2 ist eine Veranschaulichung der Struktur der logischen
Sätze, die entsprechend der vorliegenden Erfindung in einer
Datei, so wie sie in Fig. 1 gezeigt wird, enthalten sind.
Fig. 3a und 3b veranschaulichen einen sequentiellen Ablauf für
eine beliebige Anzahl von Dateien 1 bis n entsprechend der
vorliegenden Erfindung.
Zuerst wird die Erfindung für den Fall von zwei von einer
Transaktion betroffenen Dateien dargestellt. Fig. 1 zeigt die
Struktur jeder Datei - Primärdatei und Sekundärdatei -
entsprechend der Erfindung. Fig. 2 veranschaulicht die Struktur
jedes Satzes. Entsprechend Fig. 1 besteht jede Datei aus einer
Angabe der Anzahl der logischen Sätze, der Größe der logischen
Sätze und einer fortlaufend nummerierten Vielzahl von logischen
Sätzen. Jeder Satz besteht aus einer Angabe des Satzstatus,
einer Synchronisationsnummer und dem Dateninhalt, so wie in Fig.
2 dargestellt.
Wenn die an einer Transaktion beteiligten Dateien aktualisiert
werden, wird der folgende Algorithmus benutzt:
- 1. Bestimme den aktuellen aktiven logischen Satz und den (Arbeits-)Satz der zu schreibenden Schlüsseldatei.
- 2. Setze die Synchronisationsnummer des Arbeitssatzes der Schlüsseldatei auf die Synchronisationsnummer des aktiven Satzes und erhöhe die Synchronisationsnummer des aktuellen Satzes um 1.
- 3. Schreibe die neuen Daten der Schlüsseldatei in den Arbeitssatz.
- 4. Ändere den Satzstatus des Arbeitssatzes der Schlüsseldatei auf "aktiv".
- 5. . . .
- 6. Führe eine vollständige Aktualisierung der Sekundärdatei durch, einschließlich der Definition neuer aktiver Sätze.
- 7. . . .
- 8. Ändere den Satzstatus des alten aktiven Satzes der Schlüsseldatei auf "nicht aktiv".
Durch Anwendung dieses Algorithmus kann für die Primär- und die
Sekundärdatei gewährleistet werden, dass neue Dateninhalte durch
eine einzige (atomare) Schreiboperation in der Primärdatei
(Schritt 8 im obigen Algorithmus) gültig werden und dass keine
inkonsistenten Zwischenstufen der Dateninhalte auftreten.
Schritt 5 und 7 im obigen Algorithmus sind wahlweise Schritte,
die für zusätzliche, auf der Chipkarte auszuführende Schritte
reserviert werden können und die nicht Teil der vorliegenden
Erfindung sind. Die einzige Anforderung hierfür besteht darin,
dass die Bestimmung des aktiven logischen Satzes und des
Arbeitssatzes entsprechend dem folgenden Satzsuchalgorithmus für
die Schlüsseldatei ausgeführt wird:
- 1. Beginne mit dem ersten physischen Satz und suche nach dem ersten Satz, dessen Status "aktiv" ist.
- 2. Falls der erste physische Satz und der letzte physische Satz der Datei als "aktiv" gekennzeichnet sind, ist der letzte physische Satz der aktive Satz.
- 3. Wenn kein Satz gefunden wird, der als aktiv gekennzeichnet ist, setze den ersten physischen Satz auf "aktiv".
- 4. Definiere den physischen Satz, der nach dem aktiven Satz folgt, als Arbeitssatz.
- 5. Falls der aktive Satz der letzte physische Satz der Datei ist, wird der erste physische Satz der Datei der Arbeitssatz.
Der Satzsuchalgorithmus für die Sekundärdatei arbeitet wie
folgt:
- 1. Beginne mit dem ersten physischen Satz und suche nach dem ersten Satz, dessen Status "aktiv" ist.
- 2. Falls der erste physische Satz und der letzte physische Satz der Datei als "aktiv" gekennzeichnet sind, ist der letzte physische Satz der aktive Satz.
- 3. Wenn kein Satz gefunden wird, der als aktiv gekennzeichnet ist, setze den ersten physischen Satz auf "aktiv".
- 4. Vergleiche die Synchronisationsnummer des festgestellten aktiven Satzes mit der Synchronisationsnummer des aktiven Satzes der Primärdatei.
- 5. Wenn der Versuch fehlschlägt, markiere den Satz als "aktiv", dessen Synchronisationsnummer der Synchronisationsnummer des aktiven Satzes der Primärdatei entspricht.
- 6. Definiere den physischen Satz, der nach dem aktiven Satz folgt, als Arbeitssatz.
- 7. Falls der aktive Satz der letzte physische Satz der Datei ist, wird der erste physische Satz der Datei der Arbeitssatz.
Das oben beschriebene Verfahren kann ohne Änderungen der
Algorithmen auf eine beliebige Anzahl von Dateien erweitert
werden. In diesem Fall werden alle weiteren Dateien als
Sekundärdateien klassifiziert. Nachfolgend wird das Verfahren
entsprechend der vorliegenden Erfindung unter Bezugnahme auf
Fig. 3a und 3b für eine beliebige Anzahl von Dateien erklärt,
wobei ein Satz in einer Datei die folgende Struktur besitzt:
Das Kennzeichen gibt an, ob ein Satz aktiv ("A") oder inaktiv
("I") ist. Ein Satz kann das "A"-Kennzeichen gesetzt haben, aber
wird noch nicht als gültig angesehen: wenn das Ptr2-Feld nicht
auf den Beginn des Satzes zeigt, ist der Satz noch Teil einer
Kette zu Sätzen in anderen Dateien und noch "im Aufbau
begriffen". Nur wenn Ptr2 auf den Anfang seines eigenen Satzes
zeigt, kann mit Sicherheit gesagt werden, dass die Kette
aufgelöst wurde und alle Dateien synchronisiert sind. Ein Satz
mit dieser Bedingung und mit einem auf "aktiv" gesetzten
Kennzeichen könnte als "voll aktiv" bezeichnet werden.
Die Dateien sind wiederum zyklische Dateien, eine Anordnung, die
oft als Ringpuffer beschrieben wird. Sie sind satzorientiert,
mit anderen Worten, es gibt, vom Standpunkt des Betriebssystems
aus gesehen, immer einen "aktuellen Satz". Der aktuelle Satz
muss nicht der gleiche sein wie der "voll aktive" Satz.
Die nachstehende Folge von Ereignissen beschreibt, wie eine
beliebige Anzahl von Dateien aktualisiert werden kann und
gleichzeitig sichergestellt wird, dass entweder die aktuellen
(alten) Informationen in allen Dateien zugänglich bleiben oder
garantiert wird, dass die neuen Informationen in allen Dateien
existieren. Die Anzahl von Dateien kann wahrscheinlich
verringert und das Schema stark vereinfacht werden, wenn wir nur
mit einer wohldefinierten Menge von Dateien arbeiten, die sich
niemals ändert.
- a) Anhängen oder Aktualisieren des Datenfeldes eines Satzes in
der ersten Datei:
- 1. Anhängen eines neuen Satzes in Datei 1 (die Primärdatei) und Kopieren der Daten aus dem aktuellen Satz in diesen neuen Satz. Modifikation der Daten, so wie gefordert. Der angehängte Satz wird der aktuelle Satz (vom Standpunkt des Operationssystems aus gesehen). Der vorhergehende Satz bleibt "voll aktiv" (vom Standpunkt des sicheren Aktualisierungsmechanismus aus gesehen). [erstes Schreiben des Ptr2] Ein Stromausfall zu diesem Zeitpunkt lässt den vorhergehenden Satz noch "voll aktiv". Ptr2 im aktuellen Satz zeigt auf diesen Satz, weil er in Schritt (a1) aus dem vorhergehenden Satz in diese Datei kopiert wurde, wo er auf den Beginn des gleichen vorhergehenden Satzes zeigt.
- 2. Der neue (laufende) Satz wird als "inaktiv" gekennzeichnet [erstes Schreiben der Kennzeichnung]. Schritt a2 kann auch zusammen mit Schritt a1 in einer Schreiboperation erreicht werden.
- 3. Ptr1 wird auf einen Wert gesetzt, der das Ende einer verketteten Liste anzeigt (keine Verbindung zu einer nachfolgenden Datei) [erstes Schreiben des Ptr1].
- 4. Ptr3 wird auf einen Wert gesetzt, der das Ende einer verketteten Liste anzeigt (die erste Datei hat keine Verbindung zu einer vorhergehenden Datei) [erstes Schreiben des Ptr3].
- b) Anhängen oder Aktualisieren des Datenfeldes in der zweiten
und in nachfolgenden Dateien:
- 1. Anhängen eines neuen Satzes in dieser zweiten, dritten, usw. Datei und Kopieren der Daten aus dem aktuellen Satz in diesen neuen Satz. Der angehängte Satz wird der aktuelle Satz. Modifikation der Daten, so wie gefordert. Der vorhergehende Satz bleibt "voll aktiv" [erstes Schreiben des Ptr2]. Ein Stromausfall zu diesem Zeitpunkt lässt den vorhergehenden Satz noch "voll aktiv". Ptr2 zeigt auf diesen Satz, weil er in Schritt (b1) aus dem vorhergehenden Satz in diese Datei kopiert wurde, wo er auch auf den Anfang dieses Satzes zeigt.
- 2. Der neue (laufende) Satz wird als "inaktiv" gekennzeichnet [erstes Schreiben der Kennzeichnung]. Schritt b2 kann auch zusammen mit Schritt b1 in einer Schreiboperation erreicht werden.
- 3. Ptr1 wird auf einen Wert gesetzt, der das Ende einer verketteten Liste anzeigt (keine Verbindung zu einer nachfolgenden Datei) [erstes Schreiben des Ptr1].
- 4. Ptr3 wird so gesetzt, dass er auf den neuen (laufenden)
Satz in der vorhergehenden Datei zeigt. Dies stellt eine
Rückwärtsverbindung zwischen den Dateien her [erstes
Schreiben von Ptr3].
Wir sind jetzt fertig mit dem neuen (laufenden) Satz in dieser Datei 2, 3, usw. Datei 1 und Datei 2 können noch auf ihre vorhergehenden Sätze zurückgehen, die "voll aktiv" sind. Ptr2 im laufenden Satz sollte ein automatisches internes Zurückgehen (backtracking) leicht möglich machen oder einfach die Optionen in dem Befehl "Lies Satz" (Read Record command) verwenden, um den vorhergehenden Satz zu adressieren. - 5. Ptr1 in dem neuen (laufenden) Satz in der vorhergehenden Datei wird so gesetzt, dass er auf den neuen Satz in dieser Datei zeigt. Dies stellt eine Vorwärtsverbindung von der vorhergehenden Datei in der Kette zu dieser Datei her [zweites Schreiben des Ptr1].
- 6. Die Kennzeichnung in dem neuen Satz der vorhergehenden Datei
wird auf "aktiv" gesetzt [zweites Schreiben der
Kennzeichnung].
Ptr2 des neuen Satzes in der vorhergehenden Datei zeigt jedoch noch auf den vorhergehenden Satz in der vorhergehenden Datei. Deshalb kann der neue Satz noch nicht "voll aktiv" werden.
Ein Stromausfall während dieses Prozesses findet die
vorhergehenden Sätze noch wie zuvor in der (den) Datei(en): voll
aktiv, keine Änderungen. Irgendwelche Änderungen der neuen Sätze
in diesen Dateien 2, 3 usw. bleiben unsichtbar und werden
verworfen.
- 1. . . . und so weiter mit beliebigen weiteren Dateien, bis wir
alle Daten in allen Dateien, die in synchronisiertem Zustand
gehalten werden müssen, angehängt oder aktualisiert haben.
Es gibt einige abschließende Aktionen, die nur beim Anhängen
oder Aktualisieren der (letzten) Datei auftreten.
- 1. Setze das Kennzeichenfeld des letzten angehängten (laufenden) Satzes auf "aktiv" [zweites Schreiben, das erste war "inaktiv" in Schritt a1 oder b1]. Wir können dieses zweite Schreiben einsparen, wenn wir bereits wissen, dass dies die letzte Datei ist, wenn wir den neuen Satz anhängen, und seinen Inhalt modifizieren, wenn wir ihn vom vorhergehenden Satz kopieren. Ein Stromausfall zu diesem Zeitpunkt lässt eine unvollständige Kette zurück. Eine unvollständige Kette (eine, in der der letzte Satz in der Kette nicht als "aktiv" markiert ist UND Ptr2 nicht auf den gleichen Satz zeigt) wird vollständig verworfen, und wir gehen zu den "voll aktiven" (vorhergehenden) Sätzen in allen Dateien zurück.
- 2. Setze Ptr2 des neuen (aktuellen) Satzes so, dass er auf
den Anfang des aktuellen Satzes zeigt. Dieses einmalige
Schreiben macht den neuen Satz in der letzten Datei
"voll aktiv" und ermöglicht die Wiederherstellung.
Jetzt haben wir den vorhergehenden Satz in der letzten
Datei, er ist "voll aktiv", ebenso den aktuellen Satz,
der auch "voll aktiv" ist.
Ein Stromausfall nach dieser einfachen Schreiboperation hat keine nachteilige Auswirkung, weil wir jetzt alles wiederherstellen können.
Wir können einen Stromausfall nach Schritt (c1) auf zwei Arten
reparieren: wir können entweder wieder von vorn anfangen, alle
Dateien zu aktualisieren; alle vorhergehenden Sätze enthalten
noch die alten Informationen, und ein neuer Versuch, die Dateien
synchron zu aktualisieren, kann jetzt ebensogut erfolgreich
sein. Wenn wir neue Sätze an die Dateien anhängen, kopieren wir
die Ptr2-Felder auch in die neuen Sätze, was uns zu einem "voll
aktiven" Satz in jeder Datei zurückführt.
Alternativ hierzu ist es möglich, nach vorn zu gehen und jetzt
alle neuen (laufenden) Sätze in der Kette voll aktiv zu machen,
was viel bequemer ist:
Prüfe die Notwendigkeit der Wiederherstellung nach einem Stromausfall:
Prüfe die Notwendigkeit der Wiederherstellung nach einem Stromausfall:
- a) Prüfe die Primärdatei 1, ob es einen aktuellen Satz gibt, bei dem das Kennzeichen "aktiv" gesetzt ist UND Ptr2 nicht auf das Kennzeichenfeld des gleichen Satzes zeigt. Wenn wir einen solchen Satz in Datei 1 finden, muss er in Schritt (a) oben hinzugefügt worden sein. Wenn kein solcher Satz vorhanden ist, müssen wir nichts wiederherstellen nach einem Stromausfall.
Wir starten am Ende der Kette, um die Sätze voll aktiv zu
machen. Die Kette wird mit jeder erfolgreichen Aktivierung
eines neuen Satzes kürzer, bis Ptr2 im neuen (laufenden)
Satz in Datei 1 auf das Kennzeichenfeld des gleichen Satzes
zeigt und dann auch "voll aktiv" ist.
Wir starten mit dem jetzt "voll aktiven" Satz, der in Datei
1 gefunden wurde, folgen der Kette längs der Ptr1-
Verbindungen, bis Ptr1 das Ende der Kette anzeigt, wo das
Kennzeichenfeld als "aktiv, letztes in der Kette" markiert
ist.
- 1. Wenn der neue (laufende) Satz in der letzten Datei der
verketteten Liste "voll aktiv" ist, durchsuche die
Datei nach einem anderen voll aktiven Satz, und, falls
einer gefunden wird, setze dort das Kennzeichen auf
"inaktiv" [drittes Schreiben des Kennzeichens]. Fahre
mit Schritt (d4) fort und löse die Verbindung mit der
Datei.
Dies war die letzte Datei in der ursprünglichen Kette, da sie zwei "voll aktive" Sätze enthält, oder wir müssen einen Ausfall während der Wiederherstellung zwischen den Schritten (d3) und (d4) gehabt haben, nachdem diese Datei vollständig verarbeitet wurde, aber noch mit der vorhergehenden Datei verkettet war. - 2. Wenn der neue (aktuelle) Satz "aktiv" ist, aber Ptr2
nicht auf den Anfang seines eigenen Satzes zeigt, folge
Ptr2 zum vorhergehenden Satz in der letzten Datei.
Prüfe, ob der vorhergehende Satz "voll aktiv" ist;
falls ja, setze das Kennzeichen dort auf inaktiv
[drittes Schreiben des Kennzeichens].
Wenn der Strom nach diesem Schritt ausfällt, erreichen wir wieder das Ende der Kette, bemerken aber, dass wir mit dem vorhergehenden Satz nichts weiter tun müssen. - 3. Modifiziere Ptr2 in dem neuen (aktuellen) Satz in der letzten Datei in der Kette so, dass er auf den Anfang des gleichen Satzes zeigt [zweites Schreiben des Ptr2]. Dies macht den neuen (aktuellen) Satz "voll aktiv". Ein Stromausfall zu diesem Zeitpunkt lässt den neuen (aktuellen) Satz in der letzten Datei als "voll aktiv" gekennzeichnet. Wenn die Wiederherstellung erneut gestartet wird, läuft sie zum Schritt (d1) und überspringt (d2, d3, d4).
- 4. Löse die Verbindung zur gegenwärtig letzten Datei:
setze Ptr1 in der vorhergehenden Datei (Ptr3 bringt uns
dorthin) auf einen Wert, der das Ende der verketteten
Liste anzeigt.
Bei einem Stromausfall zu diesem Zeitpunkt wird die verkettete Liste um eine Datei verkürzt. Der Wiederherstellungsprozess kann einfach erneut beginnen, stellt fest, dass die vorhergehende Datei jetzt die letzte Datei ist und geht zum Schritt (d2). - 5. Wenn der Strom nicht ausfällt und wir fortfahren können: gehe rückwärts längs der durch Ptr3 verketteten Liste zur vorhergehenden Datei und wiederhole die Schritte (d1, d2, d4, d5), bis Ptr3 signalisiert, dass wir uns am Anfang der Kette in Datei 1 befinden.
- 1. Wenn der neue (letzte) Satz in der letzten Datei in der verketteten Liste aktiv ist, aber Ptr2 nicht auf den Anfang des Satzes zeigt, können wir nach (a1), (b1) oder (c1) unterbrochen worden sein. Setze die Kennzeichnung auf "inaktiv". Ein Stromausfall zu diesem Zeitpunkt lässt die Zeiger intakt (Ptr2 wird benötigt). Wir können wieder in die Wiederherstellungsroutine eintreten und zu (e2) gelangen.
- 2. Wenn der neue (aktuelle) Satz in der letzten Datei in der verketteten Liste inaktiv ist und Ptr2 nicht auf den Anfang des Satzes zeigt, wurden wir nach den Schritten (a2), (b2) oder (e1) unterbrochen. Ansonsten gehe zu Schritt (e5). Folge jetzt Ptr2 zum vorhergehenden Satz in dieser Datei. Wir sind im alten (vorhergehenden) Satz und gehen zu seinen alten Daten zurück. Setze Ptr1 so, dass er auf den neuen (aktuellen) Satz zeigt. Wir müssen ihn jetzt finden können. Beachte: Ptr1 ist nicht länger Teil einer Kette im alten Satz und kann wieder verwendet werden. Ein Stromausfall zu diesem Zeitpunkt lässt uns erneut starten, und wir gehen wieder zu Schritt (e2) zurück.
- 3. Setze die Kennzeichnung im alten Satz auf "aktiv,
wiederhergestellt", um ihn vom voll aktiven letzten
Satz in einer Kette zu unterscheiden, der in den
Schritten d1 . . . d5 beschrieben wird.
Ein Stromausfall zu diesem Zeitpunkt lässt uns die Wiederherstellung erneut starten, und wir kehren wieder zu (e2) zurück. - 4. Mache diesen alten (vorherigen) Satz in der letzten
Datei zum aktuellen Satz, vom Standpunkt des
Betriebssystems aus.
Ein Stromausfall zu diesem Zeitpunkt lässt die verkettete Liste mit einem aktuellen Satz in der letzten Datei zurück, der "aktiv, wiederhergestellt" ist, und Ptr2 zeigt auf den Anfang des Satzes. Diese Datei wurde erfolgreich wiederhergestellt, aber wir haben diese letzte Datei noch nicht aus der Kette herausgelöst.
Ein Stromausfall zu diesem Zeitpunkt bedeutet, dass wir wieder in (e2) eintreten und bis nach (e5) durchlaufen. - 5. Wenn der alte (aktuelle) Satz in der letzten Datei in der verketteten Liste "aktiv, wiederhergestellt" ist und Ptr2 auf den Anfang dieses Satzes zeigt, wird diese aktuell letzte Datei aus der Kette herausgelöst. Folge Ptr1 im aktuellen Satz der letzten Datei, um den jetzt ehemaligen "neuen" Satz zu finden, der einen gültigen Ptr3 mit einer rückwärts gerichteten Dateiverkettung enthält. Setze Ptr1 in der vorhergehenden Datei auf einen Wert, der das Ende der verketteten Liste anzeigt. Die vorhergehende Datei ist jetzt die "letzte Datei". Fahre mit Schritt (e1) fort, bis Ptr1 anzeigt, dass wir am Anfang der verketteten Liste, Datei 1, sind.
Dieses Verfahren arbeitet genauso wie das, das zwei Dateien
einschließt, unabhängig von verschiedenen Kriterien:
- - Es ist unwichtig, wieviele verschiedene Dateien betroffen sind und synchronisiert gehalten werden müssen.
- - Es ist unwichtig, in welcher Folge der Programmierer die zweite, dritte usw. Datei verwendet, d. h., wie eine spezifizierte Ablauffolge die Ordnung definiert, in der die Parameter aktualisiert werden.
- - Alles, was für die Wiederherstellung benötigt wird, ist das Wissen, welche Datei in einer atomaren Folge zuerst aktualisiert wird. Markiere eine Datei als Datei 1, wenn es eine Datei gibt, bei der die "aktive" Kennzeichnung gesetzt ist, wobei Ptr2 nicht auf den Anfang des gleichen Satzes zeigt. Wenn es keinen solchen Satz gibt, müssen wir keine Wiederherstellung durchführen.
- - Das Verfahren schreibt höchstens dreimal an die gleichen Adressen (Kennzeichnung).
Das Folgende sind kommentierte Ausschnitte aus einem Beispiel
eines Computerprogramms, das das Verfahren entsprechend der
vorliegenden Erfindung für eine Kauffolge implementiert. Wenn es
auf einem Computer läuft, führt ein solches Computerprogramm die
Schritte eines Verfahrens entsprechend der vorliegenden
Erfindung aus.
In dieser Ausführungsform der Erfindung werden die folgenden
Abkürzungen verwendet: SAM (Modul für den sicheren Zugriff (Secure
Access Module)), PSAM (Modul für den sicheren Zugriff beim Kauf
(Purchase Secure Access Module), erteilt Berechtigungen für Chipkarte,
wenn Geld abgebucht wird, speichert akkumulierte. Kaufbeträge),
LSAM (Modul für sicheren Zugriff beim Aufbuchen von Geld (Load
Secure Access Module), erteilt Berechtigung für eine Chipkarte, wenn
Geld auf die Karte aufgebucht wird, speichert akkumulierte
aufgebuchte Beträge), PSALM (Kombination von PSAM und LSAM), HDR
(Kopfsatz (Header)).
Claims (21)
1. Verfahren zur sicheren Verwaltung einer Anzahl von Dateien
in einem nichtflüchtigen Speicher, um die Daten nach dem
Abbruch einer Schreiboperation zurückzuspeichern, wobei die
Daten in einer satzorientierten Datenstruktur gespeichert
werden und jeder Satz zusätzlich zum Dateninhalt ein
Statusbyte enthält, bei dem zu jedem Zeitpunkt während der
Schreiboperation alle von der Schreiboperation betroffenen
Dateien entweder alle vor der Schreiboperation gespeicherten
Daten oder alle Daten, so wie sie nach der Schreiboperation
modifiziert sind, enthalten.
2. Verfahren nach Anspruch 1, in dem die oder jede von einer
Schreiboperation betroffene Datei eine Vielzahl von Sätzen
umfasst, wobei einer der Sätze in der oder den Dateien die
Daten vor der Schreiboperation enthält und ein anderer Satz
entsprechend der Schreiboperation modifiziert wird und jeder
Satz auch ein Statusbyte umfasst, das den Status der dort
enthaltenen Sätze anzeigt.
3. Verfahren nach Anspruch 2, in dem die Daten vor der
Schreiboperation in jeder Datei im Falle eines Stromausfalls
als aktive Daten zurückgehalten werden, bis alle Dateien
entsprechend der Schreiboperation erfolgreich aktualisiert
wurden.
4. Verfahren nach einem der vorhergehenden Ansprüche, in dem
jeder Satz ein Synchronisationsbyte enthält, das eine
Relation zu Sätzen in anderen Dateien anzeigt.
5. Verfahren nach Anspruch 4, in dem jeder Satz einen ersten
Zeiger, der den aktuellen, die Daten enthaltenden Satz einer
vorhergehenden Datei anzeigt, sowie einen weiteren Zeiger
enthält, der den aktuellen, die Daten enthaltenden Satz
einer nachfolgenden Datei anzeigt.
6. Verfahren nach Anspruch 5, das einen zweiten Zeiger (PTR 2)
enthält, der den aktuellen, die Daten enthaltenden Satz
dieser Datei anzeigt.
7. Verfahren zur sicheren Verwaltung von EEPROM-Dateien, um
Daten nach dem Abbruch einer Schreiboperation
zurückzuspeichern, wobei die Daten in den Dateien in einer
satzorientierten Datenstruktur gespeichert werden, so dass
die Daten in allen von der Schreiboperation betroffenen
Dateien bezüglich des Abschlusses der Schreiboperation
konsistent sind, und in dem die Informationen bezüglich des
Status und des Ortes der konsistenten Daten in der
satzorientierten Datenstruktur zusammen mit den Daten
gespeichert werden.
8. Verfahren nach Anspruch 7, in dem zwei oder mehr Dateien von
der Schreiboperation betroffen werden, und in dem neue oder
modifizierte Daten zyklisch in die Dateien geschrieben
werden, in dem jede Datei eine Anzeige der Anzahl von Sätzen
umfasst, die in der Datei enthalten sind, sowie eine
Vielzahl von Sätzen, und in dem jeder Satz eine Anzeige des
Status der Daten in dem Satz umfasst, eine
Synchronisationszahl, die die Synchronisation mit den Sätzen
anderer Dateien und den Daten bewirkt.
9. Verfahren nach Anspruch 8, das die Bestimmung eines
aktuellen aktiven Satzes einer ersten der Dateien und eines
Arbeitssatzes der ersten Datei umfasst, das Setzen der
Synchronisationszahl des Arbeitssatzes der Datei auf die
Synchronisationszahl des aktuellen aktiven Satzes, das
Kopieren der Daten, die in dem aktuellen aktiven Satz
gespeichert sind, in den Arbeitssatz, und das Hinzufügen
oder Modifizieren der Daten entsprechend der
Schreiboperation in dem Arbeitssatz, das Verändern des
Status des Arbeitssatzes der Datei in "aktiv", die
Wiederholung der Schritte für jede weitere Datei und die
Änderung des Satzstatus des ursprünglichen aktuellen aktiven
Satzes der ersten Datei in "inaktiv" als Anzeige dafür, dass
die Schreiboperation abgeschlossen ist.
10. Verfahren nach Anspruch 9, in dem der Schritt der Bestimmung
des aktuellen aktiven Satzes und des Arbeitssatzes der
Dateien die Suche nach dem ersten Satz in der Datei umfasst,
dessen Statusbyte einen "aktiven" Status anzeigt und diesen
Satz zum aktuellen aktiven Satz und den nachfolgenden Satz
zum Arbeitssatz macht.
11. Verfahren nach Anspruch 1, das umfasst:
Hinzufügen oder Ändern der Daten eines Satzes in der ersten Datei durch:
Kennzeichnung des aktuellen aktiven Satzes der Datei und eines Arbeitssatzes und Kopieren der Daten, die hinzugefügt oder modifiziert werden sollen, aus dem aktuellen aktiven Satz in den Arbeitssatz;
Ändern der Daten in dem Arbeitssatz entsprechend der Schreiboperation, wobei das Statusbyte des aktuellen aktiven Satzes anzeigt, dass der Satz "voll aktiv" ist und der Status des Arbeitssatzes anzeigt, dass der Satz "inaktiv" ist;
Setzen der Zeiger für die Synchronisationsanzeige, um anzuzeigen, dass die Datei die erste Datei ist, und um anzuzeigen, dass keine weiteren Dateien geändert wurden;
Kennzeichnen eines aktuellen aktiven Satzes und eines Arbeitssatzes einer zweiten Datei und Kopieren der Daten aus dem aktuellen aktiven Satz in den Arbeitssatz; Ändern der Daten in dem Arbeitssatz entsprechend der Schreiboperation, wobei das Statusbyte des aktiven aktuellen Satzes anzeigt, dass die Daten in diesem Satz "voll aktiv" sind und das Statusbyte des Arbeitssatzes anzeigt, dass dieser Satz "inaktiv" ist;
Setzen der Zeiger für die Synchronisationsanzeige, um die Verbindung zwischen dieser Datei und der ersten Datei anzuzeigen und Ändern des Zeigers für die Synchronisationsanzeige der ersten Datei, um seine Verbindung zu der zweiten Datei anzuzeigen; und
Wiederholung dieser Schritte für die zweite Datei für beliebige nachfolgende Dateien, wobei für die letzte durch die Schreiboperation beeinflusste Datei nach dem Setzen der Zeiger für die Synchronisationsanzeige und der Feststellung, dass dies die letzte Datei ist, ein Anzeige-Zeiger gesetzt wird, um anzuzeigen, dass keine nachfolgenden Dateien von der Schreiboperation betroffen sind; und
Setzen des Statusbytes in jedem der Arbeitssätze der betroffenen Dateien auf einen "voll aktiven" Zustand, wonach die Schreiboperation abgeschlossen ist und die geänderten Daten in allen Dateien die aktiven Daten sind.
Hinzufügen oder Ändern der Daten eines Satzes in der ersten Datei durch:
Kennzeichnung des aktuellen aktiven Satzes der Datei und eines Arbeitssatzes und Kopieren der Daten, die hinzugefügt oder modifiziert werden sollen, aus dem aktuellen aktiven Satz in den Arbeitssatz;
Ändern der Daten in dem Arbeitssatz entsprechend der Schreiboperation, wobei das Statusbyte des aktuellen aktiven Satzes anzeigt, dass der Satz "voll aktiv" ist und der Status des Arbeitssatzes anzeigt, dass der Satz "inaktiv" ist;
Setzen der Zeiger für die Synchronisationsanzeige, um anzuzeigen, dass die Datei die erste Datei ist, und um anzuzeigen, dass keine weiteren Dateien geändert wurden;
Kennzeichnen eines aktuellen aktiven Satzes und eines Arbeitssatzes einer zweiten Datei und Kopieren der Daten aus dem aktuellen aktiven Satz in den Arbeitssatz; Ändern der Daten in dem Arbeitssatz entsprechend der Schreiboperation, wobei das Statusbyte des aktiven aktuellen Satzes anzeigt, dass die Daten in diesem Satz "voll aktiv" sind und das Statusbyte des Arbeitssatzes anzeigt, dass dieser Satz "inaktiv" ist;
Setzen der Zeiger für die Synchronisationsanzeige, um die Verbindung zwischen dieser Datei und der ersten Datei anzuzeigen und Ändern des Zeigers für die Synchronisationsanzeige der ersten Datei, um seine Verbindung zu der zweiten Datei anzuzeigen; und
Wiederholung dieser Schritte für die zweite Datei für beliebige nachfolgende Dateien, wobei für die letzte durch die Schreiboperation beeinflusste Datei nach dem Setzen der Zeiger für die Synchronisationsanzeige und der Feststellung, dass dies die letzte Datei ist, ein Anzeige-Zeiger gesetzt wird, um anzuzeigen, dass keine nachfolgenden Dateien von der Schreiboperation betroffen sind; und
Setzen des Statusbytes in jedem der Arbeitssätze der betroffenen Dateien auf einen "voll aktiven" Zustand, wonach die Schreiboperation abgeschlossen ist und die geänderten Daten in allen Dateien die aktiven Daten sind.
12. Verfahren nach Anspruch 11, wobei bei Unterbrechung der
Schreiboperation in irgendeinem Stadium entweder alle
aktuellen aktiven Sätze aller von der Operation betroffenen
Dateien als "voll aktive" Sätze gekennzeichnet und die in
den Dateien vor dem Start der Schreiboperation enthaltenen
Daten die aktuellen aktiven Daten sind oder alle
Arbeitssätze aller Dateien auf einen "voll aktiven" Zustand
gesetzt sind und somit alle Dateien die auf Grund der
Schreiboperation geänderten Daten als aktive Daten
enthalten.
13. Verfahren nach Anspruch 12, in dem die Unterbrechung der
Schreiboperation während oder unmittelbar nach dem Schritt
der Änderung der Daten in dem Arbeitssatz der ersten Datei
zu dem aktuellen aktiven Satz der ersten Datei führt, der
der "voll aktive" Datensatz bleibt, zu einem Zeitpunkt, in
dem keine weiteren Dateien geändert wurden und alle als
"aktiv" ansprechbaren Dateien den Daten vor der
Schreiboperation entsprechen.
14. Verfahren nach Anspruch 12, in dem eine Unterbrechung der
Schreiboperation während oder nach dem Setzen der Zeiger für
die Synchronisationsanzeige in der ersten Datei zu dem
aktuellen aktiven Satz der ersten Datei führt, der ein "voll
aktiver" Datensatz bleibt, zu einem Zeitpunkt, in dem keine
weiteren Dateien geändert wurden und alle als "aktiv"
ansprechbaren Dateien den Daten vor der Schreiboperation
entsprechen.
15. Verfahren nach Anspruch 12, in dem eine Unterbrechung der
Schreiboperation während oder unmittelbar nach dem Schritt
der Änderung der Daten in der zweiten oder nachfolgenden
Dateien zu dem aktuellen aktiven Satz der zweiten oder
nachfolgender Dateien führt, der als "voll aktiver"
Datensatz gesetzt bleibt, und, da der
Synchronisationsanzeige-Zeiger der ersten Datei noch
anzeigt, dass der aktuelle aktive Satz noch der "voll
aktive" Satz der ersten Datei ist, die aktuell aktiven Daten
beider oder aller Dateien so bleiben, wie sie vor dem Start
der Schreiboperation waren.
16. Verfahren nach Anspruch 12, in dem eine Unterbrechung des
Schreibprozesses während oder unmittelbar nach der Änderung
der Daten in dem Arbeitssatz der letzten von der
Schreiboperation betroffenen Datei dazu führt, dass alle
aktuellen aktiven Sätze aller Dateien als voll aktive Sätze
zurückbehalten werden, wobei die aktuell aktiven Daten den
Daten vor der Schreiboperation entsprechen.
17. Verfahren nach Anspruch 12, in dem eine Unterbrechung des
Schreibprozesses während oder unmittelbar nach der Änderung
der Daten in dem Arbeitssatz der letzten von der
Schreiboperation betroffenen Datei bewirkt, dass alle
Arbeitssätze aller Dateien als "voll aktive" Sätze
gekennzeichnet werden, so dass alle Dateien Daten, die
infolge der Schreiboperation geändert wurden, als die
aktuell aktiven Daten enthalten.
18. Verfahren nach Anspruch 11, in dem, wenn alle
Schreibschritte ohne eine Unterbrechung erfolgreich
abgeschlossen wurden, die Synchronisationsanzeige-Zeiger
benutzt werden, um die Verbindungen zwischen den
modifizierten Sätzen der betroffenen Dateien anzugeben, und
alle Arbeitssätze werden auf den Status "voll aktiv"
gesetzt, und die aktuellen aktiven Sätze werden auf den
Status "inaktiv" gesetzt.
19. System für die sichere Verwaltung von EEPROM-Dateien, so
dass die Daten nach dem Abbruch der Schreiboperation in die
Dateien zurückgespeichert werden können, wobei das System
einen EEPROM umfasst sowie Mittel zum Schreiben von Daten in
den EEPROM, wobei der EEPROM eine Anzahl von Dateien und
jede Datei eine Vielzahl von Sätzen in einer
satzorientierten Datenstruktur umfasst.
20. Computerprogramm, das so eingerichtet ist, dass es, wenn es
auf einem Computer läuft, eine sichere Verwaltung der
EEPROM-Dateien ausführt, so dass Daten nach dem Abbruch
einer Schreiboperation wiederhergestellt werden können,
wobei das Programm so eingerichtet ist, dass es die Schritte
eines beliebigen der Ansprüche 1 bis 18 ausführt.
21. Computerprogramm nach Anspruch 20, das auf einem
Datenträgermedium gespeichert ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US99-126169 | 1999-12-30 | ||
EP99126169 | 1999-12-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10059006A1 true DE10059006A1 (de) | 2001-07-19 |
DE10059006B4 DE10059006B4 (de) | 2004-04-15 |
Family
ID=8239759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10059006A Expired - Fee Related DE10059006B4 (de) | 1999-12-30 | 2000-11-28 | Verfahren und System zur sicheren Verwaltung von Dateien in nichtflüchtigen Speichern |
Country Status (2)
Country | Link |
---|---|
US (1) | US20010007108A1 (de) |
DE (1) | DE10059006B4 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10141926A1 (de) * | 2001-08-28 | 2003-04-03 | Giesecke & Devrient Gmbh | Verfahren und Vorrichtung zur Verwaltung eines Datenspeichers |
US9319160B2 (en) | 2006-05-12 | 2016-04-19 | Siemens Aktiengesellschaft | Method for updating and method for checking an update of at least one data element in a data carousel, and an associated first device, second device, and data flow |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7043493B2 (en) * | 2001-09-17 | 2006-05-09 | Fujitsu Limited | Hierarchical file system and anti-tearing algorithm for a limited-resource computer such as a smart card |
ATE521970T1 (de) * | 2002-06-04 | 2011-09-15 | Nxp Bv | Zurückrollverfahren für eine chipkarte |
GB2393273A (en) * | 2002-09-20 | 2004-03-24 | Sharp Kk | Method and apparatus for detecting an error in writing to persistent memory |
US20080101613A1 (en) * | 2006-10-27 | 2008-05-01 | Brunts Randall T | Autonomous Field Reprogramming |
US8321481B2 (en) | 2010-05-13 | 2012-11-27 | Assa Abloy Ab | Method for incremental anti-tear garbage collection |
US8667033B1 (en) | 2011-05-14 | 2014-03-04 | Gopivotal, Inc. | Persistent file system objects for management of databases |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4949251A (en) * | 1988-07-18 | 1990-08-14 | Digital Equipment Corporation | Exactly-once semantics in a TP queuing system |
JPH0540682A (ja) * | 1990-06-08 | 1993-02-19 | Internatl Business Mach Corp <Ibm> | アトミシテイを有する記憶装置の高可用性耐故障再配置 |
US5369757A (en) * | 1991-06-18 | 1994-11-29 | Digital Equipment Corporation | Recovery logging in the presence of snapshot files by ordering of buffer pool flushing |
US5469562A (en) * | 1992-06-26 | 1995-11-21 | Digital Equipment Corporation | Durable atomic storage update manager |
US5873097A (en) * | 1993-05-12 | 1999-02-16 | Apple Computer, Inc. | Update mechanism for computer storage container manager |
US5592432A (en) * | 1995-09-05 | 1997-01-07 | Emc Corp | Cache management system using time stamping for replacement queue |
US5751993A (en) * | 1995-09-05 | 1998-05-12 | Emc Corporation | Cache management system |
US5832526A (en) * | 1996-01-24 | 1998-11-03 | Symantec Corporation | Method and apparatus using slack area of file storage structures for file reconstruction |
US5754762A (en) * | 1997-01-13 | 1998-05-19 | Kuo; Chih-Cheng | Secure multiple application IC card using interrupt instruction issued by operating system or application program to control operation flag that determines the operational mode of bi-modal CPU |
US5974503A (en) * | 1997-04-25 | 1999-10-26 | Emc Corporation | Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names |
US6487202B1 (en) * | 1997-06-30 | 2002-11-26 | Cisco Technology, Inc. | Method and apparatus for maximizing memory throughput |
US6122645A (en) * | 1997-08-25 | 2000-09-19 | Lucent Technologies, Inc. | System and method for physically versioning data in a main memory database |
US6230200B1 (en) * | 1997-09-08 | 2001-05-08 | Emc Corporation | Dynamic modeling for resource allocation in a file server |
US6023710A (en) * | 1997-12-23 | 2000-02-08 | Microsoft Corporation | System and method for long-term administration of archival storage |
US6298425B1 (en) * | 1999-01-12 | 2001-10-02 | Compaq Computer Corp. | Computer disk management system using doublet A-B logging |
-
2000
- 2000-11-28 DE DE10059006A patent/DE10059006B4/de not_active Expired - Fee Related
- 2000-12-22 US US09/746,489 patent/US20010007108A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10141926A1 (de) * | 2001-08-28 | 2003-04-03 | Giesecke & Devrient Gmbh | Verfahren und Vorrichtung zur Verwaltung eines Datenspeichers |
DE10141926B4 (de) * | 2001-08-28 | 2004-05-06 | Giesecke & Devrient Gmbh | Verfahren zur Sicherung der Daten eines Datenspeichers |
US9319160B2 (en) | 2006-05-12 | 2016-04-19 | Siemens Aktiengesellschaft | Method for updating and method for checking an update of at least one data element in a data carousel, and an associated first device, second device, and data flow |
Also Published As
Publication number | Publication date |
---|---|
US20010007108A1 (en) | 2001-07-05 |
DE10059006B4 (de) | 2004-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19600081C2 (de) | Sicherung der Datenintegrität bei Datenträgerkarten | |
DE3784190T2 (de) | Eintragung eines datenbasisindex in das journal zur verbesserten rueckstellung. | |
DE69133302T2 (de) | Registerabbildung in einem einzigen Taktzyklus | |
DE19740525C1 (de) | Verfahren zur Abspeicherung und Wiedergewinnung von Daten in einem Steuersystem, insbesondere in einem Kraftfahrzeug | |
DE4220198C2 (de) | Transaktionsverarbeitungsverfahren für einen digitalen Computer und Transaktionsverarbeitungssystem | |
DE68927142T2 (de) | Verriegelungs- und Lese-Minimierung in einem segmentierten Speicherraum | |
DE4244266C2 (de) | Verfahren und Schaltungseinrichtung zum dynamischen Konfigurieren von Gerätetreibern für Computersystem-Betriebsmittel | |
DE60030872T2 (de) | Verfahren und anordnung um atomische aktualisierungen durchzuführen durch verwendung eines logischen flaschspeichergerätes | |
DE69030024T2 (de) | Verfahren zur Herstellung einer Duplikation von einer Datenbank | |
DE69821426T2 (de) | Speicheranordung, und Datenverarbeitungssystem und -Verfahren | |
DE2916658A1 (de) | Selbstprogrammierbarer mikroprozessor | |
DE10297281T5 (de) | Verfahren zum elementaren Aktualisieren einer Vielzahl von Dateien | |
DE3131341A1 (de) | "pufferspeicherorganisation" | |
DE10059006A1 (de) | Verfahren und System zur sicheren Verwaltung von Dateien in nichtflüchtigen Speichern | |
DE2720864A1 (de) | Verfahren und anordnung zum lueckenfreien einspeichern einer anzahl von datenblocks unbestimmter laenge | |
DE69023770T2 (de) | Verfahren zum betrieb eines datenverarbeitungssystems. | |
DE60317801T2 (de) | Verfahren und vorrichtung zur erkennung von fehlern während des schreibens in einen nichtflüchtigen speicher | |
DE1499742A1 (de) | Steuerbare Speicherzugriffsvorrichtung fuer Speichereinrichtungen von Datenverarbeitungsanlagen mit Multiprogrammverarbeitung | |
DE3852694T2 (de) | Datenverarbeitungsvorrichtung. | |
DE2750126B2 (de) | ||
DE10141926B4 (de) | Verfahren zur Sicherung der Daten eines Datenspeichers | |
DE102004005290B3 (de) | Verfahren und Vorrichtung zur Absicherung von Daten in einem nichtflüchtigen Datenspeicher | |
DE1774212B2 (de) | En 20417 12.08.67 " 37132 bez: datenverarbeitungsanlage | |
DE10260103A1 (de) | Verfahren und Vorrichtung zur Änderung von Software in einem Steuergerät sowie entsprechendes Steuergerät | |
DE19930144C1 (de) | Verfahren zum Erkennen von fehlerhaften Speicherzugriffen in prozessorgesteuerten Einrichtungen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |