RU2155373C2 - Computer duplication system, which operates with open files - Google Patents
Computer duplication system, which operates with open files Download PDFInfo
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
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
Перед тем, как начать создавать дублирующую копию файла, записывающий процесс активизируется дублирующим приложением для того, чтобы переориентировать все дисковые средства записи в другую область диска 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
Когда дисковая операция считывания запрашивается дублирующим приложением, она пропускается неизменной, так что данные, возвращенные в дублирующее приложение приходят из исходной области данных в главной части диска. Однако, когда дисковая операция считывания запрашивается другим приложением, записывающий процесс сначала работает для того, чтобы проверить таблицу, чтобы увидеть произошла ли запись на диск в эту область, с тех пор как процесс начал перехватывать операции записи, и если так, операция считывания переориентируется в соответствующую позицию в дельта- области. Если не произошла операция записи, т.е. эта порция данных не изменилась, с тех пор как начался перехват операции записи, тогда операция считывания пропускается неизменной. 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
Когда операция дублирующего копирования заканчивается, записывающий процесс активизируется для возвращения компьютера к обычной работе. Эта восстановительная фаза достигается применением изменений, сохраненных в дельта-области к соответствующим исходным областям данных в главной части диска 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
В качестве дальнейшего усовершенствования, если запись сохранена из непрерывной области памяти, к которой продвинулся дублирующий копирующий процесс, программное обеспечение может разрешить операции записи в главную часть диска 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
Изобретение особенно применимо к 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 (
Дополнительное программное обеспечение имеет действие команды для записи данных, замещаемой альтернативным набором команд. Аналогичный способ может быть использован для перехвата команды для считывания данных с диска и для замещения ее также альтернативным набором команд. 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
Если вызовы являются перехваченными, тогда программа проверяет таблицу соответствия дельта-области (шаг 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
Если вызовы записи являются перехваченными, но запись не была предварительно сделана в эту часть исходного файла 24, тогда запись добавляется в таблицу и новая область дельта-области назначается для этой порции данных (шаг 34). Данные затем записываются в новую дельта-область (шаг 36). If the record calls are intercepted, but the record was not previously made to this part of the
Если вызов является вызовом считывания, программа проверяет на шаге 38, подразумевается ли, что это является перехваченными вызовами считывания. Если нет, тогда данные считываются из исходного файла 24 (шаг 40). If the call is a read call, the program checks in
Если программа перехватывает вызовы считывания, тогда она сначала проверяет на шаге 42 для выяснения, пришел ли вызов из дублирующей прикладной программы. Если вызов действительно пришел из дублирующего приложения, программа переходит к шагу 40 и данные считываются из исходного файла 24. If the program intercepts read calls, then it first checks at
Если вызов считывания не пришел из дублирующего приложения, программа проверяет таблицу соответствия дельта-области для выяснения, переориентирована ли запись в область исходного файла 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
Если вызов INT 21h не является ни вызовом записи, ни вызовом считывания, тогда он возвращается в обычную обрабатывающую подпрограмму INT 21h. If the
Во втором воплощении изобретения, когда команды считывания и записи перехватываются во время записывающего процесса, вместо запоминания измененных данных в дельта-области, когда выполняется первая запись в конкретную область файла, исходные данные сохраняются в дельта-области и разрешается изменять исходный файл. Выполняется ввод в таблицу соответствия, которая указывает на исходное содержание этой области исходного файла, который теперь хранится в дельта-области. Любая последующая запись в ту же область файла затем игнорируется записывающим процессом. Запросы считывания из дублирующего приложения затем переориентируются в дельта-область, если таблица соответствия показывает, что эта область исходного файла перезаписана. 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
Шаг 36 фиг.3 видоизменен для образования нового шага 64, который содержит дополнительную запись в дельта-область данных, считанных на шаге 62. Step 36 of FIG. 3 is modified to form a
Шаг 32 видоизменен для образования нового шага 66, который больше не переориентирует данные для перезаписывания дельта-области, а вместо этого, записывает данные поверх исходной области данных.
Этот второй способ медленнее, чем первый, поскольку каждый запрос записи файла становится считыванием и двумя записями, как противоположный единственной переориентированной записи первого способа. Однако, второй способ не требует, чтобы изменения, сохраненные в дельта-области были применены к исходному файлу, как только завершено дублирование. Таблица соответствия дельта-области и данные, хранимые в дельта- области могут просто быть отброшены. Кроме того, из-за этой разницы не требуется принимать меры предосторожности для восстановления от фатального состояния (как, например, отказ питания), происходящего, когда изменения дельта-области не полностью применены к исходным данным. 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
При условии открытого файла способ обеспечивается как неотъемлемая часть дублирующего приложения, источник запросов считывания может быть легко определен, поскольку дублирующее приложение "знает" какие запросы он выдает. Однако проблема возникает, если дублирующее приложение уже существует, например, в виде стандартного готового пакета или иного, в виде, в котором он не может быть изменен для приспосабливания способа открытого файла, который вместо этого должен быть применен путем дополнительного кода. 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
В системе, описанной выше со ссылкой на фиг. 3 и фиг. 4, подпрограмма прерывания INT 21h замещается альтернативным набором команд. В дополнение к функциям, описанным в предшествующем, эти команды могут быть приспособлены для того, чтобы дополнительно определять источник запроса, как описывается далее. In the system described above with reference to FIG. 3 and FIG. 4, the
В этом усовершенствовании обработчик прерывания исследует стек для определения адреса возврата. В случае центральных процессоров 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
В 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
Ссылаясь на фиг. 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
Это происходит следующим образом. Каждая компонента в системной таблице файлов содержит способ доступа, предоставленный запрашивающему процессу ("атрибут способа доступа"). На шаге 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
Шаги, данные в Приложении предполагают, что используется это усовершенствование, обеспечивающее гарантированный доступ к файлу. 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)
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)
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 |
-
1995
- 1995-03-23 GB GBGB9505939.0A patent/GB9505939D0/en active Pending
-
1996
- 1996-03-18 RU RU97117451A patent/RU2155373C2/en not_active IP Right Cessation
Cited By (7)
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 |