US5933825A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Arbitrating concurrent access to file system objects
Assignee: Apple Inc
•
Filing: 1997-07-21
•
Granted: 1999-08-03
•
Expires: 2017-07-21
Abstract
Abstract A locking scheme is provided to arbitrate thread access to file system objects. This locking scheme allows multiple threads simultaneous access to file system objects for certain concurrently compatible operations, while forbidding concurrently incompatible operations. Separate types of locks are provided for hierarchical relationships between objects and the contents (e.g., data) of the objects themselves.
Inventors
- 👤 Patrick McClaughry
- 👤 Max McFarland
- 👤 Peter McInerney
- 👤 Wayne Loofburrow
- 👤 Daniel Walkowski
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-09 18:41
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1402; G06F11/1415; G06F11/1435; G06F16/00; G06F16/10; G06F16/17; G06F16/176; G06F16/1767; G06F16/1774; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99938; Y10S707/99951; Y10S707/99952; Y10S707/99953
Claims Analysis
Total Claims: 41
Claim 1
Independent Claim
102 words
A computer system comprising: a memory device for storing file system objects; a processor for manipulating said file system objects, said processor adapted to concurrently handle first and second threads; and a locking system which arbitrates concurrent access to said file system objects by allowing said first and second threads concurrent access to a same file system object under a first set of conditions and preventing concurrent access to said same file system object under a second set of conditions, wherein said locking system includes locks which indicate that an operation is being performed on a file system object within a hierarchy.
Claim 2
Dependent Claim
102 words
A computer system comprising: a memory device for storing file system objects; a processor for manipulating said file system objects, said processor adapted to concurrently handle first and second threads; and a locking system which arbitrates concurrent access to said file system objects by allowing said first and second threads concurrent access to a same file system object under a first set of conditions and preventing concurrent access to said same file system object under a second set of conditions, wherein said locking system includes locks which indicate that an operation is being performed on a file system object within a hierarchy.
Claim 3
Dependent Claim
42 words
The computer system of claim 1, wherein said first set of conditions includes a case wherein said first thread has obtained read access to said same file system object and said second thread seeks read access to said same file system object.
Claim 4
Dependent Claim
42 words
The computer system of claim 1, wherein said first set of conditions includes a case wherein said first thread has obtained write access to said same file system object and said second thread seeks write access to said same file system object.
Claim 5
Dependent Claim
42 words
The computer system of claim 1, wherein said first set of conditions includes a case wherein said first thread has obtained write access to said same file system object and said second thread seeks read access to said same file system object.
Claim 6
Dependent Claim
41 words
The computer system of claim 1, wherein said locking system creates a lock record in said memory system for said same file system object when one of said first and second threads acquires one of a plurality of locks associated therewith.
Claim 7
Dependent Claim
26 words
The computer system of claim 5, wherein said locking system deletes said lock record from said memory system after a last lock associated therewith is released.
Claim 8
Dependent Claim
33 words
The computer system of claim 5, wherein said one of a plurality of locks is a read contents lock which indicates that a thread is reading an object associated with said lock record.
Claim 9
Dependent Claim
18 words
The computer system of claim 1, wherein said first and second threads are associated with one application program.
Claim 10
Dependent Claim
30 words
The computer system of claim 8, wherein said one application program permits a user of said computer system to provide commands to said processor to manipulate said file system objects.
Claim 11
Dependent Claim
18 words
The computer system of claim 1, wherein said first and second threads are associated with different application programs.
Claim 12
Dependent Claim
40 words
The computer system of claim 2, wherein said locking system sets a value in a lock record associated with said same file system object to indicate that a read contents lock has been acquired for said same file system object.
Claim 13
Dependent Claim
51 words
The computer system of claim 11, wherein said same file system object is a descendant of at least one other file system object, and wherein said locking system assigns a hierarchical read contents lock to said at least one other file system object as a result of said read contents lock.
Claim 14
Dependent Claim
40 words
The computer system of claim 3, wherein said locking system sets a value in a lock record associated with said same file system object to indicate that a write contents lock has been acquired for said same file system object.
Claim 15
Dependent Claim
51 words
The computer system of claim 13, wherein said same file system object is a descendant of at least one other file system object, and wherein said locking system assigns a hierarchical write contents lock to said at least one other file system object as a result of said write contents lock.
Claim 16
Dependent Claim
55 words
The computer system of claim 1, wherein said locking system can assign at least one of: a read contents lock, a write contents lock, a hierarchical read contents lock, a hierarchical write contents lock, a read children lock and a write children lock to said file system objects based upon a predetermined set of rules.
Claim 17
Dependent Claim
49 words
The computer system of claim 1, wherein said locking system further comprises: means for transferring locks associated with one of said file system objects when said one of said file system objects is transferred from one branch of file system hierarchy to another branch of said file system hierarchy.
Claim 18
Dependent Claim
42 words
The computer system of claim 16, wherein said means for transferring propagates hierarchical read contents locks to new ancestors of said one of said file system objects if said one of said file system objects has a read contents lock associated therewith.
Claim 19
Dependent Claim
42 words
The computer system of claim 16, wherein said means for transferring propagates hierarchical write contents locks to new ancestors of said one of said file system objects if said one of said file system objects has a write contents lock associated therewith.
Claim 20
Dependent Claim
18 words
The computer system of claim 1, wherein said hierarchy includes at least three levels of file system objects.
Claim 21
Independent Claim
74 words
A method for arbitrating concurrent access to file system objects comprising the steps of: receiving a request from a thread to acquire a lock associated with a file system object; evaluating a lock record associated with said file system object, wherein said lock record includes information relating to file system objects which have a hierarchical relationship to said file system object; and selectively granting said lock to said thread based upon said evaluating step.
Claim 22
Independent Claim
74 words
A method for arbitrating concurrent access to file system objects comprising the steps of: receiving a request from a thread to acquire a lock associated with a file system object; evaluating a lock record associated with said file system object, wherein said lock record includes information relating to file system objects which have a hierarchical relationship to said file system object; and selectively granting said lock to said thread based upon said evaluating step.
Claim 23
Dependent Claim
42 words
The method of claim 20, wherein said step of evaluating further comprises the step of determining that said lock record does not currently exist and wherein said step of selectively granting further comprises the step of granting said lock to said thread.
Claim 24
Dependent Claim
35 words
The method of claim 20, wherein said step of evaluating further comprises the step of: identifying at least one lock type currently associated with said file system object based upon fields in said lock record.
Claim 25
Dependent Claim
52 words
The method of claim 22, wherein said step of selectively granting further comprises the step of: determining whether said requested lock and said at least one lock type can co-exist based upon a predetermined set of rules and granting said lock to said thread based upon a result of said determining step.
Claim 26
Dependent Claim
40 words
The method of claim 23, wherein said determining and granting step further comprises the step of: if said requested lock is read contents lock, then granting said lock unless said at least one type of lock is a write lock.
Claim 27
Dependent Claim
26 words
The method of claim 24, wherein said write lock includes any one of a write contents lock, a hierarchical write lock and a write children lock.
Claim 28
Dependent Claim
45 words
The method of claim 23, wherein said determining and granting step further comprises the step of: if said requested lock is a write contents lock, then denying said lock unless said at least one type of lock is a read children or write children lock.
Claim 29
Dependent Claim
41 words
The method of claim 23, wherein said determining and granting step further comprises the step of: if said requested lock is a hierarchical read lock, then granting said lock unless said at least one type of lock is a write lock.
Claim 30
Dependent Claim
45 words
The method of claim 23, wherein said determining and granting step further comprises the step of: if said requested lock is a hierarchical write lock, then granting said lock unless said at least one type of lock is a write contents or read contents lock.
Claim 31
Dependent Claim
29 words
The method of claim 23, wherein said determining and granting step further comprises the step of: if said requested lock is a read children lock, then granting said lock.
Claim 32
Dependent Claim
45 words
The method of claim 23, wherein said determining and granting step further comprises the step of: if said requested lock is a write children lock, then granting said lock unless said at least one type of lock is a read contents or write children lock.
Claim 33
Independent Claim
101 words
A method for copying a file system object to a destination object comprising the steps of: acquiring a write children lock on said destination object; acquiring a read children lock on said file system object; creating a plurality of pseudo-items associated with duplicate items to be copied from said file system object; acquiring a read contents lock on said items; acquiring a write contents lock on said pseudo-items; releasing said write children lock and said read children lock; copying said items; releasing said read contents and write contents locks; deleting said pseud-items; and creating file system representations for said copied items.
Claim 34
Independent Claim
101 words
A method for copying a file system object to a destination object comprising the steps of: acquiring a write children lock on said destination object; acquiring a read children lock on said file system object; creating a plurality of pseudo-items associated with duplicate items to be copied from said file system object; acquiring a read contents lock on said items; acquiring a write contents lock on said pseudo-items; releasing said write children lock and said read children lock; copying said items; releasing said read contents and write contents locks; deleting said pseud-items; and creating file system representations for said copied items.
Claim 35
Dependent Claim
70 words
A computer-readable medium having a computer program stored thereon, which program performs the steps of: creating locks associated with file system object accesses by threads associated with at least one of user manipulation of file system objects and application manipulation of file system objects; and arbitrating concurrent access to said file system objects using said locks, wherein said locks include locks involving a hierarchical relationship between said file system objects.
Claim 36
Dependent Claim
70 words
A computer-readable medium having a computer program stored thereon, which program performs the steps of: creating locks associated with file system object accesses by threads associated with at least one of user manipulation of file system objects and application manipulation of file system objects; and arbitrating concurrent access to said file system objects using said locks, wherein said locks include locks involving a hierarchical relationship between said file system objects.
Claim 37
Dependent Claim
117 words
A computer system comprising: a memory device for storing file system objects; a processor for manipulating said file system objects, said processor adapted to concurrently handle first and second threads; a locking system which arbitrates concurrent access to said file system objects by allowing said first and second threads concurrent access to a same file system object under a first set of conditions and preventing concurrent access to said same file system object under a second set of conditions; and means for transferring locks associated with one of said file system objects when said one of said file system objects is transferred from one branch of file system hierarchy to another branch of said file system hierarchy.
Claim 38
Dependent Claim
117 words
A computer system comprising: a memory device for storing file system objects; a processor for manipulating said file system objects, said processor adapted to concurrently handle first and second threads; a locking system which arbitrates concurrent access to said file system objects by allowing said first and second threads concurrent access to a same file system object under a first set of conditions and preventing concurrent access to said same file system object under a second set of conditions; and means for transferring locks associated with one of said file system objects when said one of said file system objects is transferred from one branch of file system hierarchy to another branch of said file system hierarchy.
Claim 39
Dependent Claim
196 words
A computer system comprising: a memory device for storing file system objects; a processor for manipulating said file system objects, said processor adapted to concurrently handle first and second threads; and a locking system which arbitrates concurrent access to said file system objects by allowing said first and second threads concurrent access to a same file system object under a first set of conditions and preventing concurrent access to said same file system object under a second set of conditions; wherein said first set of conditions includes a case wherein said first thread has obtained write access to said same file system object and said second thread seeks write access to said same file system object; wherein said locking system sets a value in a lock record associated with said same file system object to indicate that a write contents lock has been acquired for said same file system object; and wherein said same file system object is a descendant of at least one other file system object, and wherein said locking system assigns a hierarchical write contents lock to said at least one other file system object as a result of said write contents lock.
Claim 40
Dependent Claim
196 words
A computer system comprising: a memory device for storing file system objects; a processor for manipulating said file system objects, said processor adapted to concurrently handle first and second threads; and a locking system which arbitrates concurrent access to said file system objects by allowing said first and second threads concurrent access to a same file system object under a first set of conditions and preventing concurrent access to said same file system object under a second set of conditions; wherein said first set of conditions includes a case wherein said first thread has obtained write access to said same file system object and said second thread seeks write access to said same file system object; wherein said locking system sets a value in a lock record associated with said same file system object to indicate that a write contents lock has been acquired for said same file system object; and wherein said same file system object is a descendant of at least one other file system object, and wherein said locking system assigns a hierarchical write contents lock to said at least one other file system object as a result of said write contents lock.
Claim 41
Dependent Claim
24 words
The computer-readable medium of claim 32, wherein said hierarchical relationship between said file system objects includes at least three levels of file system objects.
References Cited (Backward Citations)
US5129083A
Cited
US5371885A
Cited
US5414839A
Cited
US5692178A
Cited
US5493728A
Cited
US5737536A
Cited
US5590326A
Cited
US5568639A
Cited
US5664189A
Cited
US5692180A
Cited
US5787439A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-08-02 | 2003-02-01 | 2003-08-03 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-08-02 | 2007-02-01 | 2007-08-03 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-08-02 | 2011-02-01 | 2011-08-03 | $7700.00 | Window Closed / Lapsed |