The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
May. 22, 2001
Filed:
Nov. 19, 1997
Michael Wayne Brown, Georgetown, TX (US);
Michael Thomas Collins, Austin, TX (US);
Weiming Gu, Austin, TX (US);
Paul Jerome Kilpatrick, Austin, TX (US);
Kelvin Roderick Lawrence, Round Rock, TX (US);
International Business Machines Corporation, Armonk, NY (US);
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.