Views
3 years ago

QRL-OpLocks-BiasedLocking

QRL-OpLocks-BiasedLocking

Quickly Reacquirable Locks ∗Dave Dice Mark MoirSun Microsystem Laboratories1 Network Drive, UBUR02-311Burlington, MA 01803William Scherer IIIComputer Science DepartmentUniversity of RochesterRochester, NY 14620AbstractWe propose a new class of quickly reacquirable mutual exclusion locks (QRLs) that are optimized forthe case in which a single process repeatedly acquires and releases the lock and in which no other processattempts to acquire the same lock. This case is very common in an important class of applications thatincludes such systems as Java TM Virtual Machines.When the first holder of a QRL first acquires the lock, it biases the lock to itself. This requires theprocess to execute a one-time compare-and-swap instruction. Thereafter, this bias holder process canreacquire and release the lock via a highly optimized ultra fast path. If a second process attempts toacquire a QRL, then the lock reverts to a “default” lock. We demonstrate generalized techniques thatenable use of any standard mutual exclusion lock as the default lock. Finally, we discuss sample techniquesto allow reinitialization of a QRL lock so that it can be rebiased. Such techniques are particularly valuablein the case of migratory data access patterns.Although relaxed consistency models would typically require the use of expensive synchronizationmechanisms such as memory barriers or read-modify-write instructions, we demonstrate a novel collocationtechnique that constrains reordering of loads and stores in the TSO (Total Store Order) memorymodel without their use. In our strongest result, we use this technique to create a highly optimized classof QRLs.1 Introduction1.1 Mutual ExclusionThe mutual exclusion problem has a long history. Beginning with Dijkstra’s publication of Dekker’s firstcorrect mutual exclusion lock in 1965 [4], and continuing through to the present time, mutual exclusion lockshave been the focus of hundreds if not thousands of research papers and other technical writings. Becausethe problem is so pervasive, it ranks among the most well-known in all of computer science.The mutual exclusion problem arises in a domain wherein each participating process executes, in strictcyclic order, program regions labeled remainder, acquire, critical section, and release. A solution to themutual exclusion problem consists of code for the acquire() and release() operations. These operationsare required to guarantee that once a process successfully completes an acquire() operation, no other processwill complete an acquire() operation before the first process invokes a release() operation. Solutions tothe mutual exclusion problem are often referred to as locks.1.2 Performance Characterization of LocksAn important advance in the study of lock performance is due to Lamport [6]. In his fast mutual exclusionalgorithm, a fast path guarantees that the lock and unlock operations complete in time independent of thenumber of potential contending processes in the important case where a single process contends for the lockin isolation. Locks that share this property are called fast locks, and most important locks used in productionsoftware are fast locks.∗ Contact email: Dave.Dice@sun.com or Mark.Moir@sun.com1

Exclusion_decisionsv5.0EXT
When Are We Self-Deceived?* - Humana.Mente
Revocation of a Family Trust without the ... - Lewitt Hackman
Criminal casework Exclusion decisions and exclusion orders
Form 3E Application to Revoke Exclusion Direction - Office of Liquor ...
DB2 9 Fundamentals exam 730 prep, Part 6: Data concurrency - IBM