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

System and method for adding highly optimized synchronization capability to objects at run-time

Assignee: International Business Machines Corp
•
Filing: 1997-11-19
•
Granted: 2001-05-22
•
Expires: 2017-11-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention is directed to a system, method, and computer-readable medium for providing a highly efficient locking mechanism for an object's shared data. The locking mechanism is bound to an object during program execution (i.e. during run-time) when synchronization is first requested for the object's shared data. Thus, there are no changes to the actual code, either source code or binary code, which defines the object. A locking mechanism is bound to an object by defining a memory area within the object's header, which either contains the locking mechanism or a pointer to a locking mechanism. The locking mechanism remains bound to the object for the life of the object. Efficiency is gained by limiting the use of operating system semaphores (i.e. kernel semaphores). Operating system semaphores are not used unless blocking (i.e. contention) occurs. Rather, the locking mechanism bound to the object is used during non-blocking situations. Additional efficiency is gained by not assigning or initializing an object's locking mechanism until the first synchronization request is received for the object's shared data. In one embodiment of the present invention, the object's header memory area contains the actual locking mechanism. In another embodiment of the present invention, the object's header memory area contains a pointer or index to a locking mechanism.

Inventors

  • 👤 Michael Wayne Brown
  • 👤 Michael Thomas Collins
  • 👤 Weiming Gu
  • 👤 Paul Jerome Kilpatrick
  • 👤 Kelvin Roderick Lawrence

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 02:52
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 99 words
A method of synchronizing object data in an object-oriented, run-time environment, comprising the steps of: creating an object, wherein the object includes a header area and a data area; receiving one or more requests, each from a requester, for synchronized access to the object's data, wherein the object's data is stored in the data area; binding a locking mechanism to the object when a first request is received, wherein said binding step includes the step of storing the locking mechanism in the header area of the object; and controlling access to the object's data through the bound locking mechanism.
Claim 2
Independent Claim 99 words
A method of synchronizing object data in an object-oriented, run-time environment, comprising the steps of: creating an object, wherein the object includes a header area and a data area; receiving one or more requests, each from a requester, for synchronized access to the object's data, wherein the object's data is stored in the data area; binding a locking mechanism to the object when a first request is received, wherein said binding step includes the step of storing the locking mechanism in the header area of the object; and controlling access to the object's data through the bound locking mechanism.
Claim 3
Dependent Claim 48 words
A method according to claim 1 , wherein said creating step further comprises the step of allocating additional memory in the header area of the object when the object is created, and wherein said storing step comprises the step of storing the locking mechanism in the additional memory.
Claim 4
Dependent Claim 43 words
A method according to claim 1 , wherein said binding step comprises the steps of: selecting a next available locking mechanism from a plurality of locking mechanisms; and storing a pointer to the selected locking mechanism in the header area of the object.
Claim 5
Dependent Claim 28 words
A method according to claim 1 , wherein said controlling step comprises the step of deciding whether to grant access to the object's data to a current requestor.
Claim 6
Dependent Claim 21 words
A method according to claim 1 , wherein the header area and the data area are stored in a heap memory.
Claim 7
Dependent Claim 52 words
A method according to claim 5 , wherein said creating step further comprises the step of allocating additional memory in the header area of the object when the object is created, and wherein said storing step comprises the step of storing the pointer to the selected locking mechanism in the additional memory.
Claim 8
Dependent Claim 42 words
A method according to claim 4 , wherein said deciding step comprises the steps of: determining if the object is in a locked state; and if the object is not in a locked state, granting the synchronized access to the current requestor.
Claim 9
Dependent Claim 23 words
A method according to claim 7 , wherein said granting step further comprises the step of setting the object to a locked state.
Claim 10
Dependent Claim 47 words
A method according to claim 7 , wherein said deciding step further comprises the steps of: if the object is in the locked state, determining a lock owner; and if the lock owner is equal to the current requester, granting the synchronized access to the current requester.
Claim 11
Dependent Claim 53 words
A method according to claim 9 , further comprising the steps of: if the lock owner is not equal to the current requestor, denying access to the current requestor; and if access is denied to the current requester, putting the current requester in a wait state to wait for access to the object.
Claim 12
Dependent Claim 79 words
An information handling system, comprising: a plurality of objects, each object including a header area and a data area; means for requesting synchronized access to a desired object's data; means for binding a locking mechanism to the desired object when a first request is received, wherein said means for binding includes means for storing the locking mechanism in the header area of the desired object; and means for controlling access to the object's data through the bound locking mechanism.
Claim 13
Dependent Claim 79 words
An information handling system, comprising: a plurality of objects, each object including a header area and a data area; means for requesting synchronized access to a desired object's data; means for binding a locking mechanism to the desired object when a first request is received, wherein said means for binding includes means for storing the locking mechanism in the header area of the desired object; and means for controlling access to the object's data through the bound locking mechanism.
Claim 14
Dependent Claim 49 words
An information handling system according to claim 11 , further comprising means for allocating additional memory in the header area of each object when the object is created, and wherein said means for storing comprises means for storing the locking mechanism in the additional memory of the desired object.
Claim 15
Dependent Claim 31 words
An information handling system according to claim 11 , wherein said means for controlling comprises means for deciding whether to grant access to the desired object's data to a current requester.
Claim 16
Dependent Claim 23 words
An information handling system according to claim 11 , wherein the header area and the data area are stored in a heap memory.
Claim 17
Dependent Claim 56 words
An information handling system according to claim 14 , further comprising a plurality of locking mechanisms, and wherein said means for binding comprises: means for selecting a next available locking mechanism from the plurality of locking mechanisms; and means for storing a pointer to the selected locking mechanism in the header area of the desired object.
Claim 18
Dependent Claim 38 words
An information handling system according to claim 13 , wherein said means for deciding comprises: means for determining if the desired object is in a locked state; and means for granting the synchronized access to the current requestor.
Claim 19
Dependent Claim 53 words
An information handling system according to claim 15 , further comprising means for allocating additional memory in the header area of each object when the object is created, and wherein said means for storing comprises means for storing the pointer to the selected locking mechanism in the additional memory of the desired object.
Claim 20
Dependent Claim 26 words
An information handling system according to claim 16 , wherein said means for granting further comprises means for setting the desired object to a locked state.
Claim 21
Dependent Claim 22 words
An information handling system according to claim 16 , wherein said means for deciding further comprises means for determining a lock owner.
Claim 22
Dependent Claim 38 words
An information handling system according to claim 19 , further comprising: means for denying access to the current requester; and means for putting the current requestor in a wait state to wait for access to the desired object.
Claim 23
Dependent Claim 80 words
A computer readable medium, comprising: a plurality of objects, each object including a header area and a data area; means for requesting synchronized access to a desired object's data; means for binding a locking mechanism to the desired object when a first request is received, wherein said means for binding includes means for storing the locking mechanism in the header area of the desired object; and means for controlling access to the desired object's data through the bound locking mechanism.
Claim 24
Dependent Claim 80 words
A computer readable medium, comprising: a plurality of objects, each object including a header area and a data area; means for requesting synchronized access to a desired object's data; means for binding a locking mechanism to the desired object when a first request is received, wherein said means for binding includes means for storing the locking mechanism in the header area of the desired object; and means for controlling access to the desired object's data through the bound locking mechanism.
Claim 25
Dependent Claim 49 words
A computer readable medium according to claim 21 , further comprising means for allocating additional memory in the header area of each object when the object is created, and wherein said means for storing comprises means for storing the locking mechanism in the additional memory of the desired object.
Claim 26
Dependent Claim 48 words
A computer readable medium according to claim 21 , wherein said means for binding comprises: means for selecting a next available locking mechanism from a plurality of locking mechanisms; and means for storing a pointer to the selected locking mechanism in a header area of the desired object.
Claim 27
Dependent Claim 31 words
A computer readable medium according to claim 21 , wherein said means for controlling comprises means for deciding whether to grant access to the desired object's data to a current requester.
Claim 28
Dependent Claim 23 words
A computer readable medium according to claim 21 , wherein the header area and the data area are stored in a heap memory.
Claim 29
Dependent Claim 53 words
A computer readable medium according to claim 23 , further comprising means for allocating additional memory in the header area of each object when the object is created, and wherein said means for storing comprises means for storing the pointer to the selected locking mechanism in the additional memory of the desired object.
Claim 30
Dependent Claim 38 words
A computer readable medium according to claim 24 , wherein said means for deciding comprises: means for determining if the desired object is in a locked state; and means for granting the synchronized access to the current requester.
Claim 31
Dependent Claim 27 words
A computer readable medium according to claim 27 , wherein said means for granting access further comprises means for setting the desired object to a locked state.
Claim 32
Dependent Claim 22 words
A computer readable medium according to claim 27 , wherein said means for deciding further comprises means for determining a lock owner.
Claim 33
Dependent Claim 37 words
A computer readable medium according to claim 29 , further comprising: means for denying access to the current requestor; and means for putting the current requester in a wait state to wait for access to the object.

References Cited (Backward Citations)

US5321841A Cited
US5414852A Cited
US5956712A Cited
US5901315A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-05-21 2004-11-20 2005-05-22 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-05-21 2008-11-20 2009-05-22 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-05-21 2012-11-20 2013-05-22 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag