Patent US3670689A successfully refreshed from Google Patents.
Patent US5701470A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5701470A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for space efficient object locking using a data subarray and pointers

Assignee: Oracle America Inc
•
Filing: 1995-12-08
•
Granted: 1997-12-23
•
Expires: 2015-12-08
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In summary, the present invention is a multithreaded computer system having a memory that stores a plurality of objects and a plurality of procedures. Each object has a lock status of locked or unlocked, and includes a data pointer to a data structure. The system uses a first object locking procedure to service lock requests on objects that have never been locked as well as object that have not recently been locked, and uses a second object locking procedure to service lock requests on locked objects and object that have been recently locked. The first object locking procedure has instructions for changing a specified unlocked object's lock status to locked, for copying the data structure referenced by the data pointer to an enlarged data structure including a lock data subarray for storing lock data, and for updating the data pointer to point to the enlarged data structure. The second object locking procedure has instructions for updating a specified object's stored lock data. A lock data cleanup procedure, executed when the system's garbage collection procedure is executed, releases the lock data subarray of a specified object if the object has not been recently locked.

Inventors

  • 👤 William N. Joy
  • 👤 Arthur A. van Hoff

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 10:31
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; G06F9/44; G06F9/448; G06F9/4488; G06F9/449; Y; Y10; Y10S; Y10S707/00; Y10S707/953; Y10S707/955; Y10S707/99941; Y10S707/99942; Y10S707/99944; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 299 words
A computer system, comprising: memory for storing a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; each stored object that has not recently had a lock status of locked including a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; each stored object that has recently had a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure.
Claim 2
Dependent Claim 299 words
A computer system, comprising: memory for storing a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; each stored object that has not recently had a lock status of locked including a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; each stored object that has recently had a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure.
Claim 3
Dependent Claim 295 words
A computer system, comprising: memory for storing a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; each stored object which has never had a lock status of locked including a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; each stored object having a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure.
Claim 4
Dependent Claim 295 words
A computer system, comprising: memory for storing a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; each stored object which has never had a lock status of locked including a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; each stored object having a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure.
Claim 5
Dependent Claim 35 words
The computer system of claim 2, said lock data cleanup procedure including instructions for changing said specified object's method pointer to point to said subset of said procedures that includes said first object locking procedure.
Claim 6
Dependent Claim 338 words
A computer system, comprising: memory for storing a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; said memory further storing a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; each of said stored objects that has not recently had a lock status of locked including a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object.
Claim 7
Dependent Claim 338 words
A computer system, comprising: memory for storing a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; said memory further storing a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; each of said stored objects that has not recently had a lock status of locked including a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object.
Claim 8
Dependent Claim 337 words
The computer system, comprising: memory for storing a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; said memory further storing a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; each of said stored objects that has never had a lock status of locked including a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object.
Claim 9
Dependent Claim 337 words
The computer system, comprising: memory for storing a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; said memory further storing a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; each of said stored objects that has never had a lock status of locked including a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object.
Claim 10
Dependent Claim 34 words
The computer system of claim 5, said lock data cleanup procedure including instructions for changing said specified object's method pointer to reference said primary VFT for the object class corresponding to said specified object.
Claim 11
Independent Claim 297 words
A method of operating a computer system, comprising the steps of: storing in a computer memory a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; when servicing a lock request on a specified object that has never been locked, executing a first object locking procedure that includes instructions for changing the specified object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; when servicing a lock request on a specified locked object that has an allocated lock data subarray, executing a second object locking procedure that includes instructions for updating said specified object's stored lock data; associating with each stored object that has not recently had a lock status of locked a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; associating with each stored object that has recently had a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; when executing said first object locking procedure to service a lock request on an unlocked object, updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure; and when predefined release criteria are satisfied, executing a lock data cleanup procedure to release a specified object's lock data subarray.
Claim 12
Independent Claim 297 words
A method of operating a computer system, comprising the steps of: storing in a computer memory a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; when servicing a lock request on a specified object that has never been locked, executing a first object locking procedure that includes instructions for changing the specified object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; when servicing a lock request on a specified locked object that has an allocated lock data subarray, executing a second object locking procedure that includes instructions for updating said specified object's stored lock data; associating with each stored object that has not recently had a lock status of locked a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; associating with each stored object that has recently had a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; when executing said first object locking procedure to service a lock request on an unlocked object, updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure; and when predefined release criteria are satisfied, executing a lock data cleanup procedure to release a specified object's lock data subarray.
Claim 13
Independent Claim 272 words
A method of operating a computer system, comprising the steps of: storing in a computer memory a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; when servicing a lock request of a specified object that has never been locked, executing a first object locking procedure that includes instructions for changing the specified object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; when servicing a lock request on a specified locked object that has an allocated lock data subarray, executing a second object locking procedure that includes instructions for updating said specified object's stored lock data; associating with each stored object that has never had a lock status of locked a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; associating with each stored object having a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; when executing said first object locking procedure to service a lock request on an unlocked object, updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure.
Claim 14
Independent Claim 272 words
A method of operating a computer system, comprising the steps of: storing in a computer memory a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; when servicing a lock request of a specified object that has never been locked, executing a first object locking procedure that includes instructions for changing the specified object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; when servicing a lock request on a specified locked object that has an allocated lock data subarray, executing a second object locking procedure that includes instructions for updating said specified object's stored lock data; associating with each stored object that has never had a lock status of locked a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; associating with each stored object having a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; when executing said first object locking procedure to service a lock request on an unlocked object, updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure.
Claim 15
Dependent Claim 33 words
The method of claim 8, when executing said lock data cleanup procedure, changing said specified object's method pointer to point to said subset of said procedures that includes said first object locking procedure.
Claim 16
Independent Claim 331 words
A method of operating a computer system, comprising the steps of: storing in a computer memory a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; when servicing a lock request on a specified object teat has never been locked, executing a first object locking procedure that includes instructions for changing the specified object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; when servicing a lock request on a specified locked object that has an allocated lock data subarray, executing a second object locking procedure that includes instructions for updating said specified object's stored lock data; storing in said computer memory a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; associating with each of said stored objects that has not recently had a lock status of locked a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, storing in said computer memory a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; when executing said first object locking procedure, updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object; and when predefined release criteria are satisfied, executing a lock data cleanup procedure to release a specified object's lock data subarray.
Claim 17
Independent Claim 331 words
A method of operating a computer system, comprising the steps of: storing in a computer memory a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; when servicing a lock request on a specified object teat has never been locked, executing a first object locking procedure that includes instructions for changing the specified object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; when servicing a lock request on a specified locked object that has an allocated lock data subarray, executing a second object locking procedure that includes instructions for updating said specified object's stored lock data; storing in said computer memory a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; associating with each of said stored objects that has not recently had a lock status of locked a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, storing in said computer memory a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; when executing said first object locking procedure, updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object; and when predefined release criteria are satisfied, executing a lock data cleanup procedure to release a specified object's lock data subarray.
Claim 18
Independent Claim 330 words
A method of operating a computer system, comprising the steps of: storing in a computer memory a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; when servicing a lock request on a specified object that has never been locked, executing a first object locking procedure that includes instructions for changing the specified object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; when servicing a lock request on a specified locked object that has an allocated lock data subarray, executing a second object locking procedure that includes instructions for updating said specified object's stored lock data; storing in said computer memory a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; associating with each of said stored objects that has never had a lock status of locked a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, storing in said computer memory a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; when executing said first object locking procedure, updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object; and when predefined release criteria are satisfied, executing a lock data cleanup procedure to release a specified object's lock data subarray.
Claim 19
Independent Claim 330 words
A method of operating a computer system, comprising the steps of: storing in a computer memory a plurality of objects and a plurality of procedures, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure; when servicing a lock request on a specified object that has never been locked, executing a first object locking procedure that includes instructions for changing the specified object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; when servicing a lock request on a specified locked object that has an allocated lock data subarray, executing a second object locking procedure that includes instructions for updating said specified object's stored lock data; storing in said computer memory a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; associating with each of said stored objects that has never had a lock status of locked a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, storing in said computer memory a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; when executing said first object locking procedure, updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object; and when predefined release criteria are satisfied, executing a lock data cleanup procedure to release a specified object's lock data subarray.
Claim 20
Dependent Claim 32 words
The method of claim 11, when executing said lock data cleanup procedure, changing said specified object's method pointer to reference said primary VFT for the object class corresponding to said specified object.
Claim 21
Dependent Claim 319 words
A memory for storing data for access by programs being executed on a data processing system, said memory comprising: a plurality of objects and a plurality of procedures stored in said memory, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure stored in said memory; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; each stored object that has not recently had a lock status of locked including a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; each stored object that has recently had a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure.
Claim 22
Dependent Claim 319 words
A memory for storing data for access by programs being executed on a data processing system, said memory comprising: a plurality of objects and a plurality of procedures stored in said memory, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure stored in said memory; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; each stored object that has not recently had a lock status of locked including a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; each stored object that has recently had a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure.
Claim 23
Dependent Claim 315 words
A memory for storing data for access by programs being executed on a data processing system, said memory comprising: a plurality of objects and a plurality of procedures stored in said memory, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure stored in said memory; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; each stored object which has never had a lock status of locked including a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; each stored object having a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure.
Claim 24
Dependent Claim 315 words
A memory for storing data for access by programs being executed on a data processing system, said memory comprising: a plurality of objects and a plurality of procedures stored in said memory, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure stored in said memory; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; each stored object which has never had a lock status of locked including a methods pointer to a first subset of said procedures that includes said first object locking procedure and does not include said second object locking procedure; each stored object having a lock status of locked including a methods pointer to a second subset of said procedures that includes said second object locking procedure and does not include said first object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to point to said second subset of said procedures that includes said second object locking procedure.
Claim 25
Dependent Claim 34 words
The memory of claim 14, said lock data cleanup procedure including instructions for changing said specified object's method pointer to point to said subset of said procedures that includes said first object locking procedure.
Claim 26
Dependent Claim 358 words
A memory for storing data for access by programs being executed on a data processing system, said memory comprising: a plurality of objects and a plurality of procedures stored in said memory, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure stored in said memory; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; said memory further storing a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; each of said stored objects that has not recently had a lock status of locked including a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object.
Claim 27
Dependent Claim 358 words
A memory for storing data for access by programs being executed on a data processing system, said memory comprising: a plurality of objects and a plurality of procedures stored in said memory, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure stored in said memory; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; said memory further storing a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; each of said stored objects that has not recently had a lock status of locked including a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object.
Claim 28
Dependent Claim 357 words
A memory for storing data for access by programs being executed on a data processing system, said memory comprising: a plurality of objects and a plurality of procedures stored in said memory, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure stored in said memory; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; said memory further storing a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; each of said stored objects that has never had a lock status of locked including a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object.
Claim 29
Dependent Claim 357 words
A memory for storing data for access by programs being executed on a data processing system, said memory comprising: a plurality of objects and a plurality of procedures stored in said memory, each stored object having a lock status selected from the set consisting of locked and unlocked, each stored object including a data pointer to a data structure stored in said memory; a first object locking procedure, including instructions for changing a specified unlocked object's lock status to locked, for copying said data structure pointed to by said data pointer to an enlarged data structure including a lock data subarray for storing lock data and for updating said data pointer to point to said enlarged data structure; a second object locking procedure including instructions for updating a specified object's stored lock data; and a lock data cleanup procedure for releasing a specified object's lock data subarray when predefined release criteria are satisfied; wherein said system uses said first object locking procedure to service lock requests on objects that do not have a lock data subarray, uses said second object locking procedure to service lock requests on objects that do have a lock data subarray, and uses said lock data cleanup procedure to release a specified object's lock data subarray; said memory further storing a set of object classes, each object class including a primary virtual function table (VFT) that includes pointers referencing a set of methods associated with said object class as well as a pointer that references said first object locking procedure; each of said stored objects that has never had a lock status of locked including a methods pointer that references said primary VFT for a corresponding one of said object classes; for each object class for which there is at least one locked object, a secondary virtual function table (VFT) that includes pointers referencing said set of methods associated with said object class as well as a pointer that references said second object locking procedure; said first object locking procedure including instructions for updating said specified object's method pointer to reference said secondary VFT for the object class corresponding to said specified object.
Claim 30
Dependent Claim 33 words
The memory of claim 17, said lock data cleanup procedure including instructions for changing said specified object's method pointer to reference said primary VFT for the object class corresponding to said specified object.

References Cited (Backward Citations)

US5347632A Cited
US5083263A Cited
US5159680A Cited
US5043923A Cited
US5551028A Cited
US5488721A Cited
US5499365A Cited
US5542078A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-12-22 2001-06-23 2001-12-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-12-22 2005-06-23 2005-12-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-12-22 2009-06-23 2009-12-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag