← Back to Patent Explorer
US6345313B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Recovery of synchronization constructs

Assignee: Oracle America Inc
•
Filing: 1997-08-22
•
Granted: 2002-02-05
•
Expires: 2017-08-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for managing the association of objects with synchronization constructs used to synchronize those objects with threads is described. A cache of synchronization constructs is provided. Synchronization constructs are used to synchronize objects with threads. When a thread requests synchronization with an object, a determination is made of whether a synchronization construct is already associated with the object. If a synchronization construct is already associated with the object, then that synchronization construct is used to synchronize the object with the thread. After association of a synchronization construct with an object, the association is maintained even when the synchronization construct meets termination criteria. Subsequently, a determination is made of whether a collection enabling condition exists. If a collection enabling condition exists, the association of objects with synchronization constructs that meet the termination criteria is terminated. A local table is assigned to each thread. The entries in the local table assigned to a particular thread contain information used to access a synchronization construct currently associated with an object on which the thread is or has in the past synchronized.

Inventors

  • 👤 Timothy G. Lindholm

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 19:28
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; G06F9/50; G06F9/5005; G06F9/5011; G06F9/5016; G06F9/526; G06F12/00; G06F12/02; G06F12/0223; G06F12/023; G06F12/0253; G06F12/0269; G06F9/44; G06F9/448; G06F9/4488

Claims Analysis

Total Claims: 37
Claim 1
Independent Claim 163 words
In a computer system that includes a plurality of threads and a set of objects that can each be synchronized with one or more of the threads from said plurality of threads, a method of synchronizing one of the objects from the set of objects with one or more of the threads from said plurality of threads, the method comprising the steps of: requesting synchronization of a first thread from said plurality of threads with a first object from said set of objects; determining whether a synchronization construct from a cache of synchronization constructs is associated with said first object; in response to determining that a particular synchronization construct is associated with said first object, using said particular synchronization construct to synchronize said first thread with said first object; and maintaining an association between said particular synchronization construct and said first object when there is no thread waiting to be synchronized with said first object and no thread synchronized with said first object.
Claim 2
Dependent Claim 163 words
In a computer system that includes a plurality of threads and a set of objects that can each be synchronized with one or more of the threads from said plurality of threads, a method of synchronizing one of the objects from the set of objects with one or more of the threads from said plurality of threads, the method comprising the steps of: requesting synchronization of a first thread from said plurality of threads with a first object from said set of objects; determining whether a synchronization construct from a cache of synchronization constructs is associated with said first object; in response to determining that a particular synchronization construct is associated with said first object, using said particular synchronization construct to synchronize said first thread with said first object; and maintaining an association between said particular synchronization construct and said first object when there is no thread waiting to be synchronized with said first object and no thread synchronized with said first object.
Claim 3
Dependent Claim 131 words
The method of claim 1 , further including the steps of: determining whether a condition in a set of garbage collection enabling conditions is satisfied; and in response to determining that said condition in the set of garbage collection enabling conditions is satisfied, performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining whether each criterion in a set of association termination criteria is satisfied, where said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs, and in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 4
Dependent Claim 33 words
The method of claim 2 , wherein the set of collection enabling conditions includes a number of synchronization constructs not associated with any object being less than or equal to a threshold number.
Claim 5
Dependent Claim 44 words
The method of claim 2 , the method further including the step of providing a thread-local cache assigned to each thread, wherein data in said thread-local cache assigned to a particular thread contains information referring to a synchronization construct currently associated with some object.
Claim 6
Dependent Claim 51 words
The method of claim 4 , wherein the step of determining whether a synchronization construct from said cache of synchronization constructs is associated with said first object further includes using the data contained in said thread-local cache to access the synchronization construct referred to by information contained in said particular entry.
Claim 7
Dependent Claim 110 words
The method of claim 4 , wherein: an in-progress reference is associated with each thread from said plurality of threads; the step of determining whether a synchronization construct from said cache of synchronization constructs is associated with said first object further includes storing information in the in-progress reference associated with said first thread indicating an identity of said first object; and the method further includes the steps of: storing information in said in-progress reference associated with said first thread indicating no identity of an object, and the association termination criteria further includes no in-progress reference associated with each thread from said plurality of threads containing information identifying said first object.
Claim 8
Dependent Claim 33 words
The method of claim 1 , wherein the step of maintaining an association includes maintaining said association between said particular synchronization construct and said first object until processed during a garbage collection operation.
Claim 9
Dependent Claim 222 words
In a computer system that includes a plurality of threads and a set of objects that can each be synchronized with one or more of the threads from said plurality of threads, a method of synchronizing one of the objects from the set of objects with one or more of the threads from said plurality of threads, the method comprising the steps of: associating one or more synchronization constructs with one or more objects from the set of objects when one or more threads from the plurality of threads requests synchronization with said one or more objects from the set the objects; determining whether a condition in a set of garbage collection enabling conditions is satisfied; and in response to determining that said condition in the set of garbage collection enabling conditions is satisfied, performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining whether each criterion in a set of association termination criteria is satisfied, wherein said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs, and in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 10
Dependent Claim 222 words
In a computer system that includes a plurality of threads and a set of objects that can each be synchronized with one or more of the threads from said plurality of threads, a method of synchronizing one of the objects from the set of objects with one or more of the threads from said plurality of threads, the method comprising the steps of: associating one or more synchronization constructs with one or more objects from the set of objects when one or more threads from the plurality of threads requests synchronization with said one or more objects from the set the objects; determining whether a condition in a set of garbage collection enabling conditions is satisfied; and in response to determining that said condition in the set of garbage collection enabling conditions is satisfied, performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining whether each criterion in a set of association termination criteria is satisfied, wherein said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs, and in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 11
Dependent Claim 33 words
The method of claim 8 , wherein the set of collection enabling conditions includes the number of synchronization constructs not associated with any object being less than or equal to a threshold number.
Claim 12
Dependent Claim 27 words
The method of claim 8 , wherein the set of association termination criteria includes no thread being synchronized with said object associated with said selected synchronization construct.
Claim 13
Dependent Claim 135 words
A computer readable medium having stored thereon a plurality of sequences of instructions, the plurality of sequences of instructions including sequences which, when executed by a processor, cause said processor to perform the steps of: requesting synchronization of a first thread from a plurality of threads with a first object from a set of objects; determining whether a synchronization construct from a cache of synchronization constructs is associated with said first object; in response to determining that a particular synchronization construct is associated with said first object, using said particular synchronization construct to synchronize said first thread with said first object; and maintaining an association between said particular synchronization construct and said first object when there is no thread waiting to be synchronized with said first object and no thread synchronized with said first object.
Claim 14
Dependent Claim 135 words
A computer readable medium having stored thereon a plurality of sequences of instructions, the plurality of sequences of instructions including sequences which, when executed by a processor, cause said processor to perform the steps of: requesting synchronization of a first thread from a plurality of threads with a first object from a set of objects; determining whether a synchronization construct from a cache of synchronization constructs is associated with said first object; in response to determining that a particular synchronization construct is associated with said first object, using said particular synchronization construct to synchronize said first thread with said first object; and maintaining an association between said particular synchronization construct and said first object when there is no thread waiting to be synchronized with said first object and no thread synchronized with said first object.
Claim 15
Dependent Claim 138 words
The computer readable medium of claim 11 , further comprising sequences of instructions for performing the steps of: determining whether a condition in a set of garbage collection enabling conditions is satisfied; and in response to determining that said condition in the set of garbage collection enabling conditions is satisfied, performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining whether each criterion in a set of association termination criteria is satisfied, wherein said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs, and in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 16
Dependent Claim 35 words
The computer readable medium of claim 12 , wherein the set of collection enabling conditions includes the number of synchronization constructs not assigned with any object being less than or equal to a threshold number.
Claim 17
Dependent Claim 49 words
The computer readable medium of claim 11 , further comprising sequences of instructions for performing the steps of providing a thread-local cache assigned to each thread, wherein data in said thread-local cache assigned to a particular thread contains information referring to a synchronization construct currently associated with some object.
Claim 18
Dependent Claim 52 words
The computer readable medium of claim 14 , wherein the step of determining whether a synchronization construct from said cache of synchronization constructs is associated with said first object further includes using the data in said thread-local cache to access the synchronization construct referred to by information contained in said particular entry.
Claim 19
Dependent Claim 118 words
The computer readable medium of claim 14 , wherein: an in-progress reference is associated with each thread from said plurality of threads; the step of determining whether a synchronization construct from said cache of synchronization constructs is associated with said first object further includes storing information in the in-progress reference associated with said first thread indicating an identity of said first object; the computer readable medium further comprising sequences of instructions for performing the step of storing information in said in-progress reference associated with said first thread indicating no identity of an object; and the association termination criteria further including no in-progress reference associated with each thread from said plurality of threads containing information identifying said first object.
Claim 20
Dependent Claim 200 words
A computer readable medium having stored thereon a plurality of sequences of instructions, the plurality of sequences of instructions including sequences which, when executed by a processor, cause said processor to perform the steps of: providing a cache of synchronization constructs; associating one or more synchronization constructs with one or more objects from a set of objects when one or more threads from a plurality of threads requests synchronization with said one or more objects from the set the objects; determining whether a condition in a set of garbage collection enabling conditions is satisfied; and in response to determining that said condition in the set of garbage collection enabling conditions is satisfied, performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining whether each criterion in a set of association termination criteria is satisfied, wherein said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs, and in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 21
Dependent Claim 200 words
A computer readable medium having stored thereon a plurality of sequences of instructions, the plurality of sequences of instructions including sequences which, when executed by a processor, cause said processor to perform the steps of: providing a cache of synchronization constructs; associating one or more synchronization constructs with one or more objects from a set of objects when one or more threads from a plurality of threads requests synchronization with said one or more objects from the set the objects; determining whether a condition in a set of garbage collection enabling conditions is satisfied; and in response to determining that said condition in the set of garbage collection enabling conditions is satisfied, performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining whether each criterion in a set of association termination criteria is satisfied, wherein said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs, and in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 22
Dependent Claim 35 words
The computer readable medium of claim 17 , wherein the set of collection enabling conditions includes the number of synchronization constructs not associated with any object being less than or equal to a threshold number.
Claim 23
Dependent Claim 152 words
A computer system comprising: a processor, wherein said processor is executing a plurality of threads; a memory coupled to said processor; said memory having stored therein a cache of synchronization constructs; said processor being configured to request a synchronization of a first thread from said plurality of threads with a first object from a set of objects; said processor being configured to determine whether a synchronization construct from said cache of synchronization constructs is associated with said first object; said processor being configured to respond to determining that a particular synchronization construct is associated with said first object by using said particular synchronization construct to synchronize said first thread with said first object; and said processor being configured to maintain an association between said particular synchronization construct and said first object when there is no thread waiting to be synchronized with said first object and no thread synchronized with said first object.
Claim 24
Dependent Claim 152 words
A computer system comprising: a processor, wherein said processor is executing a plurality of threads; a memory coupled to said processor; said memory having stored therein a cache of synchronization constructs; said processor being configured to request a synchronization of a first thread from said plurality of threads with a first object from a set of objects; said processor being configured to determine whether a synchronization construct from said cache of synchronization constructs is associated with said first object; said processor being configured to respond to determining that a particular synchronization construct is associated with said first object by using said particular synchronization construct to synchronize said first thread with said first object; and said processor being configured to maintain an association between said particular synchronization construct and said first object when there is no thread waiting to be synchronized with said first object and no thread synchronized with said first object.
Claim 25
Dependent Claim 139 words
The computer system of claim 19 , further comprising: said processor being configured to determine whether a condition in a set of garbage collection enabling conditions is satisfied; and said processor being configured to respond to determining that said condition in the set of garbage collection enabling conditions is satisfied, by performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining whether each criterion in a set of association termination criteria is satisfied, wherein said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs, and in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 26
Dependent Claim 205 words
A computer system comprising: a processor, wherein said processor is executing a plurality of threads; a memory coupled to said processor; and said memory having stored therein a cache of synchronization constructs; said processor being configured to associate one or more synchronization constructs with one or more objects from a set of objects when one of more threads from said plurality of threads requests synchronization with said one or more objects from the set the objects; said processor being configured to determine whether a condition in a set of garbage collection enabling conditions is satisfied; and said processor being configured to respond to determining that said condition in the set of garbage collection enabling conditions is satisfied, by performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining that each criterion in a set of association termination criteria is satisfied, wherein said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs; in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 27
Dependent Claim 205 words
A computer system comprising: a processor, wherein said processor is executing a plurality of threads; a memory coupled to said processor; and said memory having stored therein a cache of synchronization constructs; said processor being configured to associate one or more synchronization constructs with one or more objects from a set of objects when one of more threads from said plurality of threads requests synchronization with said one or more objects from the set the objects; said processor being configured to determine whether a condition in a set of garbage collection enabling conditions is satisfied; and said processor being configured to respond to determining that said condition in the set of garbage collection enabling conditions is satisfied, by performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining that each criterion in a set of association termination criteria is satisfied, wherein said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs; in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 28
Dependent Claim 130 words
Sequences of instructions embodied in a carrier wave, the sequences of instructions including sequences of instructions which, when executed by a processor, cause said processor to perform the steps of: requesting synchronization of a first thread from a plurality of threads with a first object from a set of objects; determining whether a synchronization construct from a cache of synchronization constructs is associated with said first object; in response to determining that a particular synchronization construct is associated with said first object, using said particular synchronization construct to synchronize said first thread with said first object; and maintaining an association between said particular synchronization construct and said first object when there is no thread waiting to be synchronized with said first object and no thread synchronized with said first object.
Claim 29
Dependent Claim 130 words
Sequences of instructions embodied in a carrier wave, the sequences of instructions including sequences of instructions which, when executed by a processor, cause said processor to perform the steps of: requesting synchronization of a first thread from a plurality of threads with a first object from a set of objects; determining whether a synchronization construct from a cache of synchronization constructs is associated with said first object; in response to determining that a particular synchronization construct is associated with said first object, using said particular synchronization construct to synchronize said first thread with said first object; and maintaining an association between said particular synchronization construct and said first object when there is no thread waiting to be synchronized with said first object and no thread synchronized with said first object.
Claim 30
Dependent Claim 138 words
The sequences of instructions of claim 22 , further comprising sequences of instructions for performing the steps of: determining whether a condition in a set of garbage collection enabling conditions is satisfied; and in response to determining that said condition in the set of garbage collection enabling conditions is satisfied, performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining whether each criterion in a set of association termination criteria is satisfied, wherein said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs, and in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 31
Dependent Claim 35 words
The sequences of instructions of claim 23 , wherein the set of collection enabling conditions includes the number of synchronization constructs not assigned with any object being less than or equal to a threshold number.
Claim 32
Dependent Claim 49 words
The sequences of instructions of claim 23 , further comprising sequences of instructions for performing the steps of providing a thread-local cache assigned to each thread, wherein data in said thread-local cache assigned to a particular thread contains information referring to a synchronization construct currently associated with some object.
Claim 33
Dependent Claim 56 words
The sequences of instructions of claim 25 , wherein the step of determining whether a synchronization construct from said cache of synchronization constructs is associated with said first object further includes using information contained in a particular entry in said thread-local cache to access the synchronization construct referred to by information contained in said particular entry.
Claim 34
Dependent Claim 118 words
The sequences of instructions of claim 25 , wherein: an in-progress reference is associated with each thread from said plurality of threads; the step of determining whether a synchronization construct from said cache of synchronization constructs is associated with said first object further includes storing information in the in-progress reference associated with said first thread indicating an identity of said first object; the sequences of instructions further comprising sequences of instructions for performing the step of storing information in said in-progress reference associated with said first thread indicating no identity of an object; and the association termination criteria further including no in-progress reference associated with each thread from said plurality of threads containing information identifying said first object.
Claim 35
Dependent Claim 187 words
Sequences of instructions embodied in a carrier wave, the sequences of instructions including sequences which, when executed by a processor, cause said processor to perform the steps of: associating one or more synchronization constructs with one or more objects from the set of objects when one or more threads from the plurality of threads requests synchronization with said one or more objects from the set the objects; determining whether a condition in a set of garbage collection enabling conditions is satisfied; and in response to determining that said condition in the set of garbage collection enabling conditions is satisfied, performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining whether each criterion in a set of association termination criteria is satisfied, wherein said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs, and in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 36
Dependent Claim 187 words
Sequences of instructions embodied in a carrier wave, the sequences of instructions including sequences which, when executed by a processor, cause said processor to perform the steps of: associating one or more synchronization constructs with one or more objects from the set of objects when one or more threads from the plurality of threads requests synchronization with said one or more objects from the set the objects; determining whether a condition in a set of garbage collection enabling conditions is satisfied; and in response to determining that said condition in the set of garbage collection enabling conditions is satisfied, performing the steps of: selecting a synchronization construct from one or more associated synchronization constructs, each associated synchronization construct being associated with an object, determining whether each criterion in a set of association termination criteria is satisfied, wherein said set of association termination criterion indicates criteria for terminating associations between objects and synchronization constructs, and in response to determining that each criterion in the set of association termination criteria is satisfied, terminating the association between said selected synchronization construct and said object associated with said selected synchronization construct.
Claim 37
Dependent Claim 35 words
The sequences of instructions of claim 28 , wherein the set of collection enabling conditions includes the number of synchronization constructs not associated with any object being less than or equal to a threshold number.

References Cited (Backward Citations)

US5684984A Cited
US5701470A Cited
US5797004A Cited
US5706515A Cited
US5752249A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-02-04 2005-08-06 2006-02-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-02-04 2009-08-06 2010-02-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-02-04 2013-08-06 2014-02-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag