Verfahren zum Speichern von Daten in einer Datei eines DatenspeichersystemsMethod for storing data in a file of a data storage system
Die Erfindung betrifft ein Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems nach dem Oberbegriff des Anspruchs 1 , wobei das Datenspeichersystem zumindest einen Arbeitsspeicher sowie einen zusätzlichen Massenspeicher umfasst.The invention relates to a method for storing data in a file of a data storage system according to the preamble of claim 1, wherein the data storage system comprises at least one working memory and an additional mass storage device.
Unter einem Arbeits- oder Hauptspeicher wird dabei ein Speicher in einer digitalen Rechenanlage verstanden, mit dem der Prozessor der Rechenanlage unmittelbar zusammenarbeitet und der Programmbefehle, Daten und Zwischenergebnisse enthält, die von dem Prozessor bei der Ausführung ei- nes Datenverarbeitungsprogrammes jeweils benötigt werden. Unter einem Massenspeicher werden zusätzliche externe Speicher, z.B. in Form von Disketten oder Festplatten verstanden, die weiteren Speicherplatz für Daten zur Verfügung stellen.A working or main memory is understood to mean a memory in a digital computing system with which the processor of the computing system cooperates directly and which contains program instructions, data and intermediate results which are required by the processor when executing a data processing program. Additional external storage, e.g. understood in the form of floppy disks or hard disks that provide additional storage space for data.
In der Regel ist die Zugriffszeit des Prozessors auf die in dem Arbeits- oder Hauptspeicher gespeicherten Daten erheblich kürzer als die Zugriffszeit auf Daten des Massenspeichers, so dass das Bestreben besteht, bei der Ausführung eines Programmes nur auf solche Daten zugreifen bzw. nur solche Daten bearbeiten zu müssen, die in dem Arbeitsspeicher gespeichert sind. Es ist daher üblich, während des Ablaufs eines Datenverarbeitungsprogrammes solche Dateien, auf deren Daten der Prozessor beim Ausführen der Programmbefehle zugreifen bzw. deren Inhalt laufend verändert werden muss, in dem Arbeitsspeicher zu speichern. Hierbei wird jedoch die Größe der zur Verfügung stehenden Dateien durch die Speicherkapazi- tat des Arbeitsspeichers begrenzt.As a rule, the processor's access time to the data stored in the main memory or main memory is considerably shorter than the access time to data in the mass storage device, so that there is an attempt to access only such data or to process only such data when a program is executed need to be stored in the working memory. It is therefore customary, during the course of a data processing program, to store such files in the working memory, the data of which the processor accesses when the program commands are executed or whose content has to be changed continuously. However, the size of the available files is limited by the memory capacity of the working memory.
In Fällen, in denen der Speicherbedarf der benötigten Dateien die Speicherkapazität des zur Verfügung stehenden Arbeitsspeichers überschreitet, kann es erforderlich sein, bei der Ausführung eines Datenverarbeitungsprogram- mes auf Dateien zuzugreifen bzw. Dateien durch Veränderung ihres Inhaltes
zu bearbeiten, die sich zu diesem Zeitpunkt nicht im Arbeitsspeicher, sondern in einem zusätzlichen, externen Speicher, wie z.B. einer Diskette oder einer Festplatte befinden.In cases in which the storage requirement of the required files exceeds the storage capacity of the available working memory, it may be necessary to access files or files by changing their content when executing a data processing program to process that are not in the working memory at this time, but in an additional, external memory, such as a floppy disk or a hard disk.
Hierzu ist es bekannt, beim Einfügen eines Datensatzes in eine Datei, die in einem Massenspeicher gespeichert ist, zunächst die hinter der Einfügeposition für den neuen Datensatz liegenden Teile der Datei temporär in einer eigenen, separaten Datei zu speichern. Anschließend wird der einzufügende Datensatz hinter der Einfügeposition angefügt und die in der temporären Datei zwischengespeicherten Daten wiederum an den neuen Datensatz angehängt. In entsprechender Weise erfolgt das Löschen eines Datensatzes in einer Datei.For this purpose, it is known, when inserting a data record into a file which is stored in a mass storage device, to temporarily save the parts of the file which are behind the insertion position for the new data record in a separate, separate file. The data record to be inserted is then added after the insertion position and the data temporarily stored in the temporary file is appended to the new data record. Correspondingly, a data record is deleted from a file.
Dieses Verfahren zum Einfügen eines Datensatzes in eine Datei bzw. zum Löschen eines Datensatzes in einer Datei hat den Nachteil, dass aufgrund der Mehrzahl an Arbeitsschritten, die beim Bearbeiten der Datei in einem Massenspeicher ausgeführt werden müssen, zu viel Zeit zur Bearbeitung der Datei benötigt wird. Dies gilt insbesondere dann, wenn der Zugriff auf die in dem Massenspeicher gespeicherte Datei über ein Netzwerk erfolgt.This method of inserting a data record into a file or deleting a data record in a file has the disadvantage that, due to the plurality of work steps that have to be carried out when the file is edited in a mass storage device, too much time is required to edit the file , This applies in particular if the file stored in the mass storage device is accessed via a network.
Das vorgenannte Verfahren zum Einfügen bzw. Löschen eines Datensatzes in einer Datei kann daher in solchen Fällen nicht angewandt werden, in denen nur sehr wenig Zeit für die Bearbeitung von Dateien zur Verfügung steht. Ein Beispiel hierfür sind numerisch gesteuerte Maschinen, insbeson- dere Werkzeugmaschinen, deren Prozessoren komplexe, zeitaufwendige Algorithmen für die Positionierung einzelner Maschinenteile abarbeiten müssen und bei denen daher nur wenig Rechenzeit für die Eingabe der bei der Ausführung der entsprechenden Datenverarbeitungsprogramme benötigten Daten, wie z.B. der Ist- und Soll-Positionen von Maschinenteilen, zur Verfü- gung steht.The aforementioned method for inserting or deleting a data record in a file can therefore not be used in cases in which there is very little time available for processing files. An example of this are numerically controlled machines, in particular machine tools, the processors of which have to process complex, time-consuming algorithms for the positioning of individual machine parts and for which therefore only little computing time is required to enter the data required to execute the corresponding data processing programs, such as the actual and target positions of machine parts is available.
Diese Nachteile bestehen auch bei einem weiteren bekannten Verfahren zum Einfügen eines Datensatzes in eine auf einem Massenspeicher gespeicherte Datei, bei dem zunächst der vor der Einfügeposition des neuen Da-
tensatzes liegende Dateiinhalt in einer eigenen, separaten Datei gespeichert wird. Anschließend werden nacheinander der einzufügende Datensatz sowie die Reste der ursprünglichen Datei an diese neue Datei angefügt. In entsprechender Weise erfolgt das Löschen eines Datensatzes, wobei der zu löschende Datensatz nicht in die neue Datei geschrieben wird.These disadvantages also exist in another known method for inserting a data record into a file stored on a mass storage device, in which the data before the insertion position of the new data tes set file content is saved in a separate file. The data record to be inserted and the remnants of the original file are then added to this new file one after the other. A data record is deleted in a corresponding manner, the data record to be deleted not being written into the new file.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems der eingangs genannten Art zu schaffen, bei dem die zur Bearbeitung der Datei benötigten Rechen- zeiten, insbesondere die zum Einfügen oder Löschen von Datensätzen benötigten Rechenzeiten, minimiert werden.The invention has for its object to provide a method for storing data in a file of a data storage system of the type mentioned, in which the computing times required for processing the file, in particular the computing times required for inserting or deleting data records, are minimized ,
Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst.According to the invention, this object is achieved by a method having the features of claim 1.
Danach werden die Daten in einer Datei gespeichert, die aus mindestens zwei Dateifragmenten besteht, welche unterschiedlichen physikalischen Bereichen des Datenspeichersystems zugeordnet sind und von denen zumindest eines in einem Massenspeicher gespeichert ist, und es wird in dem Ar- beitsspeicher des Datenspeichersystems eine Zuordnungsliste angelegt, in der die Zuordnung der Dateifragmente zu den unterschiedlichen Bereichen des Datenspeichersystems gespeichert ist.The data is then stored in a file which consists of at least two file fragments, which are assigned to different physical areas of the data storage system and at least one of which is stored in a mass storage device, and an assignment list is created in the working memory of the data storage system, in which stores the assignment of the file fragments to the different areas of the data storage system.
Die Erfindung beruht auf der Erkenntnis, dass die an und für sich bekannte Aufteilung einer Datei in mehrere Dateifragmente, deren Verteilung auf unterschiedliche, räumlich voneinander beabstandete (räumlich nicht zusammenhängende) Bereiche eines Datenspeichers in einer Zuordnungsliste (auch Dateizuordnungstabelle genannt) vermerkt ist (vergleiche z.B. H.-P. Messmer, PC-Hardwarebuch, 3. Aufl., Bonn, 1995, S. 738 - 760), dahinge- hend erweitert werden kann, dass die Dateifragmente einerseits und die Zuordnungsliste andererseits in unterschiedlichen Speichern eines Datenspeichersystems (nämlich in einem Massenspeicher einerseits und einem Arbeitsspeicher andererseits) vorgesehen sind.
Durch die Unterteilung einer Datei in unterschiedliche Dateifragmente, die jeweils nur einen Teil des Inhalts der gesamten Datei aufnehmen, kann die Bearbeitung einer Datei insbesondere hinsichtlich des Hinzufügens oder Lö- schens von Datensätzen wesentlich vereinfacht werden. Es ist nicht mehr erforderlich, durch mehrere Kopiervorgänge die Datei zunächst in Bestandteile zu zerlegen, anschließend in den einzelnen Bestandteilen der Datei Daten hinzuzufügen oder zu löschen und daraufhin die Datei wieder zu einer Einheit zusammenzusetzen. Vielmehr kann das Hinzufügen oder Löschen von Daten in einfacher Weise durch die Schaffung neuer Dateifragmente erfolgen, wie weiter unten anhand vorteilhafter Weiterbildungen der Erfindung noch näher erläutert werden wird.The invention is based on the knowledge that the known division of a file into several file fragments, the distribution of which over different, spatially spaced (spatially non-contiguous) areas of a data memory is noted in an assignment list (also called a file assignment table) (compare e.g. H.-P. Messmer, PC hardware book, 3rd edition, Bonn, 1995, pp. 738 - 760), can be expanded in such a way that the file fragments on the one hand and the assignment list on the other hand in different memories of a data storage system (namely in a mass storage device on the one hand and a working memory on the other hand) are provided. By dividing a file into different file fragments, each of which only contains part of the content of the entire file, the processing of a file can be considerably simplified, in particular with regard to the addition or deletion of data records. It is no longer necessary to first split the file into parts by several copying processes, then add or delete data in the individual parts of the file and then reassemble the file into one unit. Rather, the addition or deletion of data can be done in a simple manner by creating new file fragments, as will be explained in more detail below with the aid of advantageous developments of the invention.
Vor der Bearbeitung einer Datei kann diese durchaus aus nur einem (in einem zusammenhängenden Speicherbereich abgelegten) Dateifragment be- stehen. Die Aufteilung der Datei in mehrere Dateifragmente erfolgt dann erst bei der Bearbeitung der Datei durch das Hinzufügen oder Löschen einzelner Datensätze.Before editing a file, it can consist of only one file fragment (stored in a contiguous memory area). The file is then divided into several file fragments only when the file is edited by adding or deleting individual data records.
Die beim Hinzufügen oder Löschen von Datensätzen erfolgenden Änderun- gen in der Anzahl und/oder dem Inhalt der Dateifragmente werden jeweils durch entsprechende Einträge in der Zuordnungsliste berücksichtigt, so dass anhand der aktuellen Zuordnungsliste jederzeit auf sämtliche Daten der Datei zugegriffen werden kann.The changes in the number and / or content of the file fragments that occur when adding or deleting data records are taken into account in each case by corresponding entries in the assignment list, so that all the data in the file can be accessed at any time using the current assignment list.
Im Rahmen der Erfindung ist dabei von besonderer Bedeutung, dass die Zuordnungsliste im Arbeitsspeicher gespeichert ist, während die Dateifragmente zumindest zum Teil (also mindestens ein Dateifragment) außerhalb des Arbeitsspeichers in einem zusätzlichen, externen Massenspeichers, (wie z.B. einer Diskette oder einer Festplatte) gespeichert sind. Selbstverständ- lieh können die einzelnen Dateifragmente auch komplett in dem Massenspeicher abgelegt sein.In the context of the invention, it is of particular importance that the assignment list is stored in the working memory, while the file fragments are at least partially (i.e. at least one file fragment) stored outside the working memory in an additional, external mass storage device (such as a floppy disk or a hard disk) are. Of course, the individual file fragments can also be stored completely in the mass storage device.
Aufgrund der zumindest teilweisen Speicherung der Dateifragmente in einem zusätzlichen Massenspeicher ist die Größe der Datei nicht durch die
Kapazität des Arbeitsspeichers beschränkt. Mittels der Zuordnungsliste, die in dem dem Prozessor unmittelbar zugeordneten Arbeits- oder Hauptspeicher gespeichert ist und deren Einträge auf die einzelnen Dateifragmente verweisen (also die Zuordnung der Dateifragmente zu bestimmten physikali- sehen Bereichen eines Speichers enthalten), kann jederzeit auf die in den einzelnen Dateifragmenten gespeicherten Daten zugegriffen werden, wobei der Zugriff auf die Zuordnungsliste selbst nur sehr wenig Rechenzeit erfordert.Due to the at least partial storage of the file fragments in an additional mass storage device, the size of the file is not determined by the Memory capacity limited. By means of the assignment list, which is stored in the main memory or memory directly assigned to the processor and whose entries refer to the individual file fragments (ie contain the assignment of the file fragments to certain physical areas of a memory), it is possible at any time to refer to those in the individual file fragments stored data can be accessed, with access to the assignment list itself requiring very little computing time.
Im Ergebnis ermöglicht die erfindungsgemäße Lösung eine schnellere Bearbeitung von Dateiein, die aufgrund der begrenzten Speicherkapazität des Arbeitsspeichers der Rechenanlage in einem separaten Arbeitsspeicher abgelegt sind und verbessert somit die Funktionsfähigkeit des Datenspeichersystems sowie der Rechenanlage insgesamt.As a result, the solution according to the invention enables faster processing of files that are stored in a separate working memory due to the limited memory capacity of the main memory of the computing system and thus improves the functionality of the data storage system and the overall computing system.
Im Rahmen des erfindungsgemäßen Verfahrens kann das Hinzufügen eines Datensatzes zu einer Datei in einfacher Weise dadurch erfolgen, dass der Datensatz in einem separaten Dateifragment gespeichert wird und der Zuordnungsliste ein Eintrag hinzugefügt wird, der auf dieses zusätzliche Datei- fragment verweist, der also die Zuordnung dieses Dateifragmentes zu einem bestimmten Bereich eines Datenspeichers enthält.In the context of the method according to the invention, the addition of a data record to a file can be carried out in a simple manner by storing the data record in a separate file fragment and adding an entry to the assignment list which refers to this additional file fragment, that is to say the assignment of this Contains file fragments to a specific area of a data storage.
Soll das Hinzufügen eines Datensatzes zu einer Datei dadurch erfolgen, dass dieser Datensatz in ein bestehendes Dateifragment eingefügt wird, so wird dieses Dateifragment zunächst in zwei Teilfragmente (bei denen es sich wiederum um Dateifragmente handelt) unterteilt, indem für jedes der beiden Teilfragmente ein eigener Eintrag in der Zuordnungsliste geschaffen wird, der auf das entsprechende Teilfragment verweist. Es wird also ein Dateifragment in einfacher Weise in zwei kleinere Dateifragmente (hier als Teil- fragmente bezeichnet) unterteilt, indem lediglich die Einträge in der Zuordnungsliste des Arbeitsspeichers entsprechend modifiziert werden. An dem Dateifragment selbst müssen keinerlei Änderungen vorgenommen werden. Die beiden Einträge in der Zuordnungsliste, die auf die Teilfragmente verweisen, können dabei dadurch gebildet werden, dass der auf das Ursprung-
liche Dateifragment verweisende Eintrag kopiert wird und anschließend der ursprüngliche Eintrag sowie dessen Kopie zur Anpassung an die Aufteilung des Dateifragmentes in zwei Teilfragmente modifiziert werden.If you want to add a data record to a file by inserting this data record into an existing file fragment, then this file fragment is first divided into two partial fragments (which in turn are file fragments) by a separate entry for each of the two partial fragments is created in the assignment list, which refers to the corresponding partial fragment. A file fragment is therefore easily divided into two smaller file fragments (referred to here as partial fragments) by merely modifying the entries in the memory assignment list accordingly. No changes need to be made to the file fragment itself. The two entries in the assignment list that refer to the partial fragments can be formed by referring to the original entry is copied and then the original entry and its copy are modified to adapt to the division of the file fragment into two partial fragments.
Nach der Unterteilung des Dateifragmentes in zwei Teilfragmente durch entsprechende Modifizierung der Zuordnungsliste wird der Zuordnungsliste noch ein Eintrag hinzugefügt, der auf das zusätzliche Dateifragment verweist, das den einzufügenden Datensatz enthält. Die einzelnen Einträge der Zuordnungsliste müssen dabei entweder derart angeordnet oder (durch Verweisungen) miteinander verkettet sein, dass dem hinzugefügten Dateifragment die richtige Position innerhalb der Datei (also zwischen den beiden Teilfragmenten, die das ursprüngliche Dateifragment bildeten) zugewiesen wird.After dividing the file fragment into two partial fragments by modifying the assignment list accordingly, an entry is added to the assignment list which refers to the additional file fragment which contains the data record to be inserted. The individual entries in the assignment list must either be arranged in such a way or linked (by references) that the added file fragment is assigned the correct position within the file (i.e. between the two partial fragments that formed the original file fragment).
Beim Anfügen eines Datensatzes an den Anfang oder das Ende eines Dateifragmentes wird dieses einfach um den anzufügenden Datensatz erweitert und der auf das Dateifragment verweisende Eintrag entsprechend modifiziert.When a data record is appended to the beginning or end of a file fragment, it is simply expanded to include the data record to be added and the entry referring to the file fragment is modified accordingly.
Zum Löschen eines Datensatzes eines Dateifragmentes im Rahmen des erfindungsgemäßen Verfahrens wird mindestens ein Eintrag in der Zuordnungsliste gebildet, der auf das oder die nach dem Löschen des Datensatzes noch verbleibenden Teilfragment(e) des Dateifragmentes verweist. Das Löschen eines Datensatzes in einer Datei erfordert demnach lediglich eine Änderung der Einträge der im Arbeitsspeicher abgelegten Zuordnungsliste; der eigentliche Inhalt der Datei wird nicht verändert.To delete a data record of a file fragment in the context of the method according to the invention, at least one entry is formed in the assignment list which refers to the partial fragment (s) of the file fragment still remaining after the data record has been deleted. Deleting a data record in a file therefore only requires changing the entries in the assignment list stored in the working memory; the actual content of the file is not changed.
Es sei hier nochmals darauf hingewiesen, dass das Dateifragment, in dem ein Datensatz gelöscht werden soll, durchaus identisch mit der gesamten Datei sein kann. Die Unterteilung der Datei in mehrere Dateifragmente erfolgt in einem solchen Fall erst, wenn das erstgenannte Dateifragment während des Löschens des Datensatzes in mehrere kleinere Dateifragmente (Teilfragmente) unterteilt wird.
Soll ein Datensatz gelöscht werden, der weder am Anfang noch am Ende eines Dateifragmentes gespeichert ist, so wird das Dateifragment in zwei die nicht zu löschenden Daten enthaltende Teilfragmente unterteilt, indem für jedes der beiden Teilfragmente ein eigener Eintrag in der Zuordnungsliste geschaffen wird, der auf das entsprechende Teilfragment verweist. Die beiden neuen Einträge in der Zuordnungsliste können dabei in einfacher Weise dadurch gebildet werden, dass der auf das ursprüngliche Dateifragment verweisende Eintrag kopiert und anschließend in geeigneter Weise modifiziert wird.It should be pointed out again here that the file fragment in which a data record is to be deleted can be identical to the entire file. In such a case, the file is not divided into several file fragments until the first-mentioned file fragment is divided into several smaller file fragments (partial fragments) while the data record is being deleted. If a data record is to be deleted that is neither stored at the beginning nor at the end of a file fragment, the file fragment is divided into two partial fragments containing the data that are not to be deleted, by creating a separate entry in the assignment list for each of the two partial fragments the corresponding partial fragment refers. The two new entries in the assignment list can be formed in a simple manner by copying the entry referring to the original file fragment and then modifying it in a suitable manner.
Beim Löschen eines Datensatzes, der am Anfang oder am Ende eines Dateifragmentes gespeichert ist, wird ein Eintrag in der Zuordnungsliste gebildet, der auf den verbleibenden Teil des Dateifragmentes verweist. Zum vollständigen Löschen eines Dateifragmentes wird einfach der zugehörige Ein- trag in der Zuordnungsliste gelöscht.When deleting a data record that is stored at the beginning or at the end of a file fragment, an entry is formed in the assignment list that refers to the remaining part of the file fragment. To completely delete a file fragment, the associated entry in the assignment list is simply deleted.
Das Überschreiben eines Datensatzes einer Datei erfolgt durch eine Kombination der vorstehend beschriebenen Verfahrensschritte „Löschen eines Datensatzes" und „Hinzufügen eines Datensatzes".A data record of a file is overwritten by a combination of the above-described method steps "deleting a data record" and "adding a data record".
Die Zuordnung der Dateifragmente zu unterschiedlichen Bereichen eines Datenspeichers mittels der Zuordnungsliste erfolgt vorzugsweise dadurch, dass jeder Eintrag der Zuordnungsliste einen Verweis auf den Beginn und das Ende des von dem jeweiligen Dateifragment belegten Speicherberei- ches aufweist.The assignment of the file fragments to different areas of a data memory by means of the assignment list preferably takes place in that each entry of the assignment list has a reference to the beginning and the end of the storage area occupied by the respective file fragment.
Die Einträge der Zuordnungsliste müssen nicht zusammenhängend hintereinander angeordnet sein; vielmehr kann auch jeder Eintrag der Zuordnungsliste einen Verweis auf den jeweils darauffolgenden Eintrag enthalten. Die Einträge der Zuordnungsliste werden dadurch miteinander verkettet, selbst wenn sie nicht räumlich zusammenhängend in dem Arbeitsspeicher gespeichert sind.
Die Anwendung de s erfindungsgemäßen Verfahrens zum Speichern von Daten auf ein Verfahren zur numerischen Steuerung von Maschinen, insbesondere Werkzeugmaschinen, ist durch die Merkmale des Anspruchs 14 charakterisiert.The entries in the assignment list do not have to be arranged consecutively; rather, each entry in the assignment list can also contain a reference to the subsequent entry. The entries in the assignment list are thereby linked to one another, even if they are not stored in the main memory in a spatially contiguous manner. The application of the method according to the invention for storing data to a method for the numerical control of machines, in particular machine tools, is characterized by the features of claim 14.
Ein Datenspeichersystem, das einen Arbeitsspeicher sowie mindestens einen zusätzlichen Massenspeicher umfasst und in dem Daten in einer dem erfindungsgemäßen Verfahren entsprechenden Weise abgespeichert sind, ist durch die Merkmale des Anspruchs 15 charakterisiert.A data storage system which comprises a working memory and at least one additional mass storage device and in which data are stored in a manner corresponding to the method according to the invention is characterized by the features of claim 15.
Weitere Vorteile der Erfindung werden bei der nachfolgenden Beschreibung eines Ausführungsbeispiels anhand der Figuren deutlich werden.Further advantages of the invention will become clear in the following description of an embodiment with reference to the figures.
Es zeigenShow it
Figur 1 eine schematische Darstellung eines Datenspeichersystems, das in eine Rechenanlage integriert ist;Figure 1 is a schematic representation of a data storage system which is integrated in a computing system;
Figur 2a und 2b eine schematische Darstellung zweier Bearbeitungsschritte beim Einfügen eines Datensatzes in eine Datei;2a and 2b show a schematic representation of two processing steps when inserting a data record into a file;
Figur 3a und 3b eine schematische Darstellung zweier Arbeits- schritte beim Löschen eines Datensatzes in einer Datei.FIGS. 3a and 3b show a schematic representation of two work steps when deleting a data record in a file.
In Figur 1 ist schematisch in einem Blockdiagramm eine Rechenaniage dargestellt, die als zentrale Bestandteile einen Mikroprozessor 1 sowie einen dem Mikroprozessor 1 unmittelbar zugeordneten Arbeits- und Hauptspeicher 2 aufweist. In dem Arbeitsspeicher 2 werden die zur Ausführung eines Datenverarbeitungsprogrammes erforderlichen Programmbefehle, die benötigten Daten sowie Zwischen- und Endergebnisse gespeichert.
Darüber hinaus sind über einen Controller 3 Massenspeicher 4, 5 mit dem Mikroprozessor 1 verbunden, bei denen es sich z.B. um eine Diskette in einem Diskettenlaufwerk oder um eine Festplatte eines Festplattenlaufwerkes handeln kann. Dort können größere Datenmengen eingelesen und ggf. dau- erhaft gespeichert werden, für die die Kapazität des Arbeitsspeichers 2 nicht ausreichend ist. Der Arbeitsspeicher 2 zeichnet sich jedoch gegenüber den Massenspeichern 4, 5 dadurch aus, dass die Zugriffszeit des Mikroprozessors 1 auf den Arbeitsspeicher 2 erheblich kürzer ist als auf die Massenspeicher 4, 5.In FIG. 1, a computing system is shown schematically in a block diagram, which has as its central components a microprocessor 1 and a main memory 2 directly assigned to the microprocessor 1. The program instructions required for executing a data processing program, the required data, and intermediate and final results are stored in the working memory 2. In addition, mass storage devices 4, 5 are connected to the microprocessor 1 via a controller 3, which can be, for example, a floppy disk in a floppy disk drive or a hard disk of a hard disk drive. Larger amounts of data can be read in there and possibly permanently saved, for which the capacity of the main memory 2 is not sufficient. The main memory 2 is, however, distinguished from the mass memories 4, 5 by the fact that the access time of the microprocessor 1 to the main memory 2 is considerably shorter than to the mass memories 4, 5.
Ferner ist mit dem Mikroprozessor 1 eine Eingabe-/Ausgabeeinrichtung 8 verbunden, über die die Rechenanlage 1 mit externen Geräten, wie z.B. einem Bedienpult, einem Bildschirm sowie einer Steuervorrichtung für Werkzeugmaschinen verbunden werden kann.Furthermore, an input / output device 8 is connected to the microprocessor 1, via which the computer system 1 can be connected to external devices such as e.g. a control panel, a screen and a control device for machine tools can be connected.
Bei Verwendung der in Figur 1 dargestellten Rechenanlage in einer numerischen Steuerung für Werkzeugmaschinen ist es erforderlich, in dem Datenspeichersystem der Rechenanlage, das den Arbeitsspeicher 2 sowie die beiden Massenspeicher 4, 5 umfasst, große Mengen an Daten zu speichern, beispielsweise die Ist- und Soll-Positionen von Maschinenteilen der zu steuernden Maschine. Es ist daher aufgrund der beschränkten Kapazität des Arbeitsspeichers häufig notwendig, zumindest einen Teil der zur Steuerung benötigten Daten in Dateien abzulegen, die in einem der Massenspeicher 4, 5 abgespeichert sind.When using the computer system shown in FIG. 1 in a numerical control for machine tools, it is necessary to store large amounts of data, for example the actual and target data, in the data storage system of the computer system, which includes the main memory 2 and the two mass memories 4, 5 -Positions of machine parts of the machine to be controlled. Because of the limited capacity of the main memory, it is therefore often necessary to store at least some of the data required for control purposes in files which are stored in one of the mass memories 4, 5.
Anhand der Figuren 2 und 3 soll nun erläutert werden, wie die Bearbeitung von Dateien, die auf einem der Massenspeicher 4, 5 gespeichert sind, mit minimalem Aufwand an Rechenzeit erfolgen kann.On the basis of FIGS. 2 and 3, it will now be explained how the processing of files which are stored on one of the mass memories 4, 5 can be carried out with a minimum of computing time.
In Figur 2a ist eine aus einem einzelnen Dateifragment F bestehende Datei dargestellt, das in einem der Massenspeicher 4, 5 gespeichert ist und dort den zwischen einer Adresse A1 (Anfang des Dateifragmentes) und einer Adresse A2 (Ende des Dateifragmentes) zur Verfügung stehenden Speicherplatz belegt. Diesem Dateifragment F ist ein Eintrag in einer in dem Ar-
beitsspeicher 2 gespeicherten Zuordnungsliste Z zugeordnet, der auf dieses Dateifragment F verweist und diesem die Adressen A1 und A2 zuordnet.FIG. 2a shows a file consisting of a single file fragment F, which is stored in one of the mass memories 4, 5 and occupies the memory space available between an address A1 (beginning of the file fragment) and an address A2 (end of the file fragment) , This file fragment F is an entry in an in the ar- beitsspeicher 2 assigned assignment list Z, which refers to this file fragment F and this addresses A1 and A2.
Soll in das Dateifragment F ein zusätzlicher Datensatz eingefügt werden, so wird gemäß Figur 2b das Dateifragment F in zwei Teilfragmente F1 und F2 unterteilt, die jeweils ein kleineres Dateifragment bilden und zwischen denen der zusätzliche Datensatz eingefügt werden soll. Dies geschieht dadurch, dass zwei neue Einträge in der Zuordnungsliste Z geschaffen werden, indem zunächst der bisherige Eintrag kopiert wird und anschließend sowohl der bisherige Eintrag als auch dessen Kopie modifiziert werden. Die beiden aktuellen Einträge der Zuordnungsliste Z verweisen dann auf je eines der beiden Dateifragmente F1 , F2, wobei der eine Eintrag dem ersten Dateifragment F1 die Adressen A1 , A4 zuordnet, die den Anfang und das Ende des von diesem Dateifragmentes F1 belegten Speicherbereiches bezeichnen, und der andere Eintrag dem zweiten Dateifragment F2 die Adressen A3, A2 zuordnet, die den Anfang und das Ende des von jenem Dateifragment F2 belegten Speicherplatzes bezeichnen.If an additional data record is to be inserted into the file fragment F, the file fragment F is divided into two partial fragments F1 and F2 according to FIG. 2b, each of which forms a smaller file fragment and between which the additional data record is to be inserted. This is done by creating two new entries in the assignment list Z by first copying the previous entry and then modifying both the previous entry and its copy. The two current entries in the assignment list Z then each refer to one of the two file fragments F1, F2, one entry assigning the addresses A1, A4 to the first file fragment F1, which designate the beginning and end of the memory area occupied by this file fragment F1, and the other entry assigns the addresses A3, A2 to the second file fragment F2, which designate the beginning and the end of the storage space occupied by that file fragment F2.
Der zusätzliche Datensatz wird in einem separaten Dateifragment F3 auf einem der Massenspeicher 4, 5 gespeichert, und zwar in einem durch die Adressen A5, A6 gekennzeichneten Speicherbereich. Auf dieses Dateifragment F3 verweist ein dritter Eintrag in der Zuordnungsliste Z, der dem Dateifragment F3 die Adressen A5, A6 in dem entsprechenden Massenspeicher 4 bzw. 5 zuordnet.The additional data record is stored in a separate file fragment F3 on one of the mass memories 4, 5, specifically in a memory area identified by the addresses A5, A6. A third entry in the assignment list Z refers to this file fragment F3, which assigns the addresses A5, A6 in the corresponding mass memory 4 or 5 to the file fragment F3.
Zum Einfügen eines Datensatzes in eine Datei F ist es also lediglich erforderlich, diesen Datensatz an einer beliebigen Stelle eines der Massenspeicher 4, 5 zu speichern und anschließend einige Modifikationen in der in dem Arbeitsspeicher abgelegten Zuordnungsliste Z vorzunehmen. Hierdurch wird die zum Einfügen eines Datensatzes in eine Datei erforderliche Rechenzeit minimiert.To insert a data record into a file F, it is therefore only necessary to save this data record at any position in one of the mass memories 4, 5 and then to carry out some modifications in the assignment list Z stored in the main memory. This minimizes the computing time required to insert a data record into a file.
Die einzelnen Einträge in der Zuordnungsliste Z müssen dabei nicht, wie in Figur 2b dargestellt, zusammenhängend hintereinander angeordnet sein.
Die Anordnung der Einträge der Zuordnungsliste Z ist vielmehr beliebig, sofern jeder dieser Einträge zusätzlich einen Verweis auf den jeweils folgenden Eintrag enthält.The individual entries in the assignment list Z do not have to be arranged in succession, as shown in FIG. 2b. The arrangement of the entries in the assignment list Z is rather arbitrary, provided that each of these entries additionally contains a reference to the following entry.
Zum Löschen eines Datensatzes in einem Dateifragment F wird gemäß den Figuren 3a und 3b das Dateifragment F in zwei Teilfragmente F4, F5 unterteilt, von denen das eine den vor dem zu löschenden Datensatz G liegenden Dateiinhalt und das andere den hinter dem zu löschenden Datensatz G liegenden Dateiinhalt enthält. Die Unterteilung des Dateifragmentes F in zwei Teilfragmente F4, F5 geschieht dabei dadurch, dass (in derselben Weise wie bereits anhand der Figuren 2a und 2b erläutert) zwei Einträge in der Zuordnungsliste Z gebildet werden, von denen der eine auf das erste Teilfragment F4 und der andere auf das zweite Teilfragment F5 verweist. Dabei ordnet der eine Eintrag dem ersten Teilfragment F4 die Adressen A1 , A8 zu, die den Anfang und das Ende des von diesem Dateifragment belegten Speicherplatzes repräsentieren; und der andere Eintrag ordnet in entsprechender Weise dem zweiten Dateifragment F5 Adressen A7, A2 zu. Der gelöschte Datensatz G befindet sich somit in einem Bereich des Massenspeichers 4 bzw. 5, auf den keiner der Einträge der Zuordnungsliste Z verweist.To delete a data record in a file fragment F, according to FIGS. 3a and 3b, the file fragment F is divided into two partial fragments F4, F5, one of which contains the file content lying in front of the data record G to be deleted and the other the one behind the data record G to be deleted Contains file content. The subdivision of the file fragment F into two sub-fragments F4, F5 takes place in that (in the same way as already explained with reference to FIGS. 2a and 2b) two entries are formed in the assignment list Z, one of which on the first sub-fragment F4 and the one others refer to the second partial fragment F5. The one entry assigns the first sub-fragment F4 the addresses A1, A8, which represent the beginning and the end of the memory space occupied by this file fragment; and the other entry correspondingly assigns addresses A7, A2 to the second file fragment F5. The deleted data record G is therefore located in an area of the mass storage device 4 or 5 to which none of the entries in the assignment list Z refers.
Es wird deutlich, dass das Löschen eines Datensatzes in einfacher Weise durch eine Modifikation der auf dem Arbeitsspeicher abgelegten Zuordnungsliste Z erfolgt. Dies minimiert die beim Löschen eines Datensatzes erforderliche Rechenzeit.It is clear that a data record is deleted in a simple manner by modifying the assignment list Z stored in the main memory. This minimizes the computing time required when deleting a data record.
Selbstverständlich kann - in Abwandlung des anhand der Figuren 2 und 3 dargestellten Ausführungsbeispieles - die Datei, die jeweils den Ausgangspunkt für das Einfügen bzw. Löschen eines Datensatzes darstellt, auch vor Beginn dieser Operationen schon aus mehreren Dateifragmenten bestehen.Of course - in a modification of the exemplary embodiment illustrated with reference to FIGS. 2 and 3 - the file, which in each case represents the starting point for inserting or deleting a data record, can also consist of several file fragments even before these operations begin.
Bei Bedarf kann die mittels des erfindungsgemäßen Verfahrens beim Einfügen oder Löschen eines Datensatzes erzeugte, aus mehreren separaten Dateifragmenten bestehende Datei wieder zu einer einheitlichen, in einem zusammenhängenden Speicherbereich gespeicherten Datei zusammenge-
fasst werden. Hierzu werden die einzelnen Dateifragmente nacheinander in einer Datei gespeichert, der ein zusammenhängender Speicherbereich zugewiesen ist. Die Reihenfolge der Anordnung der einzelnen Dateifragmente ist dabei durch die Zuordnungsliste eindeutig bestimmt, sei es durch die Reihenfolge der Anordnung der Einträge der Zuordnungsliste oder durch Verweise in den einzelnen Einträgen der Zuordnungsliste, die jeweils auf den folgenden Eintrag verweisen. Dieses Zusammenfassen der einzelnen Dateifragmente zu einer in einem zusammenhängenden Speicherbereich angeordneten Datei kann zu einem geeigneten Zeitpunkt erfolgen, zu dem hinreichend Rechenzeit für diese Operation zur Verfügung steht.
If necessary, the file generated by means of the method according to the invention when inserting or deleting a data record and consisting of several separate file fragments can be combined again to form a uniform file stored in a contiguous memory area. be caught. For this purpose, the individual file fragments are stored in succession in a file to which a contiguous storage area is assigned. The order of the arrangement of the individual file fragments is clearly determined by the assignment list, be it by the order of the arrangement of the entries in the assignment list or by references in the individual entries of the assignment list, each of which refers to the following entry. This combination of the individual file fragments into a file arranged in a coherent memory area can take place at a suitable point in time at which sufficient computing time is available for this operation.