EP1741029A2 - Managing a file system in a portable data carrier - Google Patents

Managing a file system in a portable data carrier

Info

Publication number
EP1741029A2
EP1741029A2 EP05740488A EP05740488A EP1741029A2 EP 1741029 A2 EP1741029 A2 EP 1741029A2 EP 05740488 A EP05740488 A EP 05740488A EP 05740488 A EP05740488 A EP 05740488A EP 1741029 A2 EP1741029 A2 EP 1741029A2
Authority
EP
European Patent Office
Prior art keywords
file system
file
processes
data carrier
visibility information
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.)
Ceased
Application number
EP05740488A
Other languages
German (de)
French (fr)
Inventor
Robert Hockauf
Thorsten Ulbricht
Rudolf Schubert
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.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Publication of EP1741029A2 publication Critical patent/EP1741029A2/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files

Definitions

  • the invention relates generally to the technical field of maintaining a file system in a portable data carrier, the data carrier having an operating system that supports concurrent - that is, parallel or quasi-parallel - processes.
  • a portable data carrier in the sense of the present document can be, in particular, a chip card (smart card) in various designs or a chip module or some other resource-limited system.
  • Portable data carriers are being manufactured with more and more storage space and ever greater computing power.
  • An internal research project by Giesecke & Devrient GmbH is currently investigating the extent to which a multitasking operating system can be implemented in a modern, portable data carrier.
  • the implementation of a U ⁇ IX®-like operating system e.g. of the operating system known under the Linux® brand.
  • significant problems arise from the fact that the resource requirements of a typical Linux implementation fully utilize or even exceed the storage and computing capacity of today's portable data carriers. For this reason, the use of resource-saving processes is of crucial importance.
  • a phone book is created by one process and a second process checks whether a phone book is available. If the creation of the phone book fails - e.g. because of a sudden interruption of the energy supply of the data carrier - then the created file must be removed without residue because of the requirement for an atomic execution of the process. If the second process happened to have performed a file query during the brief existence of the file, it could come to the erroneous result that there is a telephone book.
  • US Pat. No. 6,220,510 discloses a chip card which is capable of executing several application programs. Each application program is assigned a static and a dynamic memory area, which are shielded from the other application programs. Tasks can be delegated from a first application program to a second application program via a command / response mechanism; in this connection the commands and responses are written to a public data storage area.
  • the object of the invention is to provide a mechanism for managing a file system in a portable data carrier, by means of which at least some errors in the creation of structures in the file system and / or deletion of structures from the file system can be avoided with little resource expenditure.
  • inconsistencies of the type mentioned above which can occur due to access by concurrent processes to the file system, are to be prevented.
  • the invention is based on the basic idea of managing process-specific visibility information for at least some structures in the file system in order to cause an operation in which a process creates a structure in the file system or deletes it from the file system for the other processes, at least until successful Completion of this process remains hidden.
  • a newly created file will only be visible if the complete process of creating the file - including, if necessary, saving data to the file - has been successfully completed, i.e. if there is no longer any possibility of canceling or failing this process consists. Errors caused by access conflicts can thus be reliably avoided.
  • a particular advantage of the invention is that - with a suitable implementation - only little memory is required for the visibility information. Furthermore, no complex additional operations - for example, making extensive backup copies in a shadow memory or rollback buffer - are required.
  • the visibility information contains, at least for those structures of the file system which are currently being created or for which the deletion process has not yet been completed, an identifier of the process responsible for the creation or deletion process and a mark ifl g) which indicates whether it is a creation or a delete operation.
  • the visibility information can consist of a mark that indicates whether or not a visibility check should be carried out first when an attempt is made to access the structure to which the visibility information is assigned. If a visibility check is to be carried out, an attachment can be provided in these configurations, which indicates the process for which the respective structure is visible or hidden.
  • the visibility information for this structure is set such that the structure is only visible to the generating process. Only after the creation process has been successfully completed - for example after confirmation with a Commii command - are the Visibility information set so that the structure is generally visible. Depending on the type and meaning of the visibility information, this setting can be made, for example, by deleting the visibility information or by setting a process identifier contained in it to an invalid value. If the process is terminated, the structure that was never visible to the other processes is deleted from the file system.
  • the visibility information is initially set such that the structure is hidden from the process requesting the deletion, but remains visible to all other processes. Only when it is certain that the deletion is to be carried out irrevocably will the structure actually be deleted from the file system. If the deletion process is terminated - if the structure also for the person requesting the deletion
  • the process involving the creation or deletion of the structure is an atomic process, which is either carried out completely or is terminated without residue.
  • the termination can be triggered, for example, by an occurring error or power failure or by an abort command.
  • Successful completion requires confirmation by a Co zt command in some embodiments, while in other embodiments the operation is successfully completed if no error occurs.
  • the process can be, for example, an atomic transaction or an atomic process in which initially a file is created and then data is saved in this file.
  • the invention can be used in connection with all structures in the file system that can be created and / or deleted by concurrent processes - these can be processes of the operating system and / or an application program.
  • Such structures can e.g. Files or directories.
  • Refinements are also provided in which only files are viewed as structures in the sense of the invention. This includes configurations in which directories in the file system are designed as a special type of file.
  • the computer program product according to the invention can be a physical medium with stored program instructions, for example a semiconductor memory or a floppy disk or a CD-ROM.
  • the computer program product can also be a non-physical medium, for example a signal transmitted over a computer network.
  • the data carrier and / or the computer program product have features which correspond to the features described above and / or to the features mentioned in the dependent method claims.
  • 1 is a block diagram with functional units of a data carrier according to an embodiment of the invention
  • 2 shows a representation of the access of processes to a file system during the operation of the data carrier from FIG. 1,
  • Fig. 3 is a flowchart of the creation of a file in the disk of Fig. 1, and
  • FIG. 4 shows a flow diagram of the deletion of a file in the data carrier from FIG. 1.
  • the data carrier 10 shown in FIG. 1 has a processor 12, a memory 14 and an interface circuit 16 for contactless or contact-based communication with an external terminal (not shown in FIG. 1) on a single semiconductor chip.
  • the memory 14 is divided in a manner known per se into a plurality of memory fields designed in different technologies - RAM, ROM and EEPROM in the present exemplary embodiment.
  • the memory 14 there is program code which implements an operating system 18.
  • the operating system 18 is a variant of the operating system known under the Linux brand, tailored to use in the data carrier 10.
  • the memory 14 contains at least one application program 20 and a file system 22 which has file and directory structures in a tree-like arrangement.
  • the processes 24x can system processes of the operating system 18 and / or user processes of the application program 20 his.
  • Each of the processes 24x has a unique process identifier PID (process identifier); 2, the process identifiers "1001", "1002" and "1003" are shown by way of example.
  • the operating system 18 controls and coordinates the concurrent flow of the processes 24x.
  • Processes 24x can also access file system 22 via operating system 18. 2 shows two structures 26A, 26B and two files 26C, 26D as structures of the file system 22; these and other structures contained in the file system 22 are referred to in the following as 26x.
  • FIG. 3 shows an exemplary sequence in which the process 24 A - process identifier "1001" - creates a new file in a successful transaction - here the file 26C as an example - and writes data to this file.
  • the vertical arrows in Fig. 3 indicate the timing of the process;
  • the sequence of different states of the file system 22 during the process is illustrated in the column headed “file system”.
  • the file 26C is assigned visibility information 32, which contains the identifier PID of the commanding process - in the present case the identifier "1001" of the process 24A - and a label M (fing).
  • the mark M indicates a visibility mode for the file 26C.
  • the visibility mode "1" used here when creating a file generally means that the process identifier PID contained in the visibility information 32 indicates the process for which the file is to be visible. The file should be hidden for all other processes.
  • a visibility mode "0" would indicate that the process identifier PID contained in the visibility information 32 indicates the - only - process for which the file is to be hidden. This visibility mode "0" is used in connection with the deletion of a file to be described.
  • the file 26C generated after the execution of the command 30 is only visible for the process 24A with the process identifier "1001" and is hidden for all other processes 24B, 24C, .... If such another process 24B, 24C, ... were to request a listing of the structures 26x contained in the file system 22 at the present time, then the file 26C would not be contained therein. Likewise, the other process 24B, 24C, ... would try to get an error message about a non-existent file when trying to access file 26C.
  • process 24A writes data to newly created file 26C.
  • the visibility information 32 remains unchanged changed.
  • the file 26C is therefore still only visible to the process 24A and hidden for all other processes 24B, 24C, ...
  • the process 24A confirms the transaction with a Corarmt command 36
  • the successful completion of the transaction is indicated by the process identifier PID contained in the visibility information 32 being set to an invalid value - e.g. the value "0" - is set.
  • the visibility information 32 is thus invalid overall, which means that there are no longer any restrictions regarding the visibility of the file 26C. All processes 24x can now see the file 26C and have unlimited access to it.
  • the file 26C is deleted from the file system 22. This can take place immediately in response to the abort command or the next time the data carrier 10 is started up or at another suitable point in time. Except for the process 24A executing the transaction, in this case no other process 24B, 24C, ... could at any time have knowledge of the temporarily created file 26C.
  • commands 30 and 34 can be combined into a single command that writes data to a new file to be created.
  • this command - or command 30 shown in FIG. 3 - can implicitly indicate the start of a new transaction, so that command 28 can be omitted.
  • commands 30 and 34 can be combined into a single command that writes data to a new file to be created.
  • this command - or command 30 shown in FIG. 3 - can implicitly indicate the start of a new transaction, so that command 28 can be omitted.
  • a Coraraz ' t command can implicitly indicate the start of a new transaction confirmation by a Coraraz ' t command.
  • FIG. 4 illustrates the course of a process in which an existing file in the file system 22 - here the file 26D as an example - is deleted.
  • the initial state for this process is that the file 26D is contained in the file system 22 and is visible 24x to all processes. This can e.g. are indicated by missing or invalid visibility information 32 - in the present example by an invalid process identifier PID with the value "0".
  • process 24A requests operating system 18 to start a new transaction and delete file 26D.
  • the operating system 18 does not yet delete the file 26D from the file system 22 at this time, but only hides it from the process 24A requesting the deletion.
  • the value "1001" is entered in the visibility information 32 as the process identifier PID of the process 24A requesting the deletion and the value "0" as the visibility mode M; the meaning of this value for the visibility mode M has already been explained above.
  • the file 26D is thus still visible to all other processes 24B, 24C, ...
  • the operating system 18 does not actually initiate the actual deletion of the file 26D from the file system 22 in response to the receipt of a Commz ⁇ command 42 to confirm the transaction. Only at this point in time can the other processes 24B, 24C,.. - Get transaction. If the deletion transaction is not completed successfully, but is canceled, the file 26D remains in the file system 22.
  • the visibility information 32 is then set again - for example by setting the process identifier PID to the invalid value "0" - that the file 26D is available to everyone Processes is visible 24x.
  • Processes other than process 24A issuing delete command 40 - continuously visible.

Abstract

Disclosed is a method for managing a file system (22) in a portable data carrier. According to said method, process-specific visibility data (32) is managed for at least some structures (26x) in the file system (22) such that an event during which a process (24A) creates or deletes a structure (26x) in or from the file system (22) remains hidden for other concurrently executed processes at least until said event has been successfully completed. A portable data carrier and a computer program product are provided with corresponding characteristics. The invention allows at least some flawed sequences that occur when creating and/or deleting structures (26x) in/from the file system (22) to be prevented with little effort in terms of resources.

Description

Verwalten eines Dateisystems in einem tragbaren Datenträger Manage a file system in a portable disk
Die Erfindung betrifft allgemein das technische Gebiet des Nerwaltens eines Dateisystems in einem tragbaren Datenträger, wobei der Datenträger ein Betriebssystem aufweist, das nebenläufige - also parallele oder quasi-parallele - Prozesse unterstützt. Ein tragbarer Datenträger im Sinne des vorliegenden Dokuments kann insbesondere eine Chipkarte (smart card) in diversen Bauformen oder ein Chipmodul oder ein sonstiges ressourcenbeschränktes System sein.The invention relates generally to the technical field of maintaining a file system in a portable data carrier, the data carrier having an operating system that supports concurrent - that is, parallel or quasi-parallel - processes. A portable data carrier in the sense of the present document can be, in particular, a chip card (smart card) in various designs or a chip module or some other resource-limited system.
Tragbare Datenträger werden mit immer mehr Speicherplatz und immer größerer Rechenleistung hergestellt. In einem internen Forschungsprojekt der Giesecke & Devrient GmbH wird gegenwärtig untersucht, inwieweit ein multitaskingfähiges Betriebssystem in einem modernen tragbaren Datenträger implementiert werden kann. In diesem Zusammenhang ist insbesondere an die Implementierung eines UΝIX®-artigen Betriebssystems, z.B. des unter der Marke Linux® bekannten Betriebssystems, gedacht. Es ergeben sich jedoch erhebliche Probleme aus der Tatsache, daß der Ressourcenbedarf einer typischen Linux-Implementierung die Speicher- und Rechenkapazität heutiger tragbarer Datenträger voll ausschöpft oder sogar übersteigt. Aus diesem Grund ist der Einsatz ressourcenschonender Verfahren von entscheidender Wichtigkeit.Portable data carriers are being manufactured with more and more storage space and ever greater computing power. An internal research project by Giesecke & Devrient GmbH is currently investigating the extent to which a multitasking operating system can be implemented in a modern, portable data carrier. In this context, the implementation of a UΝIX®-like operating system, e.g. of the operating system known under the Linux® brand. However, significant problems arise from the fact that the resource requirements of a typical Linux implementation fully utilize or even exceed the storage and computing capacity of today's portable data carriers. For this reason, the use of resource-saving processes is of crucial importance.
Ferner werden bei tragbaren Datenträgern in der Regel hohe Anforderungen an die Sicherheit und Zuverlässigkeit der Hardware, des Betriebssystems und der ausgeführten Anwendungsprogramme gestellt. So müssen z.B. Zugriffskonflikte und Inkonsistenzen, die auftreten können, wenn mehrere Prozesse einer multitaskingfähigen Chipkarte unabhängig voneinander auf ein gemeinsam genutztes Dateisystem zugreifen, sicher vermieden werden. Es muß dafür gesorgt werden, daß Änderungen im Dateisystem, immer atomar, d.h. entweder ganz oder gar nicht, erfolgen. Für Schreibzugriffe auf eine vorhandene Struktur des Dateisystems ist es in diesem Zusammenhang bekannt, die Struktur - eine Datei oder ein Verzeichnis - für die Dauer des Schreibzugriffs gegen Zugriffe der übrigen Prozesse zu sperren.Furthermore, high demands are generally placed on the security and reliability of the hardware, the operating system and the application programs executed in the case of portable data carriers. For example, access conflicts and inconsistencies that can occur when several processes of a multitasking-capable chip card access a shared file system independently of one another must be reliably avoided. It must be ensured that changes in the file system, always atomic, ie either completely or not at all. In this context, for write access to an existing structure of the file system, it is known to lock the structure - a file or a directory - against access by the other processes for the duration of the write access.
Eine besondere Situation ergibt sich jedoch, wenn eine Struktur im Dateisystem, auf die andere Prozesse möglicherweise zugreifen, neu angelegt oder gelöscht wird. So könnte z.B. bei einer GSM-Karte von einem Prozeß ein Telefonbuch angelegt werden und von einem zweiten Prozeß überprüft werden, ob ein Telefonbuch vorhanden ist. Wenn das Anlegen des Telefonbuchs fehlschlägt - z.B. wegen einer plötzlichen Unterbrechung der Energieversorgung des Datenträgers -, dann muß wegen der Forderung nach einer atomaren Ausführung des Vorgangs die angelegte Datei rückstandsfrei entfernt werden. Wenn nun der zweite Prozeß zufällig während der kurzzeiti- gen Existenz der Datei eine Dateiabfrage durchgeführt hat, könnte er zu dem fehlerhaften Ergebnis kommen, daß ein Telefonbuch vorliegt.However, a special situation arises when a structure in the file system that other processes may access is created or deleted. For example, With a GSM card, a phone book is created by one process and a second process checks whether a phone book is available. If the creation of the phone book fails - e.g. because of a sudden interruption of the energy supply of the data carrier - then the created file must be removed without residue because of the requirement for an atomic execution of the process. If the second process happened to have performed a file query during the brief existence of the file, it could come to the erroneous result that there is a telephone book.
Es ergibt sich damit das Problem, Fehlabläufe der gerade beschriebenen Art bei der Ausführung nebenläufiger Prozesse in einem tragbaren Datenträger zuverlässig zu vermeiden. Eine entsprechende Problematik stellt sich beim Löschen einer Struktur im Dateisystem.The problem thus arises of reliably avoiding errors of the type just described when executing concurrent processes in a portable data carrier. A corresponding problem arises when deleting a structure in the file system.
Das US-Patent 6,220,510 offenbart eine Chipkarte, die mehrere Anwendungsprogramme auszuführen vermag. Jedem Anwendungsprogramm sind je ein statischer und ein dynamischer Speicherbereich zugeordnet, die gegenüber den anderen Anwendungsprogrammen abgeschirmt sind. Aufgaben können über einen Befehls/ Antwort-Mechanismus von einem ersten Anwendungsprogramm an ein zweites Anwendungsprogramm delegiert werden; hierbei werden die Befehle und Antworten in einen öffentlichen Datenspeicherbereich geschrieben.US Pat. No. 6,220,510 discloses a chip card which is capable of executing several application programs. Each application program is assigned a static and a dynamic memory area, which are shielded from the other application programs. Tasks can be delegated from a first application program to a second application program via a command / response mechanism; in this connection the commands and responses are written to a public data storage area.
Die Erfindung hat die Aufgabe, einen Mechanismus zum Verwalten eines Dateisystems in einem tragbaren Datenträger bereitzustellen, durch den sich zumindest manche Fehlabläufe beim Erzeugen von Strukturen im Dateisystem und/ oder Löschen von Strukturen aus dem Dateisystem mit geringem Ressourcenaufwand vermeiden lassen. Insbesondere sollen Inkonsis- tenzen der oben genannten Art, die durch Zugriffe nebenläufiger Prozesse auf das Dateisystem auftreten können, verhindert werden.The object of the invention is to provide a mechanism for managing a file system in a portable data carrier, by means of which at least some errors in the creation of structures in the file system and / or deletion of structures from the file system can be avoided with little resource expenditure. In particular, inconsistencies of the type mentioned above, which can occur due to access by concurrent processes to the file system, are to be prevented.
Erfindungsgemäß wird diese Aufgabe ganz oder zum Teil gelöst durch ein Verfahren gemäß Anspruch 1, einen tragbaren Datenträger gemäß Anspruch 14 und ein Computerprogrammprodukt gemäß Anspruch 15. Die abhängi- gen Ansprüche betreffen bevorzugte Ausgestaltungen der Erfindung.According to the invention, this object is achieved in whole or in part by a method according to claim 1, a portable data carrier according to claim 14 and a computer program product according to claim 15. The dependent claims relate to preferred embodiments of the invention.
Die Erfindung geht von der Grundidee aus, für zumindest manche Strukturen im Dateisystem prozeßspezifische Sichtbarkeitsinformationen zu verwalten, um zu bewirken, daß ein Vorgang, bei dem ein Prozeß eine Struktur im Dateisystem erzeugt oder aus dem Dateisystem löscht, für die anderen Prozesse zumindest bis zum erfolgreichen Abschluß dieses Vorgangs verborgen bleibt. Für die anderen Prozesse wird daher z.B. eine neu angelegte Datei erst dann sichtbar, wenn der vollständige Vorgang des Anlegens der Datei - gegebenenfalls einschließlich des Speicherns von Daten in die Datei - erfolgreich abgeschlossen worden ist, also wenn keine Möglichkeit eines Abbruchs oder Fehlschlags dieses Vorgangs mehr besteht. Fehler durch Zugriffskonflikte können somit zuverlässig vermieden werden. Ein besonderer Vorteil der Erfindung besteht darin, daß - bei geeigneter Implementierung - für die Sichtbarkeitsinformationen nur wenig Speicher benötigt wird. Ferner sind keine aufwendigen Zusatzoperationen - z.B. das Anlegen umfangreicher Sicherungskopien in einem Schattenspeicher oder Rückführpuffer (rollback buffer) - erforderlich.The invention is based on the basic idea of managing process-specific visibility information for at least some structures in the file system in order to cause an operation in which a process creates a structure in the file system or deletes it from the file system for the other processes, at least until successful Completion of this process remains hidden. For the other processes, for example, a newly created file will only be visible if the complete process of creating the file - including, if necessary, saving data to the file - has been successfully completed, i.e. if there is no longer any possibility of canceling or failing this process consists. Errors caused by access conflicts can thus be reliably avoided. A particular advantage of the invention is that - with a suitable implementation - only little memory is required for the visibility information. Furthermore, no complex additional operations - for example, making extensive backup copies in a shadow memory or rollback buffer - are required.
In bevorzugten Ausgestaltungen der Erfindung enthalten die Sichtbarkeitsinformationen zumindest für diejenigen Strukturen des Dateisystems, die gerade angelegt werden oder bei denen der Löschvorgang noch nicht abge- schlössen ist, einen Bezeichner des für den Erzeugungs- oder Löschvorgang zuständigen Prozesses und eine Marke ifl g), die angibt, ob es sich um einen Erzeugungs- oder um einen Löschvorgang handelt. In anderen Ausführungsformen können die Sichtbarkeitsinformationen aus einer Marke bestehen, die anzeigt, ob bei einem Zugriffsversuch auf die Struktur, der die Sichtbarkeitsinformationen zugeordnet sind, zunächst eine Sichtbarkeitsüberprüfung erfolgen soll oder nicht. Wenn eine Sichtbarkeitsüberprüfung durchzuführen ist, kann in diesen Ausgestaltungen ein Anhang vorgesehen sein, der angibt, für welchen Prozeß die jeweilige Struktur sichtbar bzw. verborgen ist.In preferred refinements of the invention, the visibility information contains, at least for those structures of the file system which are currently being created or for which the deletion process has not yet been completed, an identifier of the process responsible for the creation or deletion process and a mark ifl g) which indicates whether it is a creation or a delete operation. In other embodiments, the visibility information can consist of a mark that indicates whether or not a visibility check should be carried out first when an attempt is made to access the structure to which the visibility information is assigned. If a visibility check is to be carried out, an attachment can be provided in these configurations, which indicates the process for which the respective structure is visible or hidden.
In manchen Ausgestaltungen ist vorgesehen, daß Strukturen, denen keine oder keine gültigen Sichtbarkeitsinformationen zugeordnet sind, für alle Prozesse sichtbar sein sollen.In some configurations it is provided that structures to which no or no valid visibility information is assigned should be visible to all processes.
In bevorzugten Ausführungsformen der Erfindung werden beim Erzeugen einer neuen Struktur im Dateisystem die Sichtbarkeitsinformationen für diese Struktur so eingestellt, daß die Struktur nur für den erzeugenden Prozeß sichtbar wird. Erst nach einem erfolgreichen Abschluß des Erzeugungsvorgangs - z.B. nach Bestätigung durch einen Commii-Befehl - werden die Sichtbarkeitsinformationen so eingestellt, daß die Struktur allgemein sichtbar wird. Je nach der Art und Bedeutung der Sichtbarkeitsinformationen kann diese Einstellung z.B. dadurch erfolgen, daß die Sichtbarkeitsinformationen gelöscht werden oder ein in ihnen enthaltener Prozeßbezeichner auf einen ungültigen Wert gesetzt wird. Bei einem Abbruch des Vorgangs wird die erzeugte Struktur, die für die anderen Prozesse nie sichtbar war, aus dem Dateisystem gelöscht.In preferred embodiments of the invention, when a new structure is created in the file system, the visibility information for this structure is set such that the structure is only visible to the generating process. Only after the creation process has been successfully completed - for example after confirmation with a Commii command - are the Visibility information set so that the structure is generally visible. Depending on the type and meaning of the visibility information, this setting can be made, for example, by deleting the visibility information or by setting a process identifier contained in it to an invalid value. If the process is terminated, the structure that was never visible to the other processes is deleted from the file system.
Zum Löschen einer Struktur aus dem Dateisystem werden in bevorzugten Ausgestaltungen zunächst nur die Sichtbarkeitsinformationen so eingestellt, daß die Struktur für den die Löschung anfordernden Prozeß verborgen wird, jedoch für alle anderen Prozesse sichtbar bleibt. Erst wenn feststeht, daß die Löschung unwiderruflich durchgeführt werden soll, wird die Struktur tatsächlich aus dem Dateisystem gelöscht. Bei einem Abbruch des Löschvor- gangs - wenn also die Struktur auch für den die Löschung anforderndenTo delete a structure from the file system, in preferred configurations only the visibility information is initially set such that the structure is hidden from the process requesting the deletion, but remains visible to all other processes. Only when it is certain that the deletion is to be carried out irrevocably will the structure actually be deleted from the file system. If the deletion process is terminated - if the structure also for the person requesting the deletion
Prozeß wieder sichtbar werden soll - werden die Sichtbarkeitsinformationen entsprechend eingestellt. Dies kann in manchen Ausgestaltungen dadurch erfolgen, daß die Sichtbarkeitsinformationen gelöscht oder auf einen ungültigen Wert gesetzt werden.Process should become visible again - the visibility information is set accordingly. In some configurations, this can be done by deleting the visibility information or by setting it to an invalid value.
Der das Erzeugen oder Löschen der Struktur beinhaltende Vorgang ist in bevorzugten Ausgestaltungen ein atomarer Vorgang, der entweder vollständig ausgeführt oder rückstandsfrei abgebrochen wird. Der Abbruch kann z.B. durch einen auftretenden Fehler oder Spannungsausfall oder durch einen Abort-Befehl ausgelöst werden. Der erfolgreiche Abschluß erfordert in manchen Ausführungsformen eine Bestätigung durch einen Co zt-Befehl, während in anderen Ausführungsformen der Vorgang irnrner dann erfolgreich abgeschlossen wird, wenn kein Fehler auftritt. Der Vorgang kann z.B. eine atomare Transaktion oder ein atomarer Vorgang sein, bei dem zunächst eine Datei neu angelegt wird und dann Daten in dieser Datei gespeichert werden.In preferred embodiments, the process involving the creation or deletion of the structure is an atomic process, which is either carried out completely or is terminated without residue. The termination can be triggered, for example, by an occurring error or power failure or by an abort command. Successful completion requires confirmation by a Co zt command in some embodiments, while in other embodiments the operation is successfully completed if no error occurs. The process can be, for example, an atomic transaction or an atomic process in which initially a file is created and then data is saved in this file.
Allgemein ist die Erfindung im Zusammenhang mit allen Strukturen im Dateisystem einsetzbar, die von nebenläufigen Prozessen - dies können Prozesse des Betriebssystems und/ oder eines Anwendungsprogramms sein - angelegt und/ oder gelöscht werden können. Solche Strukturen können z.B. Dateien oder Verzeichnisse sein. Es sind auch Ausgestaltungen vorgesehen, in denen nur Dateien als Strukturen im Sinne der Erfindung angesehen werden. Dies schließt Ausgestaltungen ein, bei denen Verzeichnisse im Dateisystem als besondere Dateiart ausgebildet sind.In general, the invention can be used in connection with all structures in the file system that can be created and / or deleted by concurrent processes - these can be processes of the operating system and / or an application program. Such structures can e.g. Files or directories. Refinements are also provided in which only files are viewed as structures in the sense of the invention. This includes configurations in which directories in the file system are designed as a special type of file.
Das erfindungsgemäße Cornputerprogrammprodukt kann ein körperliches Medium mit gespeicherten Programmbefehlen sein, beispielsweise ein Halb- leiterspeicher oder eine Diskette oder eine CD-ROM. Das Computerprogrammprodukt kann jedoch auch ein nicht-körperliches Medium sein, beispielsweise ein über ein Computernetzwerk übermitteltes Signal. In bevorzugten Ausgestaltungen weisen der Datenträger und/ oder das Computerprogrammprodukt Merkmale auf, die den oben beschriebenen und/ oder den in den abhängigen Verfahrensansprüchen genannten Merkmalen entsprechen.The computer program product according to the invention can be a physical medium with stored program instructions, for example a semiconductor memory or a floppy disk or a CD-ROM. However, the computer program product can also be a non-physical medium, for example a signal transmitted over a computer network. In preferred refinements, the data carrier and / or the computer program product have features which correspond to the features described above and / or to the features mentioned in the dependent method claims.
Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden genauen Beschreibung eines Ausführungsbeispiels und mehrerer Ausführungsalternativen hervor. Es wird auf die schematischen Zeichnungen verwiesen, in denen zeigen:Further features, advantages and objects of the invention will become apparent from the following detailed description of an exemplary embodiment and several alternative embodiments. Reference is made to the schematic drawings, in which:
Fig. 1 ein Blockdiagramm mit Funktionseinheiten eines Datenträgers nach einem Ausführungsbeispiel der Erfindung, Fig. 2 eine Darstellung des Zugriffs von Prozessen auf ein Dateisystem beim Betrieb des Datenträgers von Fig. 1,1 is a block diagram with functional units of a data carrier according to an embodiment of the invention, 2 shows a representation of the access of processes to a file system during the operation of the data carrier from FIG. 1,
Fig. 3 eine Ablauf darstellung des Erzeugens einer Datei in dem Datenträger von Fig. 1, undFig. 3 is a flowchart of the creation of a file in the disk of Fig. 1, and
Fig. 4 eine Ablaufdarstellung des Löschens einer Datei in dem Datenträger von Fig. 1.FIG. 4 shows a flow diagram of the deletion of a file in the data carrier from FIG. 1.
Der in Fig. 1 dargestellte Datenträger 10 weist auf einem einzigen Halbleiterchip einen Prozessor 12, einen Speicher 14 und eine Schnittstellenschaltung 16 zur kontaktlosen oder kontaktgebundenen Kommunikation mit einem externen Terminal (in Fig. 1 nicht gezeigt) auf. Der Speicher 14 ist in an sich bekannter Weise in mehrere in unterschiedlichen Technologien ausgestaltete Speicherfelder - im vorliegenden Ausführungsbeispiel RAM, ROM und EEPROM - unterteilt.The data carrier 10 shown in FIG. 1 has a processor 12, a memory 14 and an interface circuit 16 for contactless or contact-based communication with an external terminal (not shown in FIG. 1) on a single semiconductor chip. The memory 14 is divided in a manner known per se into a plurality of memory fields designed in different technologies - RAM, ROM and EEPROM in the present exemplary embodiment.
Im Speicher 14 befindet sich Programmcode, der ein Betriebssystem 18 im- plementiert. Das Betriebssystem 18 ist im vorliegenden Ausführungsbeispiel eine auf den Einsatz im Datenträger 10 zugeschnittene Variante des unter der Marke Linux bekannten Betriebssystems. Weiter enthält der Speicher 14 mindestens ein Anwendungsprogramm 20 sowie ein Dateisystem 22, das Datei- und Verzeichnisstrukturen in einer baumartigen Anordnung aufweist.In the memory 14 there is program code which implements an operating system 18. In the present exemplary embodiment, the operating system 18 is a variant of the operating system known under the Linux brand, tailored to use in the data carrier 10. Furthermore, the memory 14 contains at least one application program 20 and a file system 22 which has file and directory structures in a tree-like arrangement.
Wie in Fig. 2 gezeigt, laufen beim Betrieb des Datenträgers 10 mehrere Prozesse 24 A, 24B, 24C, ... - im folgenden zusammenfassend mit 24x bezeichnet - quasi-parallel ab. Die Prozesse 24x können Systemprozesse des Betriebssystems 18 und/ oder Benutzerprozesse des Anwendungsprogramms 20 sein. Jeder der Prozesse 24x weist einen eindeutigen Prozeßbezeichner PID (process identifier) auf; in Fig. 2 sind beispielhaft die Prozeßbezeichner "1001", "1002" und "1003" gezeigt. Das Betriebssystem 18 steuert und koordiniert den nebenläufigen Ablauf der Prozesse 24x. Ferner vermögen die Prozesse 24x über das Betriebssystem 18 auf das Dateisystem 22 zuzugreifen. In Fig. 2 sind als Strukturen des Dateisystems 22 beispielhaft zwei Verzeichnisse 26 A, 26B und zwei Dateien 26C, 26D gezeigt; diese und weitere im Dateisystem 22 enthaltene Strukturen werden im folgenden zusammenfassend mit 26x bezeichnet.As shown in FIG. 2, several processes 24A, 24B, 24C, ... - referred to in the following in summary with 24x - run quasi-parallel during operation of the data carrier 10. The processes 24x can system processes of the operating system 18 and / or user processes of the application program 20 his. Each of the processes 24x has a unique process identifier PID (process identifier); 2, the process identifiers "1001", "1002" and "1003" are shown by way of example. The operating system 18 controls and coordinates the concurrent flow of the processes 24x. Processes 24x can also access file system 22 via operating system 18. 2 shows two structures 26A, 26B and two files 26C, 26D as structures of the file system 22; these and other structures contained in the file system 22 are referred to in the following as 26x.
Es besteht nun allgemein das Problem, daß bei gleichzeitigen oder fast gleichzeitigen Operationen, die die Prozesse 24x in dem gemeinsam genutzten Dateisystem 22 ausführen, temporäre Inkonsistenzen auftreten können. Dies kann insbesondere dann der Fall sein, wenn ein Prozeß 24x mehrere solche Operationen in einer atomaren Transaktion ausführt. Durch die im folgenden beschriebenen Verfahren wird dieses Problem bei den Operationen des Erzeugens und Löschens von Strukturen 26x im Dateisystem 22 vermieden.There is now a general problem that temporary or inconsistent operations that processes 24x perform on shared file system 22 may experience temporary inconsistencies. This can be particularly the case if a process 24x performs several such operations in one atomic transaction. The methods described below avoid this problem in the operations for creating and deleting structures 26x in the file system 22.
Fig. 3 stellt einen beispielhaften Ablauf dar, bei dem der Prozeß 24 A - Prozeßbezeichner "1001" - in einer erfolgreichen Transaktion eine neue Datei - hier beispielhaft die Datei 26C - anlegt und Daten in diese Datei schreibt. Die senkrechten Pfeile in Fig. 3 geben den zeitlichen Ablauf des Vorgangs an; in der mit "Dateisystem" überschriebenen Spalte ist die Abfolge unterschiedli- eher Zustände des Dateisystems 22 während des Vorgangs veranschaulicht.FIG. 3 shows an exemplary sequence in which the process 24 A - process identifier "1001" - creates a new file in a successful transaction - here the file 26C as an example - and writes data to this file. The vertical arrows in Fig. 3 indicate the timing of the process; The sequence of different states of the file system 22 during the process is illustrated in the column headed “file system”.
Der Ablauf gemäß Fig. 3 beginnt mit dem Starten einer neuen Transaktion durch einen Befehl 28, den der Prozeß 24A dem Betriebssystem 18 übermittelt. Weiter gibt der Prozeß 24A einen Befehl 30 zum Erzeugen einer neuen Datei an das Betriebssystem 18 aus. Das Betriebssystem 18 legt daraufhin die neue Datei 26C im Dateisystem 22 an. Hierbei werden der Datei 26C Sichtbarkeitsinformationen 32 zugeordnet, die den Bezeichner PID des befehlsgebenden Prozesses - im vorliegenden Fall den Bezeichner "1001" des Pro- zesses 24A - und eine Marke M (fing) enthalten. Die Marke M gibt einen Sichtbarkeitsmodus für die Datei 26C an.3 begins with the start of a new transaction by an instruction 28, which the process 24A transmits to the operating system 18. Process 24A also issues a command 30 to create a new one File to the operating system 18. The operating system 18 then creates the new file 26C in the file system 22. In this case, the file 26C is assigned visibility information 32, which contains the identifier PID of the commanding process - in the present case the identifier "1001" of the process 24A - and a label M (fing). The mark M indicates a visibility mode for the file 26C.
Der hier beim Anlegen einer Datei verwendete Sichtbarkeitsmodus "1" besagt allgemein, daß der in den Sichtbarkeitsinformationen 32 enthaltene Prozeßbezeichner PID denjenigen Prozeß angibt, für den die Datei sichtbar sein soll. Für alle anderen Prozesse soll die Datei verborgen sein. Ein Sichtbarkeitsmodus "0" würde dagegen aussagen, daß der in den Sichtbarkeitsinformationen 32 enthaltene Prozeßbezeichner PID denjenigen - einzigen - Prozeß angibt, für den die Datei verborgen sein soll. Dieser Sichtbarkeits- modus "0" wird im Zusammenhang mit dem noch zu beschreibenden Löschen einer Datei verwendet.The visibility mode "1" used here when creating a file generally means that the process identifier PID contained in the visibility information 32 indicates the process for which the file is to be visible. The file should be hidden for all other processes. A visibility mode "0", on the other hand, would indicate that the process identifier PID contained in the visibility information 32 indicates the - only - process for which the file is to be hidden. This visibility mode "0" is used in connection with the deletion of a file to be described.
Im Beispiel von Fig. 3 ist also die nach der Ausführung des Befehls 30 erzeugte Datei 26C nur für den Prozeß 24A mit dem Prozeßbezeichner "1001" sichtbar und für alle anderen Prozesse 24B, 24C, ... verborgen. Wenn ein solcher anderer Prozeß 24B, 24C, ... zum jetzigen Zeitpunkt eine Aufstellung der im Dateisystem 22 enthaltenen Strukturen 26x anfordern würde, dann würde die Datei 26C nicht darin enthalten sein. Ebenso würde der andere Prozeß 24B, 24C, ... bei einem Versuch, auf die Datei 26C zuzugreifen, eine Fehlermeldung wegen einer nicht existierenden Datei erhalten.In the example of FIG. 3, the file 26C generated after the execution of the command 30 is only visible for the process 24A with the process identifier "1001" and is hidden for all other processes 24B, 24C, .... If such another process 24B, 24C, ... were to request a listing of the structures 26x contained in the file system 22 at the present time, then the file 26C would not be contained therein. Likewise, the other process 24B, 24C, ... would try to get an error message about a non-existent file when trying to access file 26C.
In einem folgenden Befehl 34 schreibt der Prozeß 24A Daten in die neu angelegte Datei 26C. Die Sichtbarkeitsinformationen 32 bleiben dabei unverän- dert. Die Datei 26C ist daher nach wie vor nur für den Prozeß 24A sichtbar und für alle anderen Prozesse 24B, 24C, ... verborgen.In a subsequent command 34, process 24A writes data to newly created file 26C. The visibility information 32 remains unchanged changed. The file 26C is therefore still only visible to the process 24A and hidden for all other processes 24B, 24C, ...
Wenn der Prozeß 24A die Transaktion mit einem Corarmt-Befehl 36 bestätigt, wird die erfolgreiche Beendigung der Transaktion dadurch angezeigt, daß der in den Sichtbarkeitsinformationen 32 enthaltene Prozeßbezeichner PID auf einen ungültigen Wert - z.B. den Wert "0" - gesetzt wird. Die Sichtbarkeitsinformationen 32 sind somit insgesamt ungültig, was besagt, daß keine Einschränkungen hinsichtlich der Sichtbarkeit der Datei 26C mehr bestehen. Alle Prozesse 24x können nun die Datei 26C sehen und uneingeschränkt auf sie zugreifen.If the process 24A confirms the transaction with a Corarmt command 36, the successful completion of the transaction is indicated by the process identifier PID contained in the visibility information 32 being set to an invalid value - e.g. the value "0" - is set. The visibility information 32 is thus invalid overall, which means that there are no longer any restrictions regarding the visibility of the file 26C. All processes 24x can now see the file 26C and have unlimited access to it.
Wird die Transaktion nicht bestätigt, sondern - z.B. in Reaktion auf einen Abort-Befehl oder aufgrund eines Fehlers - abgebrochen, so wird die Datei 26C aus dem Dateisystem 22 gelöscht. Dies kann unmittelbar in Reaktion auf den Abort-Befehl oder beim nächsten Hochfahren des Datenträgers 10 oder zu einem anderen geeigneten Zeitpunkt erfolgen. Bis auf den die Transaktion ausführenden Prozeß 24 A hat in diesem Fall kein anderer Prozeß 24B, 24C, ... zu irgendeinem Zeitpunkt Kenntnis von der temporär angelegten Datei 26C erlangen können.If the transaction is not confirmed, but - e.g. in response to an abort command or due to an error - the file 26C is deleted from the file system 22. This can take place immediately in response to the abort command or the next time the data carrier 10 is started up or at another suitable point in time. Except for the process 24A executing the transaction, in this case no other process 24B, 24C, ... could at any time have knowledge of the temporarily created file 26C.
In dem beispielhaften Ablauf von Fig. 3 sind vier voneinander getrennte Befehle 28, 30, 34, 36 gezeigt. Es versteht sich, daß diese Befehle in Ausführungsalternativen ganz oder teilweise miteinander kombiniert werden können. So können beispielsweise die Befehle 30 und 34 zu einem einzigen Befehl zusammengefaßt werden, der Daten in eine neu anzulegende Datei schreibt. In weiteren Ausführungsalternativen kann dieser Befehl - oder der in Fig. 3 gezeigte Befehl 30 - implizit den Beginn einer neuen Transaktion anzeigen, so daß der Befehl 28 entfallen kann. Ferner kann in manchen Ausgestaltungen auf eine explizite Transaktionsbestätigung durch einen Coraraz't-Befehl verzichtet werden.3, four separate instructions 28, 30, 34, 36 are shown. It is understood that these commands can be combined in whole or in part in alternative embodiments. For example, commands 30 and 34 can be combined into a single command that writes data to a new file to be created. In further alternative embodiments, this command - or command 30 shown in FIG. 3 - can implicitly indicate the start of a new transaction, so that command 28 can be omitted. Furthermore, in some Refinements to an explicit transaction confirmation by a Coraraz ' t command.
Fig. 4 veranschaulicht den Ablauf eines Vorgangs, bei dem eine existierende Datei im Dateisystem 22 - hier beispielhaft die Datei 26D - gelöscht wird. Der Ausgangszustand für diesen Ablauf ist, daß die Datei 26D im Dateisystem 22 enthalten und für alle Prozesse 24x sichtbar ist. Dies kann z.B. durch fehlende oder ungültige Sichtbarkeitsinformationen 32 - im vorliegenden Beispiel durch einen ungültigen Prozeßbezeichner PID mit dem Wert "0" - angezeigt werden.FIG. 4 illustrates the course of a process in which an existing file in the file system 22 - here the file 26D as an example - is deleted. The initial state for this process is that the file 26D is contained in the file system 22 and is visible 24x to all processes. This can e.g. are indicated by missing or invalid visibility information 32 - in the present example by an invalid process identifier PID with the value "0".
Mit den Befehlen 38 und 40 fordert der Prozeß 24A vom Betriebssystem 18 den Start einer neuen Transaktion und das Löschen der Datei 26D an. Das Betriebssystem 18 löscht die Datei 26D zu diesem Zeitpunkt jedoch noch nicht aus dem Dateisystem 22, sondern verbirgt sie nur vor dem die Löschung anfordernden Prozeß 24A. Hierzu werden in die Sichtbarkeitsinformationen 32 der Wert "1001" als Prozeßbezeichner PID des die Löschung anfordernden Prozesses 24A und der Wert "0" als Sichtbarkeitsmodus M eingetragen; die Bedeutung dieses Werts für den Sichtbarkeitsmodus M wurde oben bereits erläutert. Die Datei 26D ist damit für alle anderen Prozesse 24B, 24C, ... nach wie vor sichtbar.With commands 38 and 40, process 24A requests operating system 18 to start a new transaction and delete file 26D. However, the operating system 18 does not yet delete the file 26D from the file system 22 at this time, but only hides it from the process 24A requesting the deletion. For this purpose, the value "1001" is entered in the visibility information 32 as the process identifier PID of the process 24A requesting the deletion and the value "0" as the visibility mode M; the meaning of this value for the visibility mode M has already been explained above. The file 26D is thus still visible to all other processes 24B, 24C, ...
Das Betriebssystem 18 veranlaßt erst in Reaktion auf den Erhalt eines Commzϊ-Befehls 42 zur Transaktionsbestätigung die tatsächliche Löschung der Datei 26D aus dem Dateisystem 22. Erst zu diesem Zeitpunkt können die anderen Prozesse 24B, 24C, ... Kenntnis von der - nun erfolgreich abgeschlossenen - Transaktion erlangen. Wird die Löschtransaktion nicht erfolgreich abgeschlossen, sondern abgebrochen, so verbleibt die Datei 26D im Dateisystem 22. Die Sichtbarkeitsinformationen 32 werden dann wieder so eingestellt - z.B. durch Setzen des Pro- zeßbezeichners PID auf den ungültigen Wert "0" - daß die Datei 26D für alle Prozesse 24x sichtbar ist. Bei einem Transaktionsabbruch durch einen Abort- Befehl erfolgt dies unmittelbar in Reaktion auf diesen Befehl; bei einem Transaktionsabbruch durch einen Spannungsausfall werden die Sichtbarkeitsinformationen 32 beim nächsten Neustart des Datenträgers 10 entsprechend zurückgesetzt. Insgesamt war in diesem Fall die Datei 26D während des gesamten Vorgangs für alle anderen Prozesse 24B, 24C, ... - also alleThe operating system 18 does not actually initiate the actual deletion of the file 26D from the file system 22 in response to the receipt of a Commzϊ command 42 to confirm the transaction. Only at this point in time can the other processes 24B, 24C,.. - Get transaction. If the deletion transaction is not completed successfully, but is canceled, the file 26D remains in the file system 22. The visibility information 32 is then set again - for example by setting the process identifier PID to the invalid value "0" - that the file 26D is available to everyone Processes is visible 24x. If a transaction is aborted by an abort command, this occurs immediately in response to this command; in the event of a transaction abort due to a power failure, the visibility information 32 is reset accordingly the next time the data carrier 10 is restarted. Overall, in this case, the file 26D was for all other processes 24B, 24C, ... during the entire process - that is, all
Prozesse außer dem den Löschbefehl 40 abgebenden Prozeß 24A - ununterbrochen sichtbar. Processes other than process 24A issuing delete command 40 - continuously visible.

Claims

P a t e n t a n s p r ü c h e Patent claims
1. Verfahren zum Verwalten eines Dateisystems (22) in einem trag- baren Datenträger (10), wobei der tragbare Datenträger (10) ein Betriebssystem (18) aufweist, welches nebenläufige Prozesse (24x) unterstützt, die auf das Dateisystem (22) zuzugreifen vermögen, und wobei prozeßspezifische Sichtbarkeitsinformationen (32) für zumindest manche Strukturen (26x) im Dateisystem (22) verwaltet werden, um zu bewirken, daß ein Vorgang, bei dem ein Prozeß (24A) eine Struktur (26x) im Dateisystem (22) erzeugt oder aus dem Dateisystem (22) löscht, für die anderen Prozesse (24B, 24C) bis zum erfolgreichen Abschluß dieses Vorgangs verborgen bleibt.1. A method for managing a file system (22) in a portable data carrier (10), the portable data carrier (10) having an operating system (18) that supports concurrent processes (24x) that access the file system (22) , and wherein process-specific visibility information (32) is managed for at least some structures (26x) in the file system (22) to cause an operation in which a process (24A) creates a structure (26x) in the file system (22) or deletes from the file system (22), for which other processes (24B, 24C) remain hidden until this process has been successfully completed.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Prozeß (24A) bei dem Vorgang die Erzeugung einer neuen Struktur (26x) im Dateisystem (22) anfordert, und daß daraufhin die Struktur (26x) im Dateisystem (22) erzeugt wird, aber die Sichtbarkeitsinformationen (32) für diese Struktur (26x) so eingestellt werden, daß die Struktur (26x) nur für den erzeugenden Prozeß (24A) sichtbar wird.2. The method according to claim 1, characterized in that the process (24A) requests the creation of a new structure (26x) in the file system (22), and that the structure (26x) is then generated in the file system (22), but the visibility information (32) for this structure (26x) is set so that the structure (26x) is only visible to the generating process (24A).
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß nach dem erfolgreichen Abschluß des Vorgangs die Sichtbarkeitsinf or- mationen (32) für die erzeugte Struktur (26x) so eingestellt werden, daß die Struktur (26x) für alle Prozesse (24x) sichtbar wird. 3. The method according to claim 2, characterized in that after the successful completion of the process, the visibility information (32) for the generated structure (26x) is set so that the structure (26x) is visible to all processes (24x) ,
4. Verfahren nach Anspruch 2 oder Anspruch 3, dadurch gekennzeichnet, daß bei einem Abbruch des Vorgangs die Struktur (26x) aus dem Dateisystem (22) gelöscht wird.4. The method according to claim 2 or claim 3, characterized in that the structure (26x) is deleted from the file system (22) when the process is terminated.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß der Prozeß (24A) bei dem Vorgang das Löschen einer bestehenden Struktur (26x) aus dem Dateisystem (22) anfordert, und daß daraufhin die Sichtbarkeitsinformationen (32) für diese Struktur (26x) so eingestellt werden, daß die Struktur (26x) nur für den die Löschung anfordernden Prozeß (24A) verborgen wird, während die Struktur (26x) im Dateisystem (22) verbleibt.5. The method according to any one of claims 1 to 4, characterized in that the process (24A) in the process requests the deletion of an existing structure (26x) from the file system (22), and that thereupon the visibility information (32) for this structure (26x) are set such that the structure (26x) is only hidden for the process (24A) requesting the deletion, while the structure (26x) remains in the file system (22).
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß nach dem erfolgreichen Abschluß des Vorgangs die Struktur (26x) aus dem Dateisystem (22) gelöscht wird.6. The method according to claim 5, characterized in that after the successful completion of the process, the structure (26x) is deleted from the file system (22).
7. Verfahren nach Anspruch 5 oder Anspruch 6, dadurch gekennzeichnet, daß bei einem Abbruch des Vorgangs die Sichtbarkeitsinformationen (32) für die Struktur (26x) so eingestellt werden, daß die Struktur (26x) wieder für alle Prozesse (24x) sichtbar wird.7. The method according to claim 5 or claim 6, characterized in that when the process is terminated, the visibility information (32) for the structure (26x) is set such that the structure (26x) is again visible to all processes (24x).
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die Sichtbarkeitsinformationen (32) für zumindest manche Strukturen (26x) im Dateisystem (22) einen Bezeichner (PID) eines Prozesses (24A) und eine Information (M) darüber enthalten, ob die Struktur (26x) für diesen Prozeß (24A) sichtbar und für alle anderen Prozesse (24B, 24C) verborgen oder für diesen Prozeß (24A) verborgen und für alle anderen Prozesse (24B, 24C) sichtbar sein soll. 8. The method according to any one of claims 1 to 7, characterized in that the visibility information (32) for at least some structures (26x) in the file system (22) contain an identifier (PID) of a process (24A) and information (M) about it whether the structure (26x) should be visible for this process (24A) and hidden for all other processes (24B, 24C) or hidden for this process (24A) and visible for all other processes (24B, 24C).
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß Strukturen (26x) des Dateisystems (22), denen keine oder keine gültigen Sichtbarkeitsinformationen (32) zugeordnet sind, für alle Prozesse (24x) sichtbar sind.9. The method according to any one of claims 1 to 8, characterized in that structures (26x) of the file system (22), to which no or no valid visibility information (32) are assigned, are visible to all processes (24x).
10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß der Vorgang eine Transaktion ist, die entweder abgebrochen oder durch eine Bestätigung erfolgreich abgeschlossen werden kann.10. The method according to any one of claims 1 to 9, characterized in that the process is a transaction that can either be canceled or successfully completed by confirmation.
11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß der Vorgang das Speichern von Daten in einer neu anzulegenden Datei (26C, 26D) ist.11. The method according to any one of claims 1 to 10, characterized in that the process is the storage of data in a file to be newly created (26C, 26D).
12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß die Struktur eine Datei (26C, 26D) oder ein Verzeichnis (26A, 26B) im Dateisystem (22) ist.12. The method according to any one of claims 1 to 11, characterized in that the structure is a file (26C, 26D) or a directory (26A, 26B) in the file system (22).
13. Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekenn- zeichnet, daß der Datenträger (10) ein UNIX-artiges Betriebssystem (22), insbesondere ein Linux-Betriebssystem aufweist.13. The method according to any one of claims 1 to 12, characterized in that the data carrier (10) has a UNIX-like operating system (22), in particular a Linux operating system.
14. Tragbarer Datenträger (10), insbesondere Chipkarte oder Chipmodul, mit einem Prozessor (12) und mindestens einem Speicher (14), wobei der Speicher (14) Programmbefehle enthält, die dazu eingerichtet sind, den Prozessor (12) zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 13 zu veranlassen. 14. Portable data carrier (10), in particular chip card or chip module, with a processor (12) and at least one memory (14), the memory (14) containing program instructions which are set up to enable the processor (12) to carry out a method to cause according to one of claims 1 to 13.
5. Cornputerprogramrnprodukt, das maschinenlesbare Programmbefehle für einen Prozessor (12) eines tragbaren Datenträgers (10) aufweist, die dazu eingerichtet sind, den Prozessor (12) zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 13 zu veranlassen. 5. Computer program product which has machine-readable program instructions for a processor (12) of a portable data carrier (10) which are set up to cause the processor (12) to carry out a method according to one of claims 1 to 13.
EP05740488A 2004-04-22 2005-04-19 Managing a file system in a portable data carrier Ceased EP1741029A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004019683A DE102004019683A1 (en) 2004-04-22 2004-04-22 Manage a file system in a portable disk
PCT/EP2005/004182 WO2005104018A2 (en) 2004-04-22 2005-04-19 Managing a file system in a portable data carrier

Publications (1)

Publication Number Publication Date
EP1741029A2 true EP1741029A2 (en) 2007-01-10

Family

ID=35160225

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05740488A Ceased EP1741029A2 (en) 2004-04-22 2005-04-19 Managing a file system in a portable data carrier

Country Status (3)

Country Link
EP (1) EP1741029A2 (en)
DE (1) DE102004019683A1 (en)
WO (1) WO2005104018A2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008051575A1 (en) 2008-10-14 2010-04-15 Giesecke & Devrient Gmbh Method and device for managing a data memory
DE102012106405B4 (en) 2012-07-17 2016-06-16 Kirchhoff Automotive Deutschland Gmbh Method for producing a deformed and at least partially hardened sheet metal component and use of a press-hardening tool for producing such a component

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297283A (en) * 1989-06-29 1994-03-22 Digital Equipment Corporation Object transferring system and method in an object based computer operating system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9126779D0 (en) * 1991-12-17 1992-02-12 Int Computers Ltd Security mechanism for a computer system
US5878206A (en) * 1997-03-25 1999-03-02 Hewlett-Packard Company Commit scope control in hierarchical information processes
DE19835177A1 (en) * 1998-08-04 2000-02-10 Alcatel Sa Processes, modules and switching center for labeling processes as well as their data and resources
US6484185B1 (en) * 1999-04-05 2002-11-19 Microsoft Corporation Atomic operations on data structures
FR2820847B1 (en) * 2001-02-12 2003-05-30 Gemplus Card Int CONTROLLING ACCESS OF SUBJECTS TO OBJECTS IN PARTICULAR IN A MICROCONTROLLER CARD

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297283A (en) * 1989-06-29 1994-03-22 Digital Equipment Corporation Object transferring system and method in an object based computer operating system

Also Published As

Publication number Publication date
WO2005104018A2 (en) 2005-11-03
WO2005104018A3 (en) 2006-04-20
DE102004019683A1 (en) 2005-11-17

Similar Documents

Publication Publication Date Title
DE4216871C2 (en) Execution rules to ensure the serializability of distributed transactions
DE102013215535B4 (en) BACKUP OR RECOVERY OF DATA USING MAIN MEMORY AND NON-VOLATILE STORAGE MEDIA
US4498145A (en) Method for assuring atomicity of multi-row update operations in a database system
DE4435751B4 (en) Filename and directory detection method for use with an operating system
DE60312746T2 (en) RECOVERY AFTER FAULTS IN DATA PROCESSING PLANTS
DE60306663T2 (en) Methods, apparatus and programs for controlling access to data objects using locks
DE4220198C2 (en) Transaction processing method for a digital computer and transaction processing system
EP0929864B1 (en) Coordination system
DE69730449T2 (en) GENERATING A MIRROR DATA COPY (PICTURE) USING REFERENCE LABELS
DE112011100112B4 (en) BUFFER MEMORY PLATE IN FLASH COPY CASCADE
DE112005002402B4 (en) Hybrid hardware / software implementation of transactional memory access
DE19926115B4 (en) Transaction handling in a configuration database
DE602004006404T2 (en) FLASHBACK DATABASE
US6185699B1 (en) Method and apparatus providing system availability during DBMS restart recovery
DE10112941B4 (en) System and method for parallel reading of primary and secondary backups to restore multiple shared database files
DE102008015662B4 (en) Elimination of data
DE102012216022B4 (en) Management of a point-in-time copy relationship for space-efficient volumes
US6651073B1 (en) Method and apparatus for insuring database data integrity without data recovery logging
DE602005000819T2 (en) Maintaining the Consistency of a Remote Copy Using Virtualization
DE4420451C2 (en) Lock mechanism for a CHECK-IN / CHECK-OUT model
DE19810802A1 (en) Software processing device with software actualization function
DE102013022405B3 (en) Protection of global registers in a multithreaded processor
DE3611223A1 (en) METHOD AND DEVICE FOR PREVENTING BLOCKING IN A DATABASE MANAGEMENT SYSTEM
DE19926116A1 (en) Method of multiple part process recording in configuration database
WO2002021327A2 (en) Method and computer program for generating files for a database system for a business management user program

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20061122

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU MC NL PL PT RO SE SI SK TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20070903

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20120325