WO2000079384A2 - Method and apparatus to rename open files - Google Patents
Method and apparatus to rename open files Download PDFInfo
- Publication number
- WO2000079384A2 WO2000079384A2 PCT/US2000/040197 US0040197W WO0079384A2 WO 2000079384 A2 WO2000079384 A2 WO 2000079384A2 US 0040197 W US0040197 W US 0040197W WO 0079384 A2 WO0079384 A2 WO 0079384A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- file
- name
- directory
- application
- storage media
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
Definitions
- the present invention generally relates to upgrading or otherwise altering or updating files stored on a computer system. More particularly, the present invention is directed to the updating of a file on a computer system that is already being accessed by an application.
- BACKGROUND Computer systems for instance personal computers (PCs), perform various tasks by running applications, i.e., computer programs. Once running, applications often need to access particular files stored on the computer system. Such files may be data files, program files, or other types of files. Once a file has been accessed by a particular application, no operations may be performed on the file itself. In other words, when the file is in use, the file may not be renamed, deleted, or otherwise updated. Typically when the need arises to upgrade, install, deinstall, change, or otherwise update a file, a new updated version of the file with a temporary name is first created.
- a method and system in accordance with the invention can update a file even while the file is being accessed by an application and will not require a reboot for subsequent accesses by other applications.
- a file is stored on a storage media and has a file name listed in a directory.
- An updated version of that file is subsequently provided on the storage media.
- a listing for the updated file is added to the directory under a temporary name.
- the original file name listed in the directory is changed to a different name, and the temporary name is changed to the former name of the original file.
- Figure 2 illustrates, in generalized block diagram format, the accessing of files by an application
- Figure 2a illustrates a directory structure as modified conventionally following a reboot
- Figure 3 is a flow diagram representing the steps taken to access a file by an application
- Figure 4 is a flow diagram illustrating the steps conventionally taken in updating a particular file
- Figure 5 illustrates, in generalized block diagram format, the end result of a system and method in accordance with the invention
- Figures 5A-5C illustrates the changes made to a directory structure in accordance with the invention.
- Figure 6 is a flow diagram illustrating the steps taken in accordance with the invention.
- a method and system in accordance with the invention allows a file to be upgraded, altered, or otherwise updated without requiring the conventional reboot and can be done even if that file is being accessed by an application. Details of an embodiment of the invention are set forth below.
- Fig. 1 illustrates a computer system 100 that is used in one embodiment of the invention.
- the computer system 100 includes a central processing unit (CPU) 102, a memory unit 104, such as RAM, and non- volatile memory devices such as a bulk storage device 106, e.g. , a hard drive, a solid state device 108, e.g. , ROM, and a portable media drive 110, e.g. , a floppy disk drive or a CD-ROM drive.
- the portable media may comprise, for example, a CD, a floppy disk, or an optical disk.
- the applications and files described herein may reside in whole or in part in any of the storage units 104-114 or a wide variety of other computer- readable storage media.
- storage umts 104-114 are generically referred to herein as "storage media.”
- the CPU 102 communicates with the bulk storage device 106, the solid state media 108, the portable media drive 110, via a host bus 116.
- the CPU 102 communicates with peripheral devices such as devices 106-110 through one or more of a variety of input/output interface circuitry, including bus bridge circuits, that enable communication between the host bus 116 and a variety of standardized peripheral buses.
- Fig. 1 is illustrative only and is not intended to limit the invention to the illustrated structure.
- the computer system 100 is generally controlled by an operating system, for instance Windows 95, Windows 98, or other Windows version (generally referred to herein as Windows 9x) produced by Microsoft
- an operating system for instance Windows 95, Windows 98, or other Windows version (generally referred to herein as Windows 9x) produced by Microsoft
- This file system structure generally includes a directory (DIR) structure and a file allocation table (FAT). Only the directory structure is important for purposes of the present invention. Therefore, the FAT will not be described further.
- DIR directory
- FAT file allocation table
- Storage media are divided into clusters. Although clusters are often comprised of one or more sectors, the minimum storage unit is often considered to be a cluster. Each file, whether it be an application, a data file, or other file type, will be stored on one or more storage media, and will be located in one or more clusters.
- Fig. 2 illustrates storage media 210 having a number of clusters 212. Although only twenty clusters are illustrated, it is to be understood by those of skill in the art that any given storage media may have thousands of such clusters.
- an operating system 202 maintains a directory structure (DIR) 204.
- the directory structure includes a list of files, for instance file A, file B, file C, and file D. Correlated with each file name is a starting cluster, identifying where in the storage media 210 the file begins. As shown in the example of Fig. 2, file A begins at cluster 1 , while file B begins at cluster 5.
- Intervening clusters e.g., clusters 2-4, may include parts of the same file, e.g. , file A, or may include parts of other files as will be understood by those skilled in the art.
- an application 216 when an application 216 requires access to a file, it refers to the directory structure 204 to find the starting cluster of the file. Referring to Figs. 2 and 3, if application 216 requires access to file B, it looks up file B in directory 204 to find file B's starting cluster, cluster 5, step 302. In step 304, application 216 then stores or "caches" the starting cluster for file B, for instance in register 218. Once application 216 has obtained the starting cluster for file B, application 216 will access file B directly in the storage media, step 306, and has no need to look up file B again in directory 204 as long as application 216 is running. Any other application 220 also needing access to file B will follow the same process.
- a new updated version of a file e.g. , new file B
- new file B is added at cluster 18 in storage media 210.
- an entry is made in an operating system file, e.g. , wininit.ini 206.
- the entry instructs the operating system to modify the directory structure, replacing the entry for the old file, file B, with an entry for the new file B at reboot time.
- Wininit.ini is processed by another file, win.com, prior to booting into protective mode windows as is known in the art.
- the old file B is deleted and the directory is modified accordingly.
- FIG. 2 illustrates the directory 204 and the storage media 210 after the new, updated file has been added to storage media 210 but before the system is rebooted.
- Fig. 2A illustrates the directory 204 after reboot.
- the old file B has been deleted, but the new file B has been added, showing the starting cluster at cluster 18, and named "B. "
- All files requiring access to file B will look up file B in the directory 204 and obtain the starting cluster 18 and then access the updated file B, as shown by the dashed lines.
- an application will still access the directory and follow the steps described with reference to Figs. 2 and 3.
- application 216 will access directory structure 204 and retrieve a start cluster for file B, step 302.
- start cluster e.g. , cluster 5
- application 216 Upon retrieving the start cluster, e.g. , cluster 5, application 216 will store the starting cluster value for file B, and application 216 will access the file directly from storage media 210 without ever referring back to directory structure 204 again.
- a new, updated version of a file B is added to the storage media 210.
- the directory structure 204 is altered directly.
- the new version of file B is added to the directory under a temporary name, e.g. , TEMP B, with its starting cluster, e.g., cluster 18.
- the old file is renamed in the directory, for instance to "OLDB. "
- the new file is renamed in the directory, giving it the former name of the old file, e.g. , file "B.
- an entry is made in wininit.ini to remove the entry for the old file from the directory on the next reboot, whenever that occurs.
- Figs. 5A-5C show the evolution of the directory structure.
- Fig. 5A shows the directory structure initially, before any file updates, showing original file B starting at cluster 5.
- Fig. 5B after the updated version of the file has been added to the storage media, the directory structure is altered to show that the new file has been added, entitled "TEMP B," indicating that the new file B has been temporarily named.
- Fig. 5C the original file B is renamed "OLDB" while the new file B is renamed "B. "
- the file names provided herein are exemplary only.
- the operating system In response to a lock request, the operating system "forgets" the information it has stored in the SFT about all files currently open from the storage media except the filenames, since any modification to the storage media could affect the information. When the lock is released, the operating system looks up information correlating to the open files for the SFT, thereby "relearning" the information.
- the operating system will look up information for file "B", but will obtain information for the new updated file "B” rather than the old file B since the names have been changed, possibly causing a system crash. Therefore, in one embodiment of the invention at the time of performing steps associated with Figs. 5A-5C, the SFT structure (or other corresponding data structure) is also modified, renaming file "B" to
- Fig. 5 which shows the directory structure after an update in accordance with the invention has occurred
- application 216 which has already stored the starting cluster of the old file B will continue to access the old file B as if no changes had occurred. All other applications subsequently seeking access to File B, e.g, application 220, will look up File B in the directory structure and be directed to the starting cluster for the new, updated version of file B, cluster 18. Like application 216, application 220 will store the starting cluster for the new, updated version of file B and access the new file B without again looking up file B in the directory structure 204.
- the application that is already accessing a file is unaffected by the update process since it already has the information required to access the designated file.
- a system and method in accordance with the invention allows for the upgrade, installation, deinstallation, or other updating of files without requiring any applications to be shut down and without requiring a reboot of the system.
- system and method in accordance with the invention may be implemented in hardware, software, or firmware.
- an embodiment in accordance with the invention may form a stand-alone application program, for instance, a utility program shown in Fig. 5 at 222, or may be included as part of other applications, e.g., in a setup or installation routine. Therefore, an embodiment of the invention may be included on any of the storage media
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002375517A CA2375517A1 (en) | 1999-06-18 | 2000-06-15 | Method and apparatus to rename open files |
EP00960105A EP1194841A2 (en) | 1999-06-18 | 2000-06-15 | Method and apparatus to rename open files |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US33664099A | 1999-06-18 | 1999-06-18 | |
US09/336,640 | 1999-06-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2000079384A2 true WO2000079384A2 (en) | 2000-12-28 |
WO2000079384A3 WO2000079384A3 (en) | 2001-12-06 |
Family
ID=23317011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/040197 WO2000079384A2 (en) | 1999-06-18 | 2000-06-15 | Method and apparatus to rename open files |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1194841A2 (en) |
CA (1) | CA2375517A1 (en) |
WO (1) | WO2000079384A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560614B1 (en) * | 1999-11-12 | 2003-05-06 | Xosoft Inc. | Nonintrusive update of files |
US8619054B2 (en) | 2006-05-31 | 2013-12-31 | Atmel Corporation | Two dimensional position sensor |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513351A (en) * | 1994-07-28 | 1996-04-30 | International Business Machines Corporation | Protecting a system during system maintenance by usage of temporary filenames in an alias table |
WO1996018947A1 (en) * | 1994-12-13 | 1996-06-20 | Novell, Inc. | Method and apparatus to update or change a network directory |
EP0738980A2 (en) * | 1995-04-17 | 1996-10-23 | International Business Machines Corporation | Data conversion in a multiprocessing system usable while maintaining system operations |
WO1997014091A1 (en) * | 1995-10-12 | 1997-04-17 | International Business Machines Corporation | Object-oriented method maintenance mechanism that does not require cessation of the computer system |
-
2000
- 2000-06-15 WO PCT/US2000/040197 patent/WO2000079384A2/en not_active Application Discontinuation
- 2000-06-15 EP EP00960105A patent/EP1194841A2/en not_active Withdrawn
- 2000-06-15 CA CA002375517A patent/CA2375517A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513351A (en) * | 1994-07-28 | 1996-04-30 | International Business Machines Corporation | Protecting a system during system maintenance by usage of temporary filenames in an alias table |
WO1996018947A1 (en) * | 1994-12-13 | 1996-06-20 | Novell, Inc. | Method and apparatus to update or change a network directory |
EP0738980A2 (en) * | 1995-04-17 | 1996-10-23 | International Business Machines Corporation | Data conversion in a multiprocessing system usable while maintaining system operations |
WO1997014091A1 (en) * | 1995-10-12 | 1997-04-17 | International Business Machines Corporation | Object-oriented method maintenance mechanism that does not require cessation of the computer system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560614B1 (en) * | 1999-11-12 | 2003-05-06 | Xosoft Inc. | Nonintrusive update of files |
US8619054B2 (en) | 2006-05-31 | 2013-12-31 | Atmel Corporation | Two dimensional position sensor |
US9927476B2 (en) | 2006-05-31 | 2018-03-27 | Atmel Corporation | Two dimensional position sensor |
Also Published As
Publication number | Publication date |
---|---|
EP1194841A2 (en) | 2002-04-10 |
CA2375517A1 (en) | 2000-12-28 |
WO2000079384A3 (en) | 2001-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7185071B2 (en) | Self-healing version and configuration model for an application server | |
US5778389A (en) | Method and system for synchronizing computer file directories | |
US5924102A (en) | System and method for managing critical files | |
US6301710B1 (en) | System and method for creating a substitute registry when automatically installing an update program | |
US5603020A (en) | Method for detecting file names by informing the task of the identification of the directory antecedent to the file | |
EP2040162B1 (en) | Systems and methods for patching computer programs | |
US6408434B1 (en) | System and method for using a substitute directory to automatically install an update program | |
JP4663878B2 (en) | Method and apparatus for managing files in a storage medium | |
EP0415346B1 (en) | Method and system for dynamic volume tracking in an installable file system | |
US6751658B1 (en) | Providing a reliable operating system for clients of a net-booted environment | |
US5930513A (en) | Reference based software installation | |
US6915420B2 (en) | Method for creating and protecting a back-up operating system within existing storage that is not hidden during operation | |
US8688658B2 (en) | Management of time-variant data schemas in data warehouses | |
US20060155669A1 (en) | System and method for providing access to computer files across computer operating systems | |
US7886270B2 (en) | Methods, systems, and computer program products for file version control management | |
US20040098419A1 (en) | Method and apparatus for a migration assistant | |
JP2003528391A (en) | Method and apparatus for storing changes to file attributes without having to store additional copies of file contents | |
KR20040086757A (en) | Peripheral device driver maintenance scheme for networked peripheral device clients | |
US7203868B1 (en) | Dynamic monitoring of resources using snapshots of system states | |
JPH0934755A (en) | System and method for arranging storage device contents | |
US7536687B1 (en) | System and method for automatic installation of embedded software packages | |
WO2008103205A1 (en) | Configurable views of archived data storage | |
US20050144617A1 (en) | Automatic configuration of reinstall information | |
US6336215B1 (en) | Apparatus and method for on-line code only replacement of a running program using checkpoints | |
KR100637932B1 (en) | Method for unmounting of filesystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): CA |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
AK | Designated states |
Kind code of ref document: A3 Designated state(s): CA |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
ENP | Entry into the national phase in: |
Ref country code: CA Ref document number: 2375517 Kind code of ref document: A Format of ref document f/p: F Ref document number: 2375517 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2000960105 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2000960105 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2000960105 Country of ref document: EP |