RU2155373C2 - Computer duplication system, which operates with open files - Google Patents

Computer duplication system, which operates with open files Download PDF

Info

Publication number
RU2155373C2
RU2155373C2 RU97117451A RU97117451A RU2155373C2 RU 2155373 C2 RU2155373 C2 RU 2155373C2 RU 97117451 A RU97117451 A RU 97117451A RU 97117451 A RU97117451 A RU 97117451A RU 2155373 C2 RU2155373 C2 RU 2155373C2
Authority
RU
Russia
Prior art keywords
read
duplicate
memory
file
data
Prior art date
Application number
RU97117451A
Other languages
Russian (ru)
Other versions
RU97117451A (en
Inventor
Брайан Мэлкольм Питер
Original Assignee
Чейенн Эдванст Текнолоджи Лимитед
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 Чейенн Эдванст Текнолоджи Лимитед filed Critical Чейенн Эдванст Текнолоджи Лимитед
Publication of RU97117451A publication Critical patent/RU97117451A/en
Application granted granted Critical
Publication of RU2155373C2 publication Critical patent/RU2155373C2/en

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

FIELD: computer engineering. SUBSTANCE: duplication software of computer system which has hard disk drive monitors storage of changes which are made in data of file under duplication. Upon duplication, both parts of source and corrected file or record are stored. Duplication software reads source data wile other applications read corrected data. Detection of the fact whether reading operation is called by duplication software or another application is achieved by system using stack, and reading request source, asking user, identifiers of task or process. Access to file for duplication software is provided by system file allocation table processing. The fact that file is kept in "good" condition is ensured by delay of start of duplication operation for given period. EFFECT: protection against failure of storage device or damage, loss or infection of data by computer virus. 16 cl, 6 dwg

Description

Изобретение относится к способу работы компьютерной системы и, в частности, к способу обеспечения дублирующих копий данных, хранимых в запоминающем устройстве для защиты от повреждения запоминающего устройства или порчи, потери или заражения данных компьютерным вирусом. Изобретение, главным образом, имеет отношение к обеспечению дублирований для персональных компьютеров (ПК). The invention relates to a method for operating a computer system and, in particular, to a method for providing duplicate copies of data stored in a memory device for protection against damage to the memory device or corruption, loss or infection of data by a computer virus. The invention mainly relates to providing duplication for personal computers (PCs).

Традиционно в простой однопользовательской компьютерной системе, содержащей запоминающее средство, как например, жест кий или несъемный диск, только одна прикладная программа имеет доступ к запоминающему средству в любое данное время. Задача дублирования данных, хранимых запоминающим средством, выполняется прикладной программой, которая будет иметь исключительное использование запоминающего средства при выполнении операции дублирования, поскольку в такой среде никакое другое приложение не может работать до тех пор пока не завершится приложение дублирования. Traditionally, in a simple single-user computer system containing a storage medium, such as a hard or non-removable disk, only one application program has access to the storage medium at any given time. The task of duplicating data stored by the storage medium is performed by an application program that will have exclusive use of the storage medium when performing the duplication operation, since in such an environment no other application can work until the duplication application is completed.

С введением многозадачных сред, которые позволяют нескольким приложениям работать одновременно, и сетевых систем, которые позволяют нескольким пользователям разделять одни и те же ресурсы, может возникнуть ситуация, где более чем одно приложение имеет одновременный доступ к одному и тому же запоминающему средству. Когда эта ситуация возникает, существует возможность конфликта между приложениями. Например, одно приложение может модифицировать или удалить файл, в текущее время используемый другим приложением. Это привело бы к путанице и потенциально к порче запоминающего средства и, в результате, к потере данных. With the introduction of multitasking environments that allow multiple applications to run simultaneously and network systems that allow multiple users to share the same resources, a situation may arise where more than one application has simultaneous access to the same storage medium. When this situation arises, there is the possibility of a conflict between applications. For example, one application may modify or delete a file currently used by another application. This would lead to confusion and potentially damage to the storage medium and, as a result, to data loss.

Способы, известные как "блокировка файла" или "блокировка записи" введены в операционные системы для избежания в случае блокировки файла того, чтобы более чем одно приложение записывало в файл и в случае блокировки записи того, чтобы два приложения модифицировали одну и ту же область данного файла. Эти способы достаточно сложны для большинства приложений, особенно если каждое приложение производит только относительно незначительные изменения в файлы, которые являются совместно используемыми, и поэтому не задерживает существенно другие приложения, желающие иметь доступ к файлу или записи, которая заблокирована. Однако приложение для периодического дублирования данных в компьютерной системе, где запоминающее средство является совместно используемым, представляет особый случай. Methods known as “file lock” or “write lock” are introduced into operating systems to prevent, in the case of a file lock, more than one application writing to a file and in the case of a write lock, that two applications modify the same area of this file. These methods are quite complicated for most applications, especially if each application makes only relatively minor changes to files that are shared, and therefore does not significantly delay other applications that want to access a file or record that is locked. However, an application for periodically duplicating data in a computer system where the storage means is shared is a special case.

Минимальной единицей данных, которая может быть дублирована, является единый файл, поскольку ни дублирующее приложение, ни операционная система не имеют осведомленности о внутренней структуре файла, так как он может быть связан с любой прикладной программой. The minimum unit of data that can be duplicated is a single file, since neither the backup application nor the operating system have knowledge of the internal structure of the file, since it can be associated with any application program.

Кроме того, дублирующая копия файла должна быть точным образом оригинала в конкретный момент времени. Однако копирование файла является не мгновенным процессом и время, требуемое для копирования, будет зависеть от размера файла и скорости операции копирования. Это приводит к проблеме до тех пор, пока дублирующее приложение не может быть уверено, что никакое другое приложение не может модифицировать файл во время процесса копирования. In addition, a duplicate copy of the file must be the exact image of the original at a particular point in time. However, copying a file is not an instant process and the time required for copying will depend on the file size and speed of the copy operation. This leads to a problem until the duplicate application can be sure that no other application can modify the file during the copy process.

Для копирования файла дублирующее приложение назначает область памяти с произвольной выборкой (ЗУПВ) в качестве передаточного буфера и продолжает чередующимся считыванием блоков исходного файла в буфер, а затем выполнением контрольного считывания содержимого буфера во вторичное запоминающее средство. Если файл не очень маленький, передаточный буфер будет заполняться несколько раз и процесс копирования потребует нескольких операций считывания и записи для выполнения полного копирования файла. To copy a file, the backup application designates a random access memory space (RAM) as the transfer buffer and continues by alternately reading blocks of the source file into the buffer, and then performing a check reading of the contents of the buffer into the secondary storage medium. If the file is not very small, the transfer buffer will be filled several times and the copy process will require several read and write operations to complete a full file copy.

Потенциальная проблема, вызванная возможностью модификации файла во время процесса копирования, может быть проиллюстрирована рассмотрением примера файла, который копируется как последовательность 10-ти блоков. Если файл был бы модифицирован входным сообщением, которое требовало изменения в файл, которые соответствуют блокам 3 и 8 после того, как блоки с 1 по 8 уже скопированы, процесс копирования в результате скопировал бы изменение в блок 8, но не скопировал бы изменение в блок 3, поскольку этот блок уже был скопирован до появления входного сообщения. Поэтому дублирующая копия будет содержать только частичное входное сообщение, которое может сделать дублирующую копию полностью бесполезной, так как приложение, которое "владеет" ей, вероятно будет считать файл испорченным. A potential problem caused by the possibility of modifying a file during the copying process can be illustrated by looking at an example of a file that is copied as a sequence of 10 blocks. If the file was modified by an input message that required changes to the file that correspond to blocks 3 and 8 after blocks 1 to 8 have already been copied, the copy process would copy the change to block 8, but would not copy the change to block 3, since this block has already been copied before the input message appears. Therefore, the duplicate copy will contain only a partial input message, which can make the duplicate copy completely useless, since the application that "owns" it will probably consider the file damaged.

Патент США N 5086502, принадлежащий настоящему заявителю, раскрывает способ дублирования каждой операции записи, когда она сделана, выполнением дублирующей операции записи во вторичное запоминающее средство. В дополнение к этому методу существуют два других способа дублирования файлов на компьютерной системе, имеющей совместно используемое запоминающее средство:
I) Блокировать файл во время копирования. Это препятствует модификации файла другими пользователями посредством отказа им в доступе записи. Если другой пользователь уже имеет доступ записи, дублирующее приложение должно либо пропустить этот файл, либо ждать до тех пор, пока может быть получен исключительный доступ записи.
US patent N 5086502, owned by the present applicant, discloses a method for duplicating each write operation, when it is done, by performing a duplicate write operation to the secondary storage means. In addition to this method, there are two other ways of duplicating files on a computer system that has a shared storage medium:
I) Lock the file while copying. This prevents other users from modifying the file by denying them write access. If another user already has write access, the backup application must either skip this file or wait until exclusive write access can be obtained.

II) Обнаружить модификации в файл. После копирования файла дублирующее приложение может использовать операционную систему для того, чтобы проверить были ли сделаны какие-либо модификации во время операции копирования. Если модификации были сделаны, тогда копирование должно быть повторено или этот файл пропущен. Ii) Detect modifications to the file. After copying the file, the backup application can use the operating system to check whether any modifications were made during the copy operation. If modifications have been made, then copying must be repeated or this file is skipped.

Ни один из последних двух способов не обеспечивает адекватного решения, поскольку многие файлы (особенно файлы базы данных) находятся постоянно в использовании. Более того, эти два способа требуют, чтобы пользователи были эффективно заблокированы, пока происходит дублирование. Кроме того, немногие комбинации вспомогательных запоминающих устройств и операционных систем допускают непрерывные скорости передачи данных более чем 15 мегабайт (Мбайт) в минуту и поэтому время, требуемое для копирования большого файла является значительным. None of the last two methods provides an adequate solution, since many files (especially database files) are constantly in use. Moreover, these two methods require users to be effectively blocked while duplication occurs. In addition, few combinations of auxiliary storage devices and operating systems allow continuous data transfer rates of more than 15 megabytes (MB) per minute and therefore the time required to copy a large file is significant.

Несколько прикладных программ действительно, обращаются к этой проблеме посредством надежного дублирования их собственных файлов в совместно используемой среде, но процедура для каждой является различной. Для того, чтобы дублировать все запоминающее средство, дублирующая прикладная система должна знать как работает каждая различная встроенная процедура или должна полагаться на ручное вмешательство в подходящий момент. Several applications do address this issue by reliably duplicating their own files in a shared environment, but the procedure for each is different. In order to duplicate the entire storage medium, the duplicate application system must know how each different built-in procedure works or must rely on manual intervention at the right time.

Таким образом, поскольку дублирующая прикладная система должна дублировать весь файл и поскольку этот файл не должен быть модифицирован другой прикладной программой во время процесса дублирования, использование предыдущих способов дублирования будет вносить задержки в компьютерную систему, имеющую совместно используемое запоминающее средство. Это особенно верно, когда дублируются большие файлы. Thus, since the duplicating application system must duplicate the entire file and since this file must not be modified by another application during the duplication process, the use of the previous duplication methods will introduce delays in the computer system having a shared storage medium. This is especially true when large files are duplicated.

Патент США N 5163148, выданный на имя Уоллса (Walls) описывает дублирующую систему, в которой перед тем, как начинается дублирование файла, файл приводится в постоянное состояние, например, если требуется множество операций в связи с входным сообщением, тогда все эти операции завершаются. Если часть файла, подлежащего дублированию требует корректировки, эта часть исходного файла копируется в отдельную часть диска перед тем, как происходит дублирование. Дублирующая программа дублирует файл посредством замены тех частей, которые скорректированы исходными частями, которые скопированы и сохранены где-нибудь в другом месте на диске. Карта распределения областей памяти на диске, которая обычно содержит список дорожек и секторов на диске, занятых этим файлом, расширяется для включения конкорданса (указателя), устанавливающего соотношение размещений дорожки и сектора скопированных исходных частей файла к размещениям дорожки и сектора скорректированных частей, которые занимают области, из которых они были скопированы. U.S. Patent No. 5,163,148, issued in the name of Walls, describes a backup system in which before a file is duplicated, the file is brought into a constant state, for example, if many operations are required in connection with an input message, then all these operations are completed. If part of the file to be duplicated requires adjustment, this part of the source file is copied to a separate part of the disk before the duplication occurs. The backup program duplicates the file by replacing those parts that are adjusted by the original parts that are copied and saved somewhere else on the disk. The map of the distribution of memory areas on the disk, which usually contains a list of tracks and sectors on the disk occupied by this file, is expanded to include a concordance (pointer) that sets the ratio of the track and sector locations of the copied source parts of the file to the track locations and the sector of adjusted parts that occupy the areas from which they were copied.

Международная заявка на патент N PCT/GB 94/01581, опубликованная 20 июля 1995 г. под номером публикации N W 095/ 19559 и принадлежащая настоящему заявителю, описывает способ работы компьютера, имеющего запоминающее устройство, разделенное между несколькими прикладными программами, который также содержит дублирующий процесс, включающий процесс для поддержки записи изменений, произведенных в данных на запоминающем устройстве во время выполнения дублирующего процесса. Запись используется для гарантирования того, что данные, видимые дублирующим процессом, не изменяются, когда он выполняется, в то же время позволяя другим процессам продолжать обычно корректировать запоминающее устройство, таким образом избегая задержек, связанных с методами блокировки файла. Дополнительные операции выполняются на уровне интерфейса операционной системы микрокомпьютера таким образом, что не затрагивается нормальное использование компьютера. В этом способе дублирующий процесс является действующим для выдачи сигнала начала и сигнала окончания и для выполнения по меньшей мере одной дублирующей операции считывания для считывания исходных данных из запоминающего средства, например, жесткого диска. Центральный процессор выполняет по меньшей мере одну обычную операцию записи для записи данных периодически в первичную область запоминающего средства и по меньшей мере одну обычную операцию считывания для считывания данных из запоминающего средства. International patent application N PCT / GB 94/01581, published July 20, 1995 under publication number NW 095/19559 and owned by the present applicant, describes a method of operating a computer having a memory device shared between several application programs, which also includes a duplicate process , including a process for supporting the recording of changes made to data on the storage device during the execution of the backup process. Recording is used to ensure that the data visible by the backup process does not change when it is running, while at the same time allowing other processes to continue to usually adjust the storage device, thereby avoiding delays associated with file locking methods. Additional operations are performed at the interface level of the microcomputer operating system in such a way that normal use of the computer is not affected. In this method, a duplicate process is operative to provide a start signal and an end signal and to perform at least one duplicate read operation to read the source data from a storage medium, for example, a hard disk. The central processor performs at least one conventional write operation for writing data periodically to the primary area of the storage medium and at least one normal read operation for reading data from the storage medium.

После получения этого сигнала начала выполняется операция перехвата для перехвата операции записи и для записи данных в область вторичной памяти запоминающего средства, с тем, чтобы сохранить исходные данные, которые иначе были бы переписаны операцией записи. Запись частей файла, записанных во вторичную область поддерживается и после выполнения одной из дублирующих и обычных операций считывания запись запрашивается для считывания данных из одной из первичных и вторичных областей памяти, соответствующих записи. Таким образом, обеспечивается дублирующий процесс с сохраненными исходными данными в том состоянии, в котором они были непосредственно перед тем, как был выдан сигнал начала. Однако в этот момент запись определяет части файла в терминах записей файла, а не в терминах размещений дорожки и сектора на диске. Это исключает проблемы, которые могут возникнуть, если запись хранится в терминах размещения диска, т.е. дорожки и сектора и обеспечивает определенные преимущества. After receiving this signal, an interception operation is performed to intercept the recording operation and to write data to the secondary memory area of the storage means in order to save the original data, which would otherwise be overwritten by the recording operation. Recording of parts of the file recorded in the secondary region is supported, and after performing one of the duplicate and normal read operations, a record is requested to read data from one of the primary and secondary memory regions corresponding to the record. In this way, a duplicate process is provided with the original data stored in the state in which they were immediately before the start signal was issued. However, at this point, a record defines parts of a file in terms of file records, not in terms of track and sector locations on disk. This eliminates the problems that may arise if the record is stored in terms of disk placement, i.e. paths and sectors and provides certain advantages.

Запись предпочтительно, содержит дельта-область, в которой сохраняются первичные данные и соответствующая ссылка между фактическим местоположением первичных данных и их предназначенным местоположением. Альтернативно вторичные данные могут быть записаны в дельта области и другие приложения могут продолжать записывать в предназначенное местоположение на запоминающем устройстве. The record preferably comprises a delta region in which the primary data is stored and a corresponding link between the actual location of the primary data and their intended location. Alternatively, secondary data may be recorded in the delta region, and other applications may continue to record at the intended location on the storage device.

Дельта-область предпочтительно, является другой областью того же запоминающего устройства, например, жесткого диска. Дополнительно требуемые операции преимущественно хранятся и выполняются на уровне интерфейса операционной системы компьютерной системы. Если программное обеспечение хранится на уровне операционной системы, его можно сделать прозрачным для пользователя, с тем, чтобы не влиять на прикладное программное обеспечение. The delta region is preferably another region of the same storage device, for example, a hard disk. Additionally, the required operations are mainly stored and performed at the interface level of the operating system of the computer system. If the software is stored at the operating system level, it can be made transparent to the user so as not to affect the application software.

Эта дублирующая запись может быть сохранена на ряде запоминающих средств, например, накопителе на магнитной ленте, оптическом диске или в другой области основной запоминающей среды. Если дублирование выполнено, оно может быть восстановлено традиционным образом. This duplicate record can be stored on a number of storage means, for example, a magnetic tape drive, an optical disk, or in another area of the main storage medium. If duplication is completed, it can be restored in the traditional way.

Сущность изобретения
Настоящее изобретение обеспечивает усовершенствования, которые применимы к упомянутым выше способам. Прежде всего, это требование, чтобы система могла отличать запросы чтения, которые происходят из дублирующей программы от запросов чтения, которые происходят из других приложений, которые могут выполняться.
SUMMARY OF THE INVENTION
The present invention provides improvements that are applicable to the above methods. First of all, it is a requirement that the system can distinguish between read requests that come from the backup program and read requests that come from other applications that can be executed.

В первом аспекте настоящее изобретение обеспечивает способ работы основанной на микропроцессоре компьютерной системы, включающей командную память, центральный процессор и запоминающее средство, согласно которому (способу) обеспечивают дублирующий процесс, выполняющийся на компьютерной системе, который является действующим для выдачи сигнала начала и сигнала окончания и для выдачи по меньшей мере одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, обеспечивают первые команды, хранимые в памяти, в центральном процессоре для того, чтобы заставить центральный процессор выполнить по меньшей мере одну обычную операцию считывания для считывания данных из запоминающего средства, причем дублирующий процесс способен работать с файлами, которые открыты для доступа командами, поддерживают запись данных, записанных в запоминающем средстве для того, чтобы установить связь между соответствующими областями в первичной области памяти запоминающего средства, определяют после получения сигнала начала и после получения команды считывания, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, и после выполнения одной из операций дублирующего и обычного считывания запрашивают запись для считывания данных из одной из первичной и вторичной областей памяти, соответствующих упомянутой записи, и после выполнения другой из операций дублирующего и обычного считывания, считывают данные, из первичной области памяти, отличающийся (способ) тем, что при определении того, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, просматривают область памяти, из которой происходит команда считывания, для определения идентичности программы, которая инициировала команду считывания. In a first aspect, the present invention provides a method of operating a microprocessor-based computer system, including command memory, a central processor and memory means, according to which (the method), a duplicate process is performed on a computer system that is operable to provide a start signal and an end signal and for issuing at least one duplicate read command to read the source data from the storage means, provide the first commands stored in memory in the central processor in order to cause the central processor to perform at least one normal read operation to read data from the storage medium, the redundant process being able to work with files that are open for access by commands that support writing data stored in the storage medium for in order to establish a connection between the respective areas in the primary memory area of the storage means, it is determined after receiving the start signal and after receiving the read command whether the read command relates to the duplicate read operation or to the normal read operation, and after performing one of the duplicate and normal read operations, a record is requested to read data from one of the primary and secondary memory areas corresponding to the record, and after performing another of the operations duplicate and conventional read, read data from the primary memory area, characterized (method) in that when determining whether the read command relates to the operation of the duplicate count yvaniya or normal read operation, browsing the memory area from which the read command occurs, to determine the identity of the program which initiated the read command.

Во втором альтернативном аспекте изобретения обеспечивается способ работы основанной на микропроцессоре компьютерной системы, включающей командную память, центральный процессор и запоминающее средство в. компьютерной сети, согласно которому (способу) обеспечивают дублирующий процесс, выполняющийся на компьютерной системе, который является действующим для выдачи сигнала начала и сигнала окончания и для выдачи по меньшей мере одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, обеспечивают первые команды, хранимые в памяти, в центральном процессоре для того, чтобы заставить центральный процессор выполнить по меньшей мере одну обычную операцию считывания для считывания данных из запоминающего средства, поддерживают запись данных, записанных в запоминающем средстве, для того, чтобы установить связь между соответствующими областями в первичной области памяти запоминающего средства и вторичной областью памяти запоминающего средства, и определяют после получения сигнала начала и после получения команды считывания, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, и после выполнения одной из операций дублирующего и обычного считывания запрашивают запись для считывания данных из одной из первичной и вспомогательной областей памяти, соответствующих записи, и после выполнения другой из операций дублирующего и обычного считывания, считывают данные из первичной области памяти, отличающийся (способ) тем, что назначают в дублирующий процесс пользователя идентификацию или процесса, или задачи, а при определении того, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, определяют, запрашивается ли операция считывания пользователем или программой с указанным пользователем идентификацией процесса или задачи. In a second alternative aspect of the invention, there is provided a method of operating a microprocessor-based computer system including a command memory, a central processor, and storage means c. computer network, according to which (the method) provide a backup process running on a computer system that is operable to issue a start signal and an end signal and to issue at least one duplicate read command to read the source data from the storage medium, the first commands stored in memory, in the central processor, in order to cause the central processor to perform at least one normal read operation to read data from the storage means, support the recording of data recorded in the storage medium, in order to establish a connection between the corresponding areas in the primary storage area of the storage medium and the secondary storage area of the storage medium, and after receiving the start signal and after receiving the read command, determines whether the read command duplicate read operations or to a normal read operation, and after performing one of the duplicate and normal read operations, request a record for reading data data from one of the primary and auxiliary memory areas corresponding to the record, and after performing another of the duplicate and conventional read operations, data is read from the primary memory area, characterized (method) in that an identification of the process or task is assigned to the duplicating user process, and when determining whether a read command relates to a duplicate read operation or to a normal read operation, it is determined whether a read operation is requested by a user or a program with a specified gender zovatelem identification process or task.

Потенциальной проблемой, связанной со способом упомянутого ранее приложения является то, что оно может быть не способно обеспечить требуемую дублирующую команду на данном файле, т.к. этот файл открыт для другого приложения, так что доступ к файлу дублирующим процессом запрещается операционной системой. A potential problem with the method of the previously mentioned application is that it may not be able to provide the required duplicate command on this file, because this file is open for another application, so access to the file by a duplicate process is prohibited by the operating system.

В третьем аспекте изобретения, который предпочтительно, используется в сочетании с упомянутыми ранее аспектами изобретения, обеспечивается способ работы основанной на микропроцессоре компьютерной системы, включающей командную память, центральный процессор и запоминающее средство, согласно которому обеспечивают дублирующий процесс, выполняющийся на компьютерной системе, который является действующим для выдачи сигнала начала и сигнала окончания и для выполнения по меньшей мере одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, и обеспечивают команды, хранимые в памяти, в центральном процессоре для того, чтобы заставить центральный процессор выполнить по меньшей мере одну обычную операцию считывания для считывания данных из запоминающего средства, обеспечивают средство открытия файла для открытия файла, считываемого обычной операцией считывания и отказа доступа к файлу другими операциями считывания, отличающийся (способ) тем, что обеспечивают средство, связанное с дублирующим процессом, которое блокирует функцию отказа средства открытия файла для разрешения одновременного доступа считывания к файлу дублирующей операцией считывания и обычной операцией считывания. In a third aspect of the invention, which is preferably used in conjunction with the previously mentioned aspects of the invention, there is provided a method of operating a microprocessor-based computer system including a command memory, a central processor and memory means, according to which a duplicate process is executed on a computer system that is operational for issuing a start signal and an end signal and to execute at least one duplicate read command for reading and input data from the storage means, and provide instructions stored in memory in the central processor in order to cause the central processor to perform at least one normal read operation to read data from the storage means, provide a file opener for opening a file read by a normal operation reading and denying access to the file by other read operations, characterized in (method) in that they provide a means associated with a duplicate process that blocks the open function means for opening a file to permit simultaneous read access to the file backup operation reading and normal reading operation.

Наконец, несмотря на то, что способ дублирования упомянутого ранее приложения может справиться с изменениями, сделанными в дублируемый файл, когда действует дублирование, изобретатель принял во внимание, что возникнет проблема, если файл находится в процессе записи, когда операция дублирования фактически начинается. Finally, although the method of duplication of the previously mentioned application can cope with the changes made to the duplicate file when duplication is in effect, the inventor took into account that there will be a problem if the file is in the recording process when the duplication operation actually begins.

В четвертом аспекте изобретение обеспечивает способ работы основанной на микропроцессоре компьютерной системы, включающей командную память, центральный процессор и запоминающее средство, согласно которому обеспечивают дублирующий процесс, выполняющийся на компьютерной системе, который является действующим для выдачи сигнала начала и сигнала окончания и для выдачи по меньшей мере одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, обеспечивают команды, хранимые в памяти, в центральном процессоре для того, чтобы заставить центральный процессор выполнить по меньшей мере одну обычную операцию записи для записи данных в запоминающее средство, причем дублирующий процесс способен работать с файлами, которые являются открытыми для доступа командами, отличающийся (способ) тем, что задерживают выдачу сигнала начала до тех пор, пока не завершат ряд операций записи в дублируемый файл. In a fourth aspect, the invention provides a method of operating a microprocessor-based computer system, including command memory, a central processor, and memory means, according to which there is provided a duplication process running on a computer system that is operable to provide a start signal and an end signal, and to output at least one duplicate read command to read the source data from the storage means provide instructions stored in memory in a central a processor in order to force the central processor to perform at least one normal write operation for writing data to a storage medium, the duplicating process being able to work with files that are open for access by commands, characterized in that they delay the output of the start signal to until you complete a series of write operations to the duplicate file.

В пятом аспекте изобретение обеспечивает дублирующую систему для основанной на микропроцессоре компьютерной системы, включающую командруню память (14), центральный процессор (12) и запоминающее средство (16), содержащую
дублирующую программу для выполнения на компьютерной системе, которая является действующей для выдачи сигнала начала и сигнала окончания и для выдачи по меньшей мере одной команды дублицирующего считывания для считывания исходных данных из запоминающего средства,
средство (38, 40) для обеспечения первых команд, хранимых в памяти, в центральный процессор для того, чтобы заставить центральный процессор выполнить по меньшей мере одну обычную операцию считывания для считывания данных из запоминающего средства,
средство (34) для поддержки записи данных, записанных в запоминающее средством для того, чтобы установить связь между соответствующими областями в первичной области памяти запоминающего средства и вторичной областью памяти запоминающего средства, и
средство (42, 60) для определения после получения сигнала начала и после получения команды считывания, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, и после выполнения одной из операций дублирующего и обычного считывания запроса записи для считывания данных из одной из первичной и вторичной областей памяти, соответствующих записи, и после выполнения других операций дублирующего и обычного считывания, считывания данных из первичной области памяти, отличающуюся (систему) тем, что средство (42, 60) для определения, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания содержит средство для просмотра области памяти, из которой происходит команда считывания, для определения идентичности программы, которая инициировала команду считывания.
In a fifth aspect, the invention provides a back-up system for a microprocessor-based computer system, including a command command memory (14), a central processor (12), and storage means (16) comprising
a backup program for execution on a computer system that is operable to issue a start signal and an end signal and to issue at least one duplicate read command to read the source data from the storage medium,
means (38, 40) for providing the first instructions stored in memory to the central processor in order to cause the central processor to perform at least one ordinary read operation to read data from the storage means,
means (34) for supporting the recording of data recorded in the storage means in order to establish a relationship between the respective areas in the primary memory area of the storage medium and the secondary memory area of the storage medium, and
means (42, 60) for determining, after receiving the start signal and after receiving the read command, whether the read command relates to the duplicate read operation or to the normal read operation, and after performing one of the duplicate and normal read operations of the write request for reading data from one of primary and secondary memory areas corresponding to the record, and after performing other operations of duplicate and conventional reading, reading data from the primary memory area, which differs (system) in that GUT (42, 60) for determining whether the read command relates to a backup read operation or a normal read operation comprises means for viewing the memory area from which the read command occurs, to determine the identity of the program which initiated the read command.

В дублирующей системе по пятому аспекту средство просмотра содержит средство для опроса стека для определения адресов ячеек памяти, хранимых в стеке и опроса по указанным адресам. In the backup system according to the fifth aspect, the viewer comprises means for polling the stack for determining the addresses of memory cells stored on the stack and polling at the specified addresses.

Средство просмотра содержит средство для сравнения кода около адреса ячеек памяти с кодом, ожидаемым из дублирующей программы. The viewer contains a means for comparing the code near the address of the memory cells with the code expected from the backup program.

Средство просмотра содержит средство для определения префикса сегмента программы и строки среды, связанной с программой в адресах ячеек памяти и определения имени программы с использованием строки среды. The viewer contains means for determining the prefix of the program segment and the line of the environment associated with the program in the addresses of the memory cells and determining the name of the program using the line of the environment.

Шестым аспектом изобретения является основанная на микропроцессоре компьютерная система для использования в компьютерной сети и включающая командную память (14) центральный процессор (12) и запоминающее средство (16), причем основанная на микропроцессоре компьютерная система содержит
дублирующую программу для выполнения на компьютерной системе, которая является действующей для выдачи сигнала начала и сигнала окончания и для выдачи по меньшей мере одной команды дублирующего считывания для считывания исходных данных из запоминающего средства,
средство (38, 40) для обеспечения первых команд, хранимых в памяти, в центральный процессор для того, чтобы заставить центральный процессор выполнить по меньшей мере одну обычную операцию считывания для считывания данных из запоминающего средства,
средство (34) для поддержки записи данных, записанных в запоминающее средство, для того, чтобы установить связь между соответствующими областями в первичной области памяти запоминающего средства и вторичной областью памяти запоминающего средства, и
средство (42, 60) для определения после получения сигнала начала и после получения команды считывания, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, и после выполнения одной из операций дублирующего и обычного считывания запроса записи для считывания данных из одной из первичной и вторичной областей памяти, соответствующих записи, и после выполнения других операций дублирующего и обычного считывания, считывания данных из первичной области памяти.
A sixth aspect of the invention is a microprocessor-based computer system for use in a computer network and comprising a command memory (14) a central processor (12) and memory means (16), the microprocessor-based computer system comprising
a backup program for execution on a computer system that is operable to issue a start signal and an end signal and to issue at least one duplicate read command to read the source data from the storage medium,
means (38, 40) for providing the first instructions stored in memory to the central processor in order to cause the central processor to perform at least one ordinary read operation to read data from the storage means,
means (34) for supporting the recording of data recorded in the storage means, in order to establish a connection between the respective areas in the primary memory area of the storage medium and the secondary memory area of the storage medium, and
means (42, 60) for determining, after receiving the start signal and after receiving the read command, whether the read command relates to the duplicate read operation or to the normal read operation, and after performing one of the duplicate and normal read operations of the write request for reading data from one of primary and secondary memory areas corresponding to the record, and after performing other operations of duplicate and conventional reading, reading data from the primary memory area.

Основанная на микропроцессоре компьютерная система отличается тем, что содержит средство для назначения в дублирующую программу пользователя идентификации процесса или задачи, а средство (42, 60) для определения, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания содержит средство для определения, запрашивается ли операция считывания пользователем или программой с указанным пользователем идентификацией процесса или задачи. The microprocessor-based computer system is characterized in that it comprises means for assigning a process or task identification to the user back-up program, and means (42, 60) for determining whether the read command refers to the duplicate read operation or to the normal read operation contains means for determining whether the read operation by the user or program with the user-specified process or task identification is requested.

Седьмым аспектом изобретения является дублирующая система для основанной на микропроцессоре компьютерной системы, включающей командную память (14), центральный процессор (12) и запоминающее средство (16), причем дублирующая система содержит
дублирующую программу для выполнения на компьютерной системе, которая является действующей для выдачи сигнала начала и сигнала окончания и для выдачи по меньшей мере одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, и
средство (38, 40) для обеспечения команд, хранимых в памяти, в центральный процессор для того, чтобы заставить центральный процессор выполнить по меньшей мере одну обычную операцию считывания для считывания данных из запоминающего средства, и
средство открытия файла для открытия файла, считываемого обычной операцией считывания и отказа доступа к файлу другими операциями считывания,
Дублирующая система по седьмому аспекту отличается тем, что содержит средство, связанное с дублирующей программой для блокирования функции отказа средства открытия файла для разрешения одновременного доступа считывания к файлу операцией дублирующего считывания и обычной операцией считывания.
A seventh aspect of the invention is a redundant system for a microprocessor-based computer system including a command memory (14), a central processor (12) and a storage means (16), the redundant system comprising
a backup program for execution on a computer system that is operable to provide a start signal and an end signal and to issue at least one duplicate read command to read the source data from the storage means, and
means (38, 40) for providing instructions stored in the memory to the central processor in order to cause the central processor to perform at least one ordinary read operation to read data from the storage means, and
file opener for opening a file read by a normal read operation and denying access to the file by other read operations,
The dubbing system according to the seventh aspect is characterized in that it comprises means associated with the dubbing program for blocking the failure function of the file opener for allowing simultaneous read access to the file by the duplicate read operation and the normal read operation.

Восьмым аспектом изобретения является дублирующая система для основанной на микропроцессоре компьютерной системы, включающей командную память (14), центральный процессор (12) и запоминающее средство (16), причем дублирующая система содержит
дублирующую программу для выполнения на компьютерной системе, которая является действующей для выдачи сигнала начала и сигнала окончания и для выдачи по меньшей мере одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, и
средство (22) для обеспечения команд, хранимых в памяти, в центральный процессор для того, чтобы заставить центральный процессор выполнить по меньшей мере одну обычную операцию записи для записи данных в запоминающее средство, и
в которой дублирующая программа способна работать с файлами, которые открыты для доступа командами; и
Дублирующая система по восьмому аспекту отличается тем, что содержит средство для задержки выдачи сигнала начала до тех пор, пока не завершится ряд операций записи в дублируемый файл.
An eighth aspect of the invention is a back-up system for a microprocessor-based computer system including a command memory (14), a central processor (12) and memory means (16), the back-up system comprising
a backup program for execution on a computer system that is operable to provide a start signal and an end signal and to issue at least one duplicate read command to read the source data from the storage means, and
means (22) for providing instructions stored in memory to the central processor in order to cause the central processor to perform at least one normal write operation to write data to the storage means, and
in which the backup program is able to work with files that are open for access by commands; and
The dubbing system in the eighth aspect is characterized in that it comprises means for delaying the generation of a start signal until a series of write operations to the duplicate file are completed.

Изобретение будет описано ниже со ссылкой на сопроводительные чертежи. The invention will be described below with reference to the accompanying drawings.

Краткое описание чертежей
Фиг. 1 представляет блок-схему персонального компьютера и кассетного запоминающего устройства на магнитной ленте.
Brief Description of the Drawings
FIG. 1 is a block diagram of a personal computer and a magnetic tape cassette storage device.

Фиг. 2A и 2B представляют схемы, иллюстрирующие схему распределения системной памяти на уровне операционной системы традиционного персонального компьютера и компьютера, модифицированного для работы в соответствии со способом изобретения, соответственно. FIG. 2A and 2B are diagrams illustrating a system memory allocation scheme at the operating system level of a conventional personal computer and a computer modified to operate in accordance with the method of the invention, respectively.

Фиг. 3 представляет блок-схему способа для записи данных в дублирующей операции. FIG. 3 is a flow diagram of a method for recording data in a duplicate operation.

Фиг. 4 представляет блок-схему второго воплощения способа фиг. 3; и
Фиг. 5 представляет блок-схему, иллюстрирующую усовершенствования в воплощении, описанные со ссылкой на фиг. 3 и 4.
FIG. 4 is a flowchart of a second embodiment of the method of FIG. 3; and
FIG. 5 is a block diagram illustrating the improvements in embodiment described with reference to FIG. 3 and 4.

Описание предпочтительных воплощений изобретения
Ссылаясь на фиг. 1 чертежей, персональный компьютер 10 обычно содержит центральный процессор 12, командную память (память с произвольной выборкой) 14 и запоминающее средство (несъемное запоминающее устройство в виде накопителя на жестких магнитных дисках) 16. В этом примере для цели обеспечения дублирующего запоминающего средства накопитель на магнитной ленте 18 соединен с компьютером 10.
Description of preferred embodiments of the invention
Referring to FIG. 1 of the drawings, the personal computer 10 typically comprises a central processor 12, a command memory (random access memory) 14 and a storage medium (non-removable storage device in the form of a hard disk drive) 16. In this example, for the purpose of providing a duplicate storage medium, the magnetic storage device The tape 18 is connected to the computer 10.

Часть дублирующего программного приложения сформирована как записывающий процесс, который работает для перехвата обычных операций считывания и записи из и в накопитель на диске 16 соответственно, для того, чтобы управлять потоком данных между накопителем на диске 16 и другими частями компьютера 10. Part of the duplicate software application is formed as a recording process that works to intercept the usual read and write operations from and to the drive on the disk 16, respectively, in order to control the data flow between the drive on the disk 16 and other parts of the computer 10.

Перед тем, как начать создавать дублирующую копию файла, записывающий процесс активизируется дублирующим приложением для того, чтобы переориентировать все дисковые средства записи в другую область диска 16, известную как "дельта" область. Таблица соответствия дельта области памяти поддерживается для обеспечения записи всех дисковых операций записи, которые переориентированы в дельта область. Эта таблица поддерживает соответствие между предназначенным местом назначения на диске 16 данных, связанных с каждой дисковой операцией записи, и их фактическим расположением в памяти в дельта-области. Если последующая операция записи происходит в область, которая уже является объектом компоненты в таблице, допускается, чтобы старые данные в дельта-области были перезаписаны новыми данными. Таким образом данные в главной части диска не изменяются, когда создается дублирующая копия, поскольку все изменения переориентируются в дельта-область. Before starting to create a duplicate copy of a file, the recording process is activated by the backup application in order to reorient all disk recording media to another area of the disk 16, known as the "delta" area. A delta memory map is maintained to ensure that all disk write operations that are redirected to the delta region are recorded. This table maintains the correspondence between the intended destination on disk 16 of the data associated with each disk write operation and their actual memory location in the delta region. If a subsequent write operation occurs in an area that is already a component object in the table, it is allowed that the old data in the delta area be overwritten with the new data. Thus, the data in the main part of the disk does not change when a duplicate copy is created, since all changes are reoriented to the delta region.

Когда дисковая операция считывания запрашивается дублирующим приложением, она пропускается неизменной, так что данные, возвращенные в дублирующее приложение приходят из исходной области данных в главной части диска. Однако, когда дисковая операция считывания запрашивается другим приложением, записывающий процесс сначала работает для того, чтобы проверить таблицу, чтобы увидеть произошла ли запись на диск в эту область, с тех пор как процесс начал перехватывать операции записи, и если так, операция считывания переориентируется в соответствующую позицию в дельта- области. Если не произошла операция записи, т.е. эта порция данных не изменилась, с тех пор как начался перехват операции записи, тогда операция считывания пропускается неизменной. When a disk read operation is requested by the backup application, it is skipped unchanged, so that the data returned to the backup application comes from the original data area in the main part of the disk. However, when a disk read operation is requested by another application, the recording process first works to check the table to see if there has been a write to disk in this area since the process began to intercept write operations, and if so, the read operation is reoriented to corresponding position in the delta area. If a write operation has not occurred, i.e. this piece of data has not changed since the capture of the write operation began, then the read operation is skipped unchanged.

Таким образом, изменения в данных, хранимых на диске 16 видятся обычно всеми приложениями, отличными от дублирующего приложения. Дублирующее приложение видит данные, которые не изменятся до тех пор, пока не будет выдана команда остановить записывающий процесс, перехватывающий операции считывания и записи. Thus, changes to the data stored on disk 16 are usually seen by all applications other than the backup application. The backup application sees data that will not change until a command is issued to stop the recording process, intercepting the read and write operations.

Когда операция дублирующего копирования заканчивается, записывающий процесс активизируется для возвращения компьютера к обычной работе. Эта восстановительная фаза достигается применением изменений, сохраненных в дельта-области к соответствующим исходным областям данных в главной части диска 16 с использованием соответствий, хранимых в таблице. В то время как применяются изменения дельта-области, дисковые операции записи продолжают перехватываться, как описано выше. Когда больше нет операций записи, которые не применены к исходной области данных, перехват операций записи останавливается и система работает традиционно. When the duplicate copy operation ends, the recording process is activated to return the computer to normal operation. This recovery phase is achieved by applying the changes stored in the delta region to the corresponding source data areas in the main part of the disk 16 using the correspondences stored in the table. While changes to the delta region apply, disk write operations continue to be intercepted as described above. When there are no more write operations that are not applied to the original data area, the capture of write operations stops and the system operates traditionally.

В качестве дальнейшего усовершенствования, если запись сохранена из непрерывной области памяти, к которой продвинулся дублирующий копирующий процесс, программное обеспечение может разрешить операции записи в главную часть диска 16 для пропускания неизмененными после того, как эта часть диска задублирована, поскольку больше не будет иметь значения, если данные изменятся. Это уменьшает размер таблицы соответствия дельта-области. Также, если область в главной части диска, к которой направлена эта операция, была уже объектом компоненты в таблице соответствия, эта компонента затем может быть удалена, таким образом уменьшая время, требуемое в фазе восстановления. As a further improvement, if a record is saved from a contiguous memory area to which the duplicate copying process has advanced, the software may allow write operations to the main part of the disc 16 to be passed unchanged after this part of the disc is duplicated, since it will no longer matter. if the data changes. This reduces the size of the delta mapping table. Also, if the area in the main part of the disk to which this operation is directed was already a component object in the correspondence table, this component can then be deleted, thereby reducing the time required in the recovery phase.

Изобретение особенно применимо к IBM - совместимым персональным компьютерам, т. е большинству персональных компьютеров, использующих в качестве их центрального процессора процессорные микросхемы 8086, 8088, 80286, 80386, 80486, и Pentium, производимых фирмой Intel, и подобным основанным на микропроцессоре системам. В таких компьютерах всякий раз, когда программа желает получить доступ к файлу, она вызывает стандартную подпрограмму, которая записывает данные на диск. Эта подпрограмма, которая в случае операционной системы DOS известна как Interrupt 21 hex (INT 21h), является неотъемлемой частью операционной системы. Действие, выполняемое подпрограммой, известной как подпрограмма обработки прерывания, зависит от параметров, переданных в подпрограмму после ввода. Эта подпрограмма показана на фиг.2A как составляющая часть операционной системы в схеме распределения системной памяти, причем место ввода INT 21h показано стрелкой. Для выполнения предпочтительного способа в соответствии с изобретением добавляется дополнительный программный код на уровне интерфейса операционной системы, как показано на фиг. 2B. На практике в среде DOS это может быть загружено в компьютер как драйвер устройства, используя файл CONFIG.SYS. The invention is particularly applicable to IBM-compatible personal computers, i.e., most personal computers that use 8086, 8088, 80286, 80386, 80486, and Pentium chips manufactured by Intel and similar microprocessor-based systems as their central processor. In such computers, whenever a program wants to access a file, it calls a standard routine that writes data to disk. This routine, which in the case of the DOS operating system is known as Interrupt 21 hex (INT 21h), is an integral part of the operating system. The action taken by a routine known as an interrupt routine depends on the parameters passed to the routine after input. This routine is shown in FIG. 2A as an integral part of the operating system in the system memory allocation scheme, where the input location INT 21h is shown by an arrow. To execute the preferred method in accordance with the invention, additional program code is added at the level of the operating system interface, as shown in FIG. 2B. In practice, in a DOS environment, this can be downloaded to the computer as a device driver using the CONFIG.SYS file.

Дополнительное программное обеспечение имеет действие команды для записи данных, замещаемой альтернативным набором команд. Аналогичный способ может быть использован для перехвата команды для считывания данных с диска и для замещения ее также альтернативным набором команд. Optional software has a command action to record data replaced by an alternative set of commands. A similar method can be used to intercept a command to read data from a disk and to replace it also with an alternative set of commands.

Соответствующая последовательность операций, обеспечиваемая альтернативным набором команд, показана на блок-схеме фиг. 3. После получения вызова INT 21h, программа сначала проверяет для того, чтобы определить является ли вызов вызовом записи. Если да, то программа проверяет на шаге 20 для выяснения подразумевается ли, что это является перехваченными вызовами записи. Если нет, данные записываются (шаг 22) в исходную область данных 24. The corresponding sequence of operations provided by an alternative set of instructions is shown in the flowchart of FIG. 3. After receiving a call to INT 21h, the program first checks to determine if the call is a write call. If so, the program checks in step 20 to determine if this is implied by intercepted recording calls. If not, data is written (step 22) to the original data area 24.

Если вызовы являются перехваченными, тогда программа проверяет таблицу соответствия дельта-области (шаг 26) для выяснения, сделана ли предварительно запись в эту область исходного файла 24, определенную в терминах указанных записей или частей в файле. Если (шаг 28) запись предварительно сделана, тогда эта часть дельта-области 30, предварительно соответствовавшая этой части исходного файла 24 в таблице соответствия дельта области, перезаписывается с новыми данными (шаг 32). If the calls are intercepted, then the program checks the table of correspondence of the delta region (step 26) to determine whether a preliminary record has been made to this region of the source file 24, defined in terms of the specified records or parts in the file. If (step 28) the recording is previously made, then this part of the delta region 30, which previously corresponded to this part of the source file 24 in the delta region correspondence table, is overwritten with the new data (step 32).

Если вызовы записи являются перехваченными, но запись не была предварительно сделана в эту часть исходного файла 24, тогда запись добавляется в таблицу и новая область дельта-области назначается для этой порции данных (шаг 34). Данные затем записываются в новую дельта-область (шаг 36). If the record calls are intercepted, but the record was not previously made to this part of the source file 24, then the record is added to the table and a new region of the delta region is assigned for this piece of data (step 34). Data is then written to a new delta region (step 36).

Если вызов является вызовом считывания, программа проверяет на шаге 38, подразумевается ли, что это является перехваченными вызовами считывания. Если нет, тогда данные считываются из исходного файла 24 (шаг 40). If the call is a read call, the program checks in step 38 whether it is understood to be intercepted read calls. If not, then the data is read from the source file 24 (step 40).

Если программа перехватывает вызовы считывания, тогда она сначала проверяет на шаге 42 для выяснения, пришел ли вызов из дублирующей прикладной программы. Если вызов действительно пришел из дублирующего приложения, программа переходит к шагу 40 и данные считываются из исходного файла 24. If the program intercepts read calls, then it first checks at step 42 to determine if the call came from a duplicate application. If the call really came from the backup application, the program proceeds to step 40 and the data is read from the source file 24.

Если вызов считывания не пришел из дублирующего приложения, программа проверяет таблицу соответствия дельта-области для выяснения, переориентирована ли запись в область исходного файла 24, соответствующую области вызова считывания, в дельта-область (шаг 44). Если она не переориентирована (шаг 46), программа переходит назад к шагу 40 и данные считываются из исходного файла 24. Если считывание переориентировано, данные считываются из соответствующей части дельта-области 30 (шаг 48). If the read call did not come from the backup application, the program checks the correspondence table of the delta region to determine if the record is reoriented to the region of the source file 24 corresponding to the region of the read call to the delta region (step 44). If it is not reoriented (step 46), the program moves back to step 40 and the data is read from the source file 24. If the read is reoriented, the data is read from the corresponding part of the delta region 30 (step 48).

Если вызов INT 21h не является ни вызовом записи, ни вызовом считывания, тогда он возвращается в обычную обрабатывающую подпрограмму INT 21h. If the INT 21h call is neither a write call nor a read call, then it returns to the regular processing routine of INT 21h.

Во втором воплощении изобретения, когда команды считывания и записи перехватываются во время записывающего процесса, вместо запоминания измененных данных в дельта-области, когда выполняется первая запись в конкретную область файла, исходные данные сохраняются в дельта-области и разрешается изменять исходный файл. Выполняется ввод в таблицу соответствия, которая указывает на исходное содержание этой области исходного файла, который теперь хранится в дельта-области. Любая последующая запись в ту же область файла затем игнорируется записывающим процессом. Запросы считывания из дублирующего приложения затем переориентируются в дельта-область, если таблица соответствия показывает, что эта область исходного файла перезаписана. In the second embodiment of the invention, when the read and write commands are intercepted during the recording process, instead of storing the changed data in the delta region, when the first write to a specific region of the file is performed, the original data is stored in the delta region and the source file is allowed to be changed. An entry is made into the correspondence table, which indicates the source content of this area of the source file, which is now stored in the delta area. Any subsequent recording to the same area of the file is then ignored by the recording process. Read requests from the backup application are then redirected to the delta region if the correspondence table indicates that this region of the source file is overwritten.

На фиг. 4 представлено второе воплощение в блок-схеме. Схема аналогична схеме фиг. 3, причем шаги, имеющие одинаковую ссылочную цифру, обозначают аналогичные действия. In FIG. 4 shows a second embodiment in a flowchart. The circuit is similar to that of FIG. 3, wherein steps having the same reference numeral denote similar actions.

Различиями между фиг. 3 и фиг. 4 является следующее. The differences between FIG. 3 and FIG. 4 is the following.

На шаге 60, если перехват считывания является активным (шаг 38) и считывание является не из дублирующего приложения, данные считываются из исходной области данных. Это противоположно шагу 42 на фиг. 3. Дополнительный шаг 62 вставлен после шага 28, который считывает данные из исходной области данных, перед тем, как она перезаписывается в первый раз. In step 60, if the read interception is active (step 38) and the read is not from a backup application, data is read from the original data area. This is the opposite of step 42 in FIG. 3. An additional step 62 is inserted after step 28, which reads data from the original data area before it is overwritten for the first time.

Шаг 36 фиг.3 видоизменен для образования нового шага 64, который содержит дополнительную запись в дельта-область данных, считанных на шаге 62. Step 36 of FIG. 3 is modified to form a new step 64, which contains an additional record in the delta region of the data read in step 62.

Шаг 32 видоизменен для образования нового шага 66, который больше не переориентирует данные для перезаписывания дельта-области, а вместо этого, записывает данные поверх исходной области данных. Step 32 is modified to form a new step 66, which no longer reorients the data to overwrite the delta region, but instead writes data over the original data region.

Этот второй способ медленнее, чем первый, поскольку каждый запрос записи файла становится считыванием и двумя записями, как противоположный единственной переориентированной записи первого способа. Однако, второй способ не требует, чтобы изменения, сохраненные в дельта-области были применены к исходному файлу, как только завершено дублирование. Таблица соответствия дельта-области и данные, хранимые в дельта- области могут просто быть отброшены. Кроме того, из-за этой разницы не требуется принимать меры предосторожности для восстановления от фатального состояния (как, например, отказ питания), происходящего, когда изменения дельта-области не полностью применены к исходным данным. This second method is slower than the first, since each file write request becomes a read and two records, as opposed to a single reoriented write of the first method. However, the second method does not require that changes saved in the delta region be applied to the source file as soon as the duplication is complete. The delta region correspondence table and data stored in the delta region can simply be discarded. In addition, because of this difference, precautionary measures are not required to recover from a fatal state (such as a power failure) that occurs when changes in the delta region are not fully applied to the source data.

В случае, где способ, описанный выше образует часть дублирующего приложения, перехват операций считывания может происходить внутри дублирующего приложения и не требует вовлечения использования подпрограммы операционной системы. In the case where the method described above forms part of the backup application, interception of read operations can occur inside the backup application and does not require the use of an operating system subroutine.

Детальное применение системы, как описано со ссылкой на фиг.3 и фиг. 4, находится в компетенции специалиста в данной области и нет необходимости его полного описания. Если применяется в MS DOS, читатель отсылается к Техническому справочному руководству IBM DOS для объяснения материала, если требуется. Detailed application of the system, as described with reference to FIG. 3 and FIG. 4, is in the competence of a specialist in this field and there is no need for its full description. If used in MS DOS, the reader is referred to the IBM DOS Technical Reference Guide to explain material if required.

Изобретение предпочтительно применяется как часть самой операционной системы, или являясь неотъемлемой частью исходного кода операционной системы, или образуя расширение к нему в виде драйвера устройства. В случае Intel 80386 (и более высоких) центральных процессоров изобретение обычно работало бы на самом высоком уровне привилегии, известном как "кольцо О", где доступ ко всем элементам в системе является неограниченным. The invention is preferably applied as part of the operating system itself, or as an integral part of the source code of the operating system, or forming an extension to it in the form of a device driver. In the case of Intel 80386 (and higher) CPUs, the invention would normally operate at the highest privilege level, known as the “O ring”, where access to all elements in the system is unlimited.

Однако изобретение не полагается на какую-либо конкретную архитектуру центрального процессора для того, чтобы работать. Оно может быть легко применено на других системах, например, на компьютерах Macintosh, которые используют серии центральных процессоров 68000 и PowerPC. However, the invention does not rely on any particular central processor architecture in order to operate. It can be easily applied to other systems, such as Macintosh computers that use the 68000 series CPUs and PowerPC series.

Изобретение может быть использовано в многопользовательской среде. В этом случае предпочтительно, чтобы изобретение использовалось в среде с управлением доступом к файлам. Изобретение будет гарантировать, что сделана неискаженная дублирующая копия, в то время как остальная система полностью эффективно работает, также как она работала бы, если бы не присутствовало изобретение. При отсутствии управления доступом к файлам имеется опасность искажения файла, независимо от того, используется ли изобретение или нет. The invention can be used in a multi-user environment. In this case, it is preferable that the invention is used in a file access control environment. The invention will ensure that an undistorted duplicate copy is made while the rest of the system is fully efficient, just as it would have worked if the invention had not been present. In the absence of file access control, there is a risk of file corruption, whether the invention is used or not.

Изобретение особенно применимо к файлам, создаваемым базами данных, такой как dBase, например, которые могут быть большими и разделяются на записи. Записи, которые корректируются, записываются в таблице, и обе версии, скорректированная и исходная, поддерживаются до тех пор, пока не завершится дублирование. Таблица может содержать, например, начальную точку в файле, в которой начинаются корректируемые данные, и значение длины, соответствующее количеству данных, которые корректируются. Альтернативно таблица может содержать идентификацию в терминах опознавания корректируемых записей. The invention is particularly applicable to files created by databases, such as dBase, for example, which can be large and split into records. Records that are adjusted are recorded in the table, and both versions, adjusted and original, are supported until duplication is complete. The table may contain, for example, the starting point in the file at which the corrected data begins, and a length value corresponding to the amount of data that is being adjusted. Alternatively, the table may comprise identification in terms of identification of the records being corrected.

В многопользовательской или сетевой ситуации, когда среда компьютера позволяет идентификацию конкретного пользователя, который желает выполнить дублирование, способ может также включать шаги распознавания пользователя и дублирует только файлы этого пользователя таким образом, как описано выше. Таким образом, нет необходимости перехватывать все входные сообщения данных, а только те, относящиеся к этому пользователю. In a multi-user or network situation, when the computer environment allows identification of a specific user who wishes to perform duplication, the method may also include user recognition steps and duplicate only that user's files in the manner described above. Thus, there is no need to intercept all input data messages, but only those related to this user.

Идентификация источника запроса
Способы дублирования, описанные выше, которые способны работать на файлах, которые открыты, полагаются на способность различать запросы считывания, происходящие из дублирующего приложения и запросы, происходящие из других источников, т. е. обычных приложений. Это возникает на шаге 42 на фиг.3 или шаге 60 на фиг. 4.
Request Source Identification
The duplication methods described above, which are capable of working on files that are open, rely on the ability to distinguish between read requests originating from a duplicate application and requests originating from other sources, i.e., conventional applications. This occurs in step 42 of FIG. 3 or step 60 in FIG. 4.

При условии открытого файла способ обеспечивается как неотъемлемая часть дублирующего приложения, источник запросов считывания может быть легко определен, поскольку дублирующее приложение "знает" какие запросы он выдает. Однако проблема возникает, если дублирующее приложение уже существует, например, в виде стандартного готового пакета или иного, в виде, в котором он не может быть изменен для приспосабливания способа открытого файла, который вместо этого должен быть применен путем дополнительного кода. Given an open file, the method is provided as an integral part of the backup application, the source of the read requests can be easily determined, since the backup application “knows” what requests it issues. However, the problem arises if the duplicate application already exists, for example, in the form of a standard ready-made package or otherwise, in the form in which it cannot be changed to adapt the open file method, which should instead be applied by additional code.

В соответствии с первым усовершенствованием запроса из дублирующего приложения различаются от других запросов отслеживанием цепочки событий (т. е. просмотром назад или "вверх") для идентификации области кода, который иниицировал запрос считывания. В следующем примере такого способа опять будет использована операционная система MS DOS в качестве иллюстрации, однако подобные методы могут быть применены к другим средам операционной системы. Запрос считывания инициируется вызовом INT 21h, который обычно шел бы прямо в подпрограмму обработки прерывания. Подпрограмма обработки прерывания обычно не имеет сведений о вызывающей программе. Ей только сообщается выполнить определенную функцию и затем возвратиться в вызывающую программу. В центральных процессорах Intel, упомянутых выше, которые используются в средах DOS, центральный процессор автоматически помещает адрес возврата вызывающей программы в стек и переходит к первой команде подпрограммы прерывания. Когда функция выполнена, обработчик прерывания выдает команду возврата прерывания, которая заставляет центральный процессор отыскивать адрес возврата из стека и продолжать выполнение в адресе возврата. Следовательно, обработчику прерывания не требуется иметь, и действительно, он не имеет сведений о вызывающей программе. In accordance with the first improvement, requests from the backup application are distinguished from other requests by tracking the chain of events (ie, by looking back or up) to identify the area of the code that initiated the read request. In the following example of such a method, the MS DOS operating system will again be used as an illustration, however, similar methods can be applied to other operating system environments. A read request is triggered by a call to INT 21h, which would normally go directly to the interrupt routine. The interrupt routine usually does not have information about the calling program. She is only told to perform a specific function and then return to the calling program. In the Intel CPUs mentioned above, which are used in DOS environments, the CPU automatically pushes the return address of the calling program on the stack and jumps to the first command of the interrupt routine. When the function is executed, the interrupt handler issues an interrupt return command, which causes the central processor to look for the return address from the stack and continue execution in the return address. Therefore, the interrupt handler does not need to have, and indeed, it does not have information about the calling program.

В системе, описанной выше со ссылкой на фиг. 3 и фиг. 4, подпрограмма прерывания INT 21h замещается альтернативным набором команд. В дополнение к функциям, описанным в предшествующем, эти команды могут быть приспособлены для того, чтобы дополнительно определять источник запроса, как описывается далее. In the system described above with reference to FIG. 3 and FIG. 4, the INT 21h interrupt routine is replaced with an alternative instruction set. In addition to the functions described in the foregoing, these commands can be adapted to further determine the source of the request, as described below.

В этом усовершенствовании обработчик прерывания исследует стек для определения адреса возврата. В случае центральных процессоров Intel серий 80Х86 сдвиг кода и сегмент вызывающей программы будут запомнены как первое и второе слово наверху стека, т.е. в SS:[SP] и SS:[SP +2] соответственно. Схема шагов, включенных в MS DOS -применение этого усовершенствования дана как приложение к этому описанию. In this enhancement, the interrupt handler examines the stack to determine the return address. In the case of Intel 80X86 series CPUs, the code shift and the segment of the calling program will be remembered as the first and second word at the top of the stack, i.e. in SS: [SP] and SS: [SP +2] respectively. The outline of the steps included in MS DOS application of this improvement is given as an appendix to this description.

Подпрограмма может затем проверить источник запроса, как задано стеком, и определить программу, которая сделала вызов, рядом возможных путей, из которых следующие являются примерами. The routine can then check the source of the request, as specified by the stack, and determine the program that made the call with a number of possible paths, of which the following are examples.

I) Поскольку код в каждой версии готовой к использованию программы один и тот же, могут быть исследованы различные характеристики кода около адреса возврата для того, чтобы определить, является ли вызывающая программа известной дублирующей программой. Код около адреса возврата сравнивается с кодом ожидаемым из дублирующей программы, которая используется, для того, чтобы определить, имеется ли соответствие, указывающее, что вызов сделан дублирующей программой. I) Since the code in each version of the ready-to-use program is the same, various characteristics of the code near the return address can be examined to determine if the calling program is a known back-up program. The code near the return address is compared with the code expected from the backup program, which is used to determine if there is a match indicating that the call was made by the backup program.

II) Альтернативно может быть установлено имя программы путем ссылки в префикс сегмента программы (PSP) и строку среды, связанных с каждой загруженной программой. Из стека сегмент известен и префикс сегмента программы может быть считан. Это позволит определить местоположение строки среды и, следовательно имя программы. Этот метод полностью описан в учебнике "Недокументированная DOS", Эндрю Шулман и др., изд. Эддисон-Уэсли, 2-ая ред. , 1993, ISBN 0-201-63287-Х, см. главу 7, особенно стр. 356-359. II) Alternatively, the program name can be set by reference to the program segment prefix (PSP) and the environment string associated with each loaded program. The segment is known from the stack and the program segment prefix can be read. This will determine the location of the environment string and, therefore, the name of the program. This method is fully described in the textbook “Undocumented DOS,” by Andrew Shulman et al., Ed. Addison-Wesley, 2nd ed. , 1993, ISBN 0-201-63287-X, see chapter 7, especially pp. 356-359.

В случае операционной системы, отличной от MS DOS идентичность вызывающей программы может быть определена из других параметров стека, включая номера связей, номера идентичных задач, номера процессов и тому подобных. В определенных операционных системах глобальные переменные могут также быть использованы для установления имени процесса. In the case of an operating system other than MS DOS, the identity of the calling program can be determined from other parameters of the stack, including link numbers, identical task numbers, process numbers, and the like. On certain operating systems, global variables can also be used to set the process name.

Способ полагается на распознавание некоторых известных характеристик вызывающей программы, таких как имя программы, имя процесса (или связи) или распознавание некоторой "сигнатуры" в коде программы, которая может быть известной последовательностью байтов, просмотром назад в вызывающей программе через стек. The method relies on recognizing some known characteristics of the calling program, such as the name of the program, the name of the process (or connection), or recognizing some “signature” in the program code, which may be a known sequence of bytes, looking back in the calling program through the stack.

В соответствии со вторым усовершенствованием, которое может быть использовано в среде сервера сети, идентичность вызывающих программ определяется резервированием имени конкретного пользователя только для целей дублирования. Вместо установления идентичности программы распознается имя пользователя (уникальная идентификация пользователя), и предполагается, что все запросы от зарезервированного пользователя поступают из дублирующей программы. According to a second improvement that can be used in a network server environment, the identity of the callers is determined by reserving a specific user name for duplication purposes only. Instead of establishing the identity of the program, the user name (unique user identification) is recognized, and it is assumed that all requests from the reserved user come from the backup program.

Поскольку от каждого пользователя требуется войти в сервер перед тем, как предоставляется доступ к файлам, это является эффективным способом, конечно, при условии, что имя пользователя всегда используется для дублирования, а не для какой-либо другой цели. Этот способ не требует предварительных сведений о конкретной дублирующей программе. Аналогичным образом может быть запрошена идентификация процесса или задачи, специфическая для дублирующего процесса, для определения, является ли это дублирующим процессом или другим приложением, которое запрашивает считывание. Две задачи с одинаковой идентификацией (id) никогда не существуют в одно и то же время, таким образом, они однозначно идентифицируют процессы в любой момент (несмотря на то, что номера задач используются повторно). Since each user is required to enter the server before access to files is granted, this is an effective way, of course, provided that the username is always used for duplication, and not for any other purpose. This method does not require preliminary information about a specific backup program. Similarly, a process or task identification specific to a duplicate process may be requested to determine if it is a duplicate process or other application that requests a read. Two tasks with the same identification (id) never exist at the same time, so they uniquely identify processes at any time (despite the fact that task numbers are reused).

Предшествующее описано применительно к запросам считывания, но также возможно применить ту же процедуру к запросам записи. В случае, если дублирующая программа выдает запрос записи, тогда должны быть предприняты соответствующие действия, которые обычно будут включать некоторую подпрограмму ошибок, так как дублирующее приложение не должно обычно выдавать запросы записи в обработчик прерывания. The foregoing has been described with respect to read requests, but it is also possible to apply the same procedure to write requests. If the backup program issues a write request, then appropriate actions should be taken, which will usually include some error routine, since the backup application should not normally issue write requests to the interrupt handler.

Как описано выше, дополнительные команды сначала просматривают для выяснения, является ли вызов прерывания запросом считывания (или записи) и, если является, просматривают для выяснения, был ли выдан запрос дублирующей программой или другим приложением. В принципе порядок этих двух операций мог бы быть, тем не менее, обратным и источник вызова мог бы определяться сначала перед тем, как исследуется тип вызова. As described above, additional commands are first scanned to determine whether the interrupt call is a read (or write) request and, if so, scanned to determine whether the request was issued by a backup program or other application. In principle, the order of these two operations could, however, be reversed and the source of the call could be determined first before the type of call is examined.

Гарантированный доступ к файлу
Способ дублирования открытого файла, описанный со ссылкой на фиг. 3 и фиг. 4, предполагает, что доступ считывания к файлам может всегда быть получен дублирующим приложением. На практике это может быть не всегда верно, поскольку файл может быть уже открыт для исключительного считывания/записи, используемого другими приложениями и, следовательно, доступ может быть отказан дублирующему приложению.
Guaranteed file access
The duplicate open file method described with reference to FIG. 3 and FIG. 4 suggests that read access to files can always be obtained by a duplicate application. In practice, this may not always be true, since the file may already be open for exclusive read / write used by other applications, and therefore access to the duplicate application may be denied.

Настоящий изобретатель принял во внимание, что поскольку дублирующее приложение не должно никогда записывать в файлы, которые оно дублирует и поскольку способ открытых файлов, описанный выше, будет гарантировать, что копия файла, полученная дублирующим приложением не изменится во время ее дублирования, действительно полностью безопасно для дублирующего приложения иметь доступ считывания к файлу. The present inventor has taken into account that since the duplicate application should never be written to files that it duplicates, and since the open file method described above will ensure that the copy of the file obtained by the duplicate application does not change during its duplication, it is really completely safe for The backup application has read access to the file.

Доступ для целей дублирования может быть обеспечен следующим образом. Access for duplication purposes can be provided as follows.

Операционная система обычно поддерживает таблицу всех открытых файлов, которая включает такую информацию, как идентификаторы оперирования с файлами, текущие указатели сдвига файла и права доступа, сохраненные для каждого открытого файла. The operating system typically maintains a table of all open files, which includes information such as file handling identifiers, current file shift indicators, and access rights stored for each open file.

В случае операционной системы MS DOS файлы открываются с использованием функции INT 21h. Таким образом, запросы открытия файла могут быть идентифицированы добавлением к тому же альтернативному набору команд, как описано выше. Посредством использования методов идентификации источника запроса, описанных в предыдущем разделе, или непосредственной командой из дублирующей программы, может быть установлено, что запрос открытия файла был сделан дублирующим приложением и, если так, таблица открытых файлов может временно обрабатываться для гарантирования того, что доступ к файлу предоставляется, даже, если он обычно не разрешен. Когда доступ предоставлен, но перед возвратами обработчика прерывания, таблица восстанавливается к ее предыдущему состоянию, так, что последующим запросам из других приложений будет отказан доступ как обычный. Запросы считывания из дублирующего приложения будут затем удовлетворены, даже если исходное приложение полагает, что оно имеет исключительное использование файла. In the case of the MS DOS operating system, files are opened using the INT 21h function. Thus, file open requests can be identified by adding to the same alternative instruction set as described above. By using the request source identification methods described in the previous section or by using the direct command from the backup program, it can be established that the file open request was made by the backup application and, if so, the open file table can be temporarily processed to ensure that access to the file provided even if it is not normally permitted. When access is granted, but before the interrupt handler returns, the table is restored to its previous state, so that subsequent requests from other applications will be denied access as normal. Read requests from the backup application will then be satisfied, even if the original application believes that it has exclusive use of the file.

В MS DOS таблица открытых файлов известна как системная таблица файлов. Системная таблица файлов является таблицей, содержащей компоненту для каждого открытого файла. Каждая компонента содержит способ доступа, предоставленный для доступа к файлу. Дополнительные команды, которые необходимы, модифицируют системную таблицу файлов, когда дублирующее приложение требует доступ к открытому файлу, путем временного изменения соответствующей компоненты системной таблицы файлов для создания впечатления, что права доступа, которые обычно не допускали бы доступ дублирующим приложением, еще не предоставлены. Перед возвращением в вызывающую программу права доступа в системной таблице файлов возвращаются к их исходному состоянию. In MS DOS, the open file table is known as the system file table. A system file table is a table containing a component for each open file. Each component contains an access method provided to access the file. Additional commands that are necessary modify the system file table when the duplicate application requires access to the open file by temporarily changing the corresponding components of the system file table to create the impression that access rights that would normally prevent access by the duplicate application have not yet been granted. Before returning to the calling program, the permissions in the system file table are returned to their original state.

Системная таблица файлов полностью описана в учебнике "Недокументированная DOS", на который дана ссылка выше, см. главу 8, стр. 465-469 и 490-494. Конкретно, в случае операционной системы DOS, шаги, требуемые в обработчике прерывания INT 21h для того, чтобы гарантировать доступ дублирующему приложению, показаны на фиг. 5. The system file table is fully described in the textbook “Undocumented DOS”, which is referenced above, see chapter 8, pages 465-469 and 490-494. Specifically, in the case of the DOS operating system, the steps required in the INT 21h interrupt handler in order to guarantee access to the backup application are shown in FIG. 5.

Ссылаясь на фиг. 5, после получения команды открытия файла, как вызова INT 21h, на шаге 70 производится определение относительно источника запроса с использованием одного из способов, описанных в предыдущем разделе. Если это так, затем производится определение на шаге 72 относительно того, открыт ли уже файл, к которому требуется доступ. Если ответом на любой из этих вопросов является "нет", тогда программа возвращается в обычную подпрограмму обработчик INT 21h, шаг 74. Если ответом на оба вопроса является "да", тогда выполняется специальный код, описанный на фиг. 5. Referring to FIG. 5, after receiving the command to open the file as a call to INT 21h, at step 70, a determination is made regarding the source of the request using one of the methods described in the previous section. If so, then a determination is made in step 72 as to whether the file to which access is already open is already open. If the answer to any of these questions is “no,” then the program returns to the regular routine INT 21h, step 74. If the answer to both questions is “yes,” then the special code described in FIG. 5.

Это происходит следующим образом. Каждая компонента в системной таблице файлов содержит способ доступа, предоставленный запрашивающему процессу ("атрибут способа доступа"). На шаге 76 текущий или исходный атрибут способа доступа соответствующей компоненты в системной таблице файлов сохраняется. На шаге 78 атрибут способа доступа затем изменяется на состояние "никому не отказывать", так что в результате системная таблица файлов приводится в недействующее состояние, в котором она не останавливает множественный доступ к открытому файлу. Теперь обычный обработчик прерываний INT 21h может быть вызван на шаге 80 для того, чтобы открыть файл для дублирующей программы обычным образом. Когда дублирующая программа закончила с файлом, исходный, ранее сохраненный атрибут способа доступа, возвращается в системную таблицу файлов (шаг 82). Наконец, выполнение возвращается в вызывающую программу с использованием команды IRET, которая считывает стек (шаг 84). This happens as follows. Each component in the system file table contains an access method provided to the requesting process (“access method attribute”). At step 76, the current or source attribute of the access method of the corresponding component in the system file table is stored. At step 78, the access method attribute is then changed to the “refuse no one” state, so that as a result, the system file table is put into an inactive state in which it does not stop multiple access to the open file. Now the regular INT 21h interrupt handler can be called in step 80 in order to open the file for the backup program in the usual way. When the backup program has finished with the file, the original, previously saved attribute of the access method is returned to the system file table (step 82). Finally, execution returns to the caller using the IRET command, which reads the stack (step 84).

Шаги, данные в Приложении предполагают, что используется это усовершенствование, обеспечивающее гарантированный доступ к файлу. The steps given in the Appendix assume that this enhancement is used to provide guaranteed access to the file.

Определенный способ, которым изменяется системная таблица файлов неважен и могли бы быть использованы различные способы. Предпочтительный способ манипулирует полями совместного использования "share_prev_sft" и "share_net_ machine" (см. недокументированную DOS, стр. 478). С помощью манипулирования этими полями, например, с помощью изменения значения "отказать считыванию" на "никому не отказывать" может быть вызван доступ для предоставлямой дублирующей программы. Альтернативно, части утилиты SHARE, которая является частью MS DOS, могли бы быть изменены так, что доступ предоставляется (см. цитированный учебник, стр. 490-494). The specific way that the system file table is changed is unimportant and various methods could be used. The preferred method manipulates the sharing fields "share_prev_sft" and "share_net_ machine" (see undocumented DOS, p. 478). By manipulating these fields, for example, by changing the value of "refuse reading" to "do not refuse anyone" access can be called for the provided backup program. Alternatively, parts of the SHARE utility, which is part of MS DOS, could be modified so that access is granted (see the cited textbook, pages 490-494).

Аналогичный способ мог бы быть использован в другой среде операционной системы, например, Novell NetWare. A similar method could be used in another operating system environment, for example, Novell NetWare.

Установление "хорошего" состояния
Способ открытых файлов, описанный выше со ссылкой на фиг. 3 и фиг. 4, гарантирует, что файл, открытый для дублирования не изменяется во время выполнения дублирования. Однако он не устанавливает, что файл находится в "хорошем" состоянии в момент начала дублирования. Например, другое приложение могло бы записывать входное сообщение, которое включает ряд операций записи, некоторые из которых выполнены, а некоторые из которых не выполнены. Поскольку дублирующий способ работает на открытых файлах, поэтому возможно для дублирующего приложения получать копию файла, содержащего частичное входное сообщение.
Establishing a “Good” Condition
The open file method described above with reference to FIG. 3 and FIG. 4 ensures that a file open for duplication does not change during duplication. However, it does not establish that the file is in a “good” state at the time the duplication began. For example, another application could record an input message that includes a series of write operations, some of which have been completed, and some of which have not been completed. Since the duplicate method works on open files, it is therefore possible for the duplicate application to receive a copy of the file containing the partial input message.

Изобретатель принял во внимание, что с помощью задержки запроса открытия файла из дублирующего приложения до такого времени, когда можно определить, что входное сообщение не выполняется, может быть обеспечено "хорошее состояние" дублирующей копии файла. Так как большинство сетевых операционных систем являются по своей сущности многосвязными, то есть сконструированы для выполнения более чем по одному процессу и способность задерживать один процесс, пока другой завершается, является общим средством таких операционных систем, это может быть легко достигнуто. Обычно не имеет значения, если дублирующая операция задерживается на короткое время, так как пользователи обычно не зависят от ее завершения, особенно если файлы могут дублироваться, пока открыты. Задержка в запросе открытия файла соответствует задержке сигнала начала, который начинает выполнение подпрограмм, описанных со ссылкой на фиг. 3 и фиг. 4. The inventor has taken into account that by delaying the request to open the file from the duplicate application until such time that it can be determined that the input message is not running, a “good condition” of the duplicate file can be ensured. Since most network operating systems are intrinsically connected, that is, designed to run on more than one process, and the ability to delay one process while the other ends is a common tool for such operating systems, this can be easily achieved. Usually it doesn’t matter if the duplicate operation is delayed for a short time, since users usually do not depend on its completion, especially if the files can be duplicated while they are open. The delay in the file open request corresponds to the delay of the start signal, which starts the execution of the routines described with reference to FIG. 3 and FIG. 4.

Второй способ применим, где отсутствует неотъемлемое средство для поддержания целостности входных сообщений. Тогда может быть использован альтернативный способ установления целостности входных сообщений. Входные сообщения обычно происходят в течение относительно короткого периода времени с более длинными временными интервалами, происходящими между входными сообщениями. Прикладная программа будет обычно доводить до конца все операции записи, требуемые для одного входного сообщения в быстрой последовательности, т. к. иначе существует опасность, что отказ питания или подобная фатальная проблема станет причиной того, что данные диска будут содержать частичное входное сообщение, которое при повторном запуске системы будет обнаружено как испорченный файл. Очевидно, чем короче период, в течение которого входное сообщение записывается на диск, тем менее вероятно, что несвязанная фатальная проблема (как например, отказ питания) случится во время этого входного сообщения. С помощью измерения периода времени между последовательными операциями записи возможно составить оценочное мнение, относительно состояния входных сообщений файла. Например, если не произошло записей, скажем, в последнюю минуту, очень невероятно, что приложение находится на части пути в течение записи одного входного сообщения. С помощью эмпирической подстройки периода времени бездеятельности к характеристикам приложений может быть установлен очень надежный показатель целостности входных сообщений. The second method is applicable where there is no inherent means to maintain the integrity of the input messages. Then an alternative way of establishing the integrity of the input messages can be used. Input messages usually occur over a relatively short period of time with longer time intervals occurring between input messages. An application will usually complete all write operations required for a single input message in quick succession, because otherwise there is a risk that a power failure or similar fatal problem will cause the disk data to contain a partial input message, which if restarting the system will be detected as a corrupted file. Obviously, the shorter the period during which an input message is written to disk, the less likely it is that an unrelated fatal problem (such as a power failure) will occur during this input message. By measuring the time period between successive write operations, it is possible to form an estimated opinion regarding the status of the input messages of the file. For example, if there were no records, say, at the last minute, it is very unlikely that the application is on the path during the recording of one input message. By empirically adjusting the period of inactivity to application characteristics, a very reliable measure of the integrity of input messages can be established.

Таким образом, описаны различные усовершенствования в способы, проиллюстрированные со ссылкой на фиг. 3 и фиг. 4, а именно, различные способы для идентификации источника запроса, способ для обеспечения гарантированного доступа к файлу и способы для обеспечения того, что файл, подлежащий дублированию, находится в "хорошем" состоянии перед тем, как происходит дублирование. Эти различные усовершенствования предпочтительно используются в сочетании. Однако они могут быть использованы выборочно и независимо, и нет необходимости, чтобы они были применены одновременно в одном и том же приложении. Thus, various improvements in the methods described with reference to FIG. 3 and FIG. 4, namely, various methods for identifying a request source, a method for providing guaranteed access to a file, and methods for ensuring that a file to be duplicated is in a “good” state before duplication occurs. These various enhancements are preferably used in combination. However, they can be used selectively and independently, and it is not necessary that they be applied simultaneously in the same application.

Изобретение описано главным образом в терминах операционной системы DOS, более конкретно MS DOS. Однако изобретение не полагается на какую-либо конкретную архитектуру центрального процессора для того, чтобы работать. В частности, оно не ограничивается операционной системой DOS и могло бы быть применено в Novell NetWare, OS/2 или UNIX и на компьютерах Macintosh, которые используют центральные процессоры серий 6800 и PowerPC. The invention is described mainly in terms of a DOS operating system, more specifically MS DOS. However, the invention does not rely on any particular central processor architecture in order to operate. In particular, it is not limited to the DOS operating system and could be used on Novell NetWare, OS / 2, or UNIX and on Macintosh computers that use the 6800 and PowerPC CPUs.

Claims (16)

1. Способ работы основанной на микропроцессоре компьютерной системы, включающей командную память, центральный процессор и запоминающее средство, согласно которому обеспечивают дублирующий процесс, выполняющийся на компьютерной системе, который является действующим для выдачи сигнала начала и сигнала окончания и для выдачи, по меньшей мере, одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, обеспечивают первые команды, хранимые в памяти, в центральном процессоре для того, чтобы заставить центральный процессор выполнить, по меньшей мере, одну обычную операцию считывания для считывания данных из запоминающего средства, причем дублирующий процессор способен работать с файлами, которые открыты для доступа командами, поддерживают запись данных, записанных в запоминающем средстве, для того, чтобы установить связь между соответствующими областями в первичной области памяти запоминающего средства и вторичной областью памяти запоминающего средства, определяют после получения сигнала начала и после получения команды считывания, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, и после выполнения одной из операций дублирующего и обычного считывания запрашивают запись для считывания данных из одной из первичной и вторичной областей памяти, соответствующих записи, и после выполнения другой из операций дублирующего и обычного считывания считывают данные из первичной области памяти, отличающийся тем, что при определении того, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, просматривают область памяти, из которой происходит команда считывания, для определения идентичности программы, которая инициировала команду считывания. 1. The method of operation of a microprocessor-based computer system, including command memory, a central processor and memory means, according to which there is provided a duplicate process running on a computer system that is operative to provide a start signal and an end signal and to issue at least one duplicate read instructions for reading the source data from the storage means provide the first instructions stored in memory in the central processor in order to force the the neutral processor to perform at least one ordinary read operation for reading data from the storage medium, the backup processor being able to work with files that are open for access by commands that support writing data recorded in the storage medium in order to establish a connection between the corresponding areas in the primary storage area of the storage medium and the secondary storage area of the storage medium, determined after receiving the start signal and after receiving the read command whether the read command relates to the duplicate read operation or to the normal read operation, and after performing one of the duplicate and normal read operations, a record is requested to read data from one of the primary and secondary memory areas corresponding to the record, and after the other of the duplicate and conventional read data is read from the primary memory region, characterized in that when determining whether the read command relates to the operation of duplicate reads or normal operation read radios, look at the area of memory from which the read command originates to determine the identity of the program that initiated the read command. 2. Способ по п.1, отличающийся тем, что при просмотре области памяти опрашивают стек для определения адресов ячеек памяти, хранимых в стенке, и опрашивают по указанным адресам ячейки памяти. 2. The method according to claim 1, characterized in that when viewing the memory area, the stack is interrogated to determine the addresses of memory cells stored in the wall, and interrogated at the indicated addresses of the memory cell. 3. Способ по п. 2, отличающийся тем, что при просмотре области памяти сравнивают код около адреса ячейки памяти с кодом, ожидаемым из дублирующей программы. 3. The method according to p. 2, characterized in that when viewing the memory area, the code is compared near the address of the memory cell with the code expected from the backup program. 4. Способ по п.2, отличающийся тем, что при просмотре в области памяти определяют префикс сегмента программы и строку среды, связанную с программой в указанных адресах ячеек памяти, и определяют имя программы, используя указанную строку среды. 4. The method according to claim 2, characterized in that when viewed in the memory area, the prefix of the program segment and the line of the environment associated with the program in the specified addresses of the memory cells are determined, and the name of the program is determined using the specified line of the environment. 5. Способ работы основанный на микропроцессоре компьютерной системы, включающей командную память, центральный процессор и запоминающее средство, в компьютерной сети, согласно которому обеспечивают дублирующий процесс, выполняющийся на компьютерной системе, который является действующим для выдачи сигнала начала и сигнала окончания и для выдачи, по меньшей мере, одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, обеспечивают первые команды, хранимые в памяти, в центральном процессоре для того, чтобы заставить центральный процессор выполнить, по меньшей мере, одну обычную операцию считывания для считывания данных из запоминающего средства, поддерживают запись данных, записанных в запоминающем средстве, для того, чтобы установить связь между соответствующими областями в первичной области памяти запоминающего средства и вторичной областью памяти запоминающего средства, и определяют после получения сигнала начала получения команды считывания, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, и после выполнения одной из операций дублирующего и обычного считывания запрашивают запись для считывания данных из одной из первичной и вторичной областей памяти, соответствующих записи, и после выполнения другой из операций дублирующего и обычного считывания считывают данные из первичной области памяти, отличающийся тем, что назначают в дублирующий процесс пользователя идентификацию процесса или задачи, а при определении того, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, определяют, запрашивается ли операция считывания пользователем или программой с указанным пользователем, идентификацией процесса или задачи. 5. The method of operation based on the microprocessor of a computer system, including command memory, a central processor and memory means, in a computer network, according to which a duplicate process is performed on a computer system that is operable to provide a start signal and an end signal and for outputting, according to of at least one duplicate read instruction for reading the source data from the storage means, the first instructions stored in memory are provided in the central processor for o, in order to cause the central processor to perform at least one ordinary read operation for reading data from the storage medium, writing data recorded in the storage medium is maintained in order to establish a relationship between the corresponding areas in the primary storage area of the storage medium and the secondary area memory means, and determine after receiving a signal to start receiving a read command, whether the read command relates to the operation of duplicate reads or normal read operations, and after performing one of the duplicate and conventional read operations, request a record for reading data from one of the primary and secondary memory areas corresponding to the record, and after performing another of the duplicate and conventional read operations, read data from the primary memory area, characterized in that the process or task identification is assigned to the user’s duplicating process, and when determining whether the read command refers to the duplicate read operation or to the normal operation read radios, determine whether a read operation is requested by the user or program with the specified user, process or task identification. 6. Способ работы основанной на микропроцессоре компьютерной системы, включающей командную память, центральный процессор и запоминающее средство, согласно которому обеспечивают дублирующий процесс, выполняющийся на компьютерной системе, который является действующим для выдачи сигнала начала и сигнала окончания и для выдачи, по меньшей мере, одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, и обеспечивают команды, хранимые в памяти, в центральном процессоре для того, чтобы заставить центральный процессор выполнить, по меньшей мере, одну обычную операцию считывания для считывания данных из запоминающего средства, и обеспечивают средство открытия файла для открытия файла, считываемого обычной операцией считывания, и отказа доступа к файлу другими операциями считывания, отличающийся тем, что обеспечивают средство, связанное с дублирующим процессом, которое блокирует функцию отказа средства открытия файла для разрешения одновременного доступа считывания к файлу дублирующей операцией считывания и обычной операцией считывания. 6. The method of operation of a microprocessor-based computer system, including command memory, a central processor and memory means, according to which there is provided a duplicate process running on a computer system that is operative to provide a start signal and an end signal and to issue at least one duplicate read instructions for reading the source data from the storage means, and provide instructions stored in memory in the central processor in order to force the central the processor to perform at least one conventional read operation for reading data from the storage means, and provide a file opener for opening a file readable by the normal read operation and for denying access to the file by other read operations, characterized in that they provide means associated with a duplicate process that blocks the failure function of the file opener to allow simultaneous read access to the file by the duplicate read operation and the normal read operation Niya. 7. Способ по п.6, отличающийся тем, что компьютерной системой поддерживают таблицу открытых файлов, а функцию отказа блокируют временным обратимым изменением таблицы. 7. The method according to claim 6, characterized in that the computer system maintains a table of open files, and the failure function is blocked by temporary reversible table change. 8. Способ работы основанной на микропроцессоре компьютерной системы, включающей командную память, центральный процессор и запоминающее средство, согласно которому обеспечивают дублирующий процесс, выполняющийся на компьютерной системе, который является действующим для выдачи сигнала начала и сигнала окончания и для выдачи, по меньшей мере, одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, обеспечивают команды, хранимые в памяти, в центральном процессоре для того, чтобы заставить центральный процессор выполнить, по меньшей мере, одну обычную операцию записи для записи данных в запоминающее средство, причем дублирующий процесс способен работать с файлами, которые открыты для доступа командами, отличающийся тем, что задерживают выдачу сигнала начала до тех пор, пока не завершат ряд операций записи в дублируемый файл. 8. The method of operation of a microprocessor-based computer system comprising a command memory, a central processor and a storage means, according to which there is provided a duplication process running on a computer system that is operable to provide a start signal and an end signal and to output at least one duplicate read instructions for reading the source data from the storage means provide instructions stored in memory in the central processor in order to force the central the second processor to perform at least one ordinary write operation for writing data to the storage medium, the duplication process being able to work with files that are open for access by commands, characterized in that they delay the generation of the start signal until a series of operations are completed write to the duplicate file. 9. Дублирующая система для основанной на микропроцессоре компьютерной системы, включающая командную память (14), центральный процессор (12) и запоминающее средство (16), содержащая дублирующую программу для выполнения на компьютерной системе, которая является действующей для выдачи сигнала начала и сигнала окончания и для выдачи, по меньшей мере, одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, средство (38, 40) для обеспечения первых команд, хранимых в памяти, в центральный процессор для того, чтобы заставить центральный процессор выполнить, по меньшей мере, одну обычную операцию считывания для считывания данных из запоминающего средства, средство (34) для поддержки записи данных, записанных в запоминающее средство, для того, чтобы установить связь между соответствующими областями в первичной области памяти запоминающего средства и вторичной областью памяти запоминающего средства, и средство (42, 60) для определения после получения сигнала начала и после получения команды считывания, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, и после выполнения одной из операций дублирующего и обычного считывания запроса записи для считывания данных из одной из первичной и вторичной областей памяти, соответствующих записи, и после выполнения другой из операций дублирующего и обычного считывания, считывания данных из первичной области памяти, отличающаяся тем, что средство (42, 60) для определения, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, содержит средство для просмотра области памяти, из которой происходит команда считывания, для определения идентичности программы, которая инициировала команду считывания. 9. A backup system for a microprocessor-based computer system, comprising a command memory (14), a central processor (12) and a storage medium (16) comprising a backup program for execution on a computer system that is operable to provide a start signal and an end signal, and for issuing at least one duplicate read instruction for reading the source data from the storage means, means (38, 40) for providing the first instructions stored in the memory to the central processor so that To force the central processor to perform at least one ordinary read operation for reading data from the storage means, means (34) for supporting writing data written to the storage means in order to establish communication between respective areas in the primary memory area of the storage means and a secondary memory area of the storage means, and means (42, 60) for determining, after receiving the start signal and after receiving the read command, whether the read command relates to the double operation reading or to the normal read operation, and after performing one of the operations of duplicate and normal reading of the write request for reading data from one of the primary and secondary memory areas corresponding to the record, and after performing another of the operations of duplicating and normal reading, reading data from the primary a memory area, characterized in that the means (42, 60) for determining whether the read command relates to a duplicate read operation or a normal read operation, comprises means for viewing the memory area from which the read command originates to determine the identity of the program that initiated the read command. 10. Система по п.9, отличающаяся тем, что средство просмотра содержит средство для опроса стека для определения адресов ячеек памяти, хранимых в стеке, и опроса по указанным адресам ячеек памяти. 10. The system according to claim 9, characterized in that the viewer contains means for polling the stack to determine the addresses of memory cells stored on the stack, and polling at the specified addresses of the memory cells. 11. Система по п.10, отличающаяся тем, что средство просмотра содержит средство для сравнения кода около адресов ячеек памяти с кодом, ожидаемым из дублирующей программы. 11. The system of claim 10, wherein the viewer contains means for comparing the code near the addresses of the memory cells with the code expected from the backup program. 12. Система по п.10, отличающаяся тем, что средство просмотра содержит средство для определения префикса сегмента программы и строки среды, связанной с программой, в указанных адресах ячеек памяти и определения имени программы с использованием строки среды. 12. The system of claim 10, wherein the viewer contains means for determining the prefix of the program segment and the line of the environment associated with the program at the indicated addresses of the memory cells and determine the name of the program using the line of the environment. 13. Основанная на микропроцессоре компьютерная система для использования в компьютерной сети и включающая командную память (14), центральный процессор (12) и запоминающее средство (16), причем основанная на микропроцессоре компьютерная система содержит дублирующую программу для выполнения на компьютерной системе, которая является действующей для выдачи сигнала начала и сигнала окончания и для выдачи, по меньшей мере, одной команды дублирующего считывания для считывания исходных данных из запоминающего средства; средство (38, 40) для обеспечения первых команд, хранимых в памяти, в центральный процессор для того, чтобы заставить центральный процессор выполнить, по меньшей мере, одну обычную операцию считывания для считывания данных из запоминающего средства, средство (34) для поддержки записи данных, записанных в запоминающее средство, для того, чтобы установить связь между соответствующими областями в первичной области памяти запоминающего средства и вторичной областью памяти запоминающего средства, и средство (42, 60) для определения после получения сигнала начала и после получения сигнала начала и после получения команды считывания, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, и после выполнения одной из операций дублирующего и обычного считывания запроса записи для считывания данных из одной из первичной и вторичной областей памяти, соответствующих записи, и после выполнения другой из операций дублирующего и обычного считывания, считывания данных из первичной области памяти, отличающаяся тем, что содержит средство для назначения в дублирующую программу пользователя идентификации процесса или задачи, а средство (42, 60) для определения, относится ли команда считывания к операции дублирующего считывания или к обычной операции считывания, содержит средство для определения, запрашивается ли операция считывания пользователем или программой с указанным пользователем, идентификацией процесса или задачи. 13. A microprocessor-based computer system for use in a computer network and comprising a command memory (14), a central processor (12) and memory means (16), the microprocessor-based computer system containing a backup program for execution on a computer system that is operational for issuing a start signal and an end signal and for issuing at least one duplicate read command to read the source data from the storage means; means (38, 40) for providing the first instructions stored in memory to the central processor in order to cause the central processor to perform at least one ordinary read operation to read data from the storage means, means (34) for supporting data writing recorded in the storage means, in order to establish a connection between the respective areas in the primary memory area of the storage means and the secondary storage area of the storage means, and means (42, 60) for determining after receipt The ignition starts both after the start signal has been received and after the read command has been received, whether the read command relates to the duplicate read operation or to the normal read operation, and after one of the duplicate and normal read operations of the write request is performed to read data from one of the primary and secondary memory areas corresponding to the record, and after performing another of the operations of duplicate and conventional reading, reading data from the primary memory area, characterized in that it contains means for initiating identification of a process or task in the user’s backup program, and the means (42, 60) for determining whether the read command relates to the duplicate read operation or the normal read operation, contains means for determining whether the read operation is requested by the user or program with the specified user, identification of a process or task. 14. Дублирующая система для основанной на микропроцессоре компьютерной системы, включающей командную память (14), центральный процессор (12) и запоминающее средство (16), причем дублирующая система содержит дублирующую программу для выполнения на компьютерной системе, которая является действующей для выдачи сигнала начала и сигнала окончания и для выдачи, по меньшей мере, одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, и средства (38, 40) для обеспечения команд, хранимых в памяти, в центральный процессор для того, чтобы заставить центральный процессор выполнить, по меньшей мере, одну обычную операцию считывания для считывания данных из запоминающего средства, и средство открытия файла для открытия файла, считываемого обычной операцией считывания и отказа доступа к файлу другими операциями считывания, отличающаяся тем, что содержит средство, связанное с дублирующей программой для блокирования функции отказа средства открытия файла для разрешения одновременного доступа считывания к файлу операцией дублирующего считывания и обычной операцией считывания. 14. A backup system for a microprocessor-based computer system comprising a command memory (14), a central processor (12) and a storage means (16), the backup system comprising a backup program for execution on a computer system that is operable to provide a start signal and an end signal and for issuing at least one duplicate read command to read the source data from the storage means, and means (38, 40) for providing the commands stored in the memory to the central a processor in order to cause the central processor to perform at least one ordinary read operation for reading data from the storage medium, and a file opener for opening a file read by the normal read operation and denying access to the file by other read operations, characterized in that contains means associated with the duplicate program for blocking the failure function of the file opener to allow simultaneous read access to the file by the duplicate read operation and both a valid read operation. 15. Система по п.14, отличающаяся тем, что компьютерная система поддерживает таблицу открытых файлов и в которой функция отказа блокируется временным обратимым изменением таблицы. 15. The system of claim 14, wherein the computer system maintains a table of open files and in which the failure function is blocked by a temporary reversible table change. 16. Дублирующая система для основанной на микропроцессоре компьютерной системы, включающей командную память (14), центральный процессор (12) и запоминающее средство (16), причем дублирующая система содержит дублирующую программу для выполнения на компьютерной системе, которая является действующей для выдачи начала и сигнала окончания и для выдачи, по меньшей мере, одной команды дублирующего считывания для считывания исходных данных из запоминающего средства, и средство (22) для обеспечения команд, хранимых в памяти, в центральный процессор для того, чтобы заставить центральный процессор выполнить, по меньшей мере, одну обычную операцию записи для записи данных в запоминающее средство, и в которой дублирующая программа способна работать с файлами, которые открыты для доступа командами, отличающаяся тем, что содержит средство для задержки выдачи сигнала до тех пор, пока не завершится ряд операций записи в дублируемый файл. 16. A backup system for a microprocessor-based computer system comprising a command memory (14), a central processor (12) and memory means (16), the backup system comprising a backup program for execution on a computer system that is operable to provide a start and a signal ending and for issuing at least one duplicate read command to read the source data from the storage means, and means (22) for providing instructions stored in the memory to the central processor for in order to force the central processor to perform at least one normal write operation for writing data to a storage medium, and in which the backup program is able to work with files that are open for access by commands, characterized in that it contains means for delaying the signal to until a series of write operations to the duplicate file are completed.
RU97117451A 1995-03-23 1996-03-18 Computer duplication system, which operates with open files RU2155373C2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9505939.0 1995-03-23
GBGB9505939.0A GB9505939D0 (en) 1995-03-23 1995-03-23 A method of operating a computer system
US08/465,925 1995-06-06

Publications (2)

Publication Number Publication Date
RU97117451A RU97117451A (en) 1999-07-20
RU2155373C2 true RU2155373C2 (en) 2000-08-27

Family

ID=10771763

Family Applications (1)

Application Number Title Priority Date Filing Date
RU97117451A RU2155373C2 (en) 1995-03-23 1996-03-18 Computer duplication system, which operates with open files

Country Status (2)

Country Link
GB (1) GB9505939D0 (en)
RU (1) RU2155373C2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US9594925B2 (en) 2003-02-28 2017-03-14 Microsoft Technology Licensing, Llc Method to delay locking of server files on edit
RU2797170C2 (en) * 2017-12-01 2023-05-31 Иллюмина, Инк. Systems and methods for assessing the efficiency of a medicinal product

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594925B2 (en) 2003-02-28 2017-03-14 Microsoft Technology Licensing, Llc Method to delay locking of server files on edit
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
RU2443012C2 (en) * 2005-10-26 2012-02-20 Майкрософт Корпорейшн Configuration of isolated extensions and device drivers
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
RU2797170C2 (en) * 2017-12-01 2023-05-31 Иллюмина, Инк. Systems and methods for assessing the efficiency of a medicinal product
RU2797170C9 (en) * 2017-12-01 2023-08-25 Иллюмина, Инк. Systems and methods for assessing the efficiency of a medicinal product

Also Published As

Publication number Publication date
GB9505939D0 (en) 1995-05-10

Similar Documents

Publication Publication Date Title
EP0815512B1 (en) Computer backup system operable with open files
US5546534A (en) Method of operating a computer system
US5448718A (en) Method and system for time zero backup session security
JPH0683687A (en) Data processing system and method thereof
RU2155373C2 (en) Computer duplication system, which operates with open files
US7680999B1 (en) Privilege promotion based on check of previous privilege level
AU695339C (en) Computer backup system operable with open files
KR100285534B1 (en) How computer systems work
CA2153508C (en) A method of operating a computer system
WO1995019599A9 (en) File backup system
GB2290396A (en) Backing-up shared data
NZ331685A (en) Computer backup system for open files by permitting simultaneous read access to a file by both the backup read operation and the normal read operation
JPH0235537A (en) Multiple volume update control system
JPH0563824B2 (en)
JPH01220055A (en) Control system for information processing program
KR20000043478A (en) Method for implementing file protection function in communication exchange system cable of multi-task
JPH0444141A (en) Method and device for control of storage device
JPS6180340A (en) Data input/output method of auxiliary memory device
JP2006127546A (en) Method for operating computer system
JPH03223937A (en) Using method of shared data area

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20070319