This Article 
 Bibliographic References 
 Add to: 
A Prioritized Multiprocessor Spin Lock
September 1997 (vol. 8 no. 9)
pp. 926-933

Abstract—In this paper, we present the PR lock, a prioritized spin lock mutual exclusion algorithm. The PR lock is a contention-free spin lock, in which blocked processes spin on locally stored or cached variables. In contrast to previous work on prioritized spin locks, our algorithm maintains a pointer to the lock holder. As a result, our spin lock can support operations on the lock holder (e.g., for abort ceiling protocols). Unlike previous algorithms, all work to maintain a priority queue is done while a process acquires a lock when it is blocked anyway. Releasing a lock is a constant time operation. We present simulation results that demonstrate the prioritized acquisition of locks, and compare the performance of the PR lock against that of the best alternative prioritized spin lock.

[1] T.E. Anderson,“The performance of spin lock alternatives for shared memory multiprocessors,” IEEE Trans. Parallel and Distributed Systems, vol. 1, no. 1, pp. 6-16, 1990.
[2] G.R. Andrews, Concurrent Programming: Principles and Practice. The Benjamin/Cummings Publishing Co. Inc., 1991.
[3] E.A. Brewer, Chrysanthos, and N. Dellarocas, "PROTEUS User Documentation," technical report, MIT Laboratory for Computer Science, 1991.
[4] T.S. Craig, "Queuing Spin Lock Alternatives to Support Timing Predictability," Proc. Real-Time Systems Symp., pp. 148-157, 1993.
[5] R.R. Glenn,D.V. Pryor,J.M. Conroy,, and T. Johnson,“A bistability throughput phenomenon in a shared-memory mimd machine,” J. Supercomputing, vol. 7, pp. 357-375, 1993.
[6] A. Goscinski, "Two Algorithms for Mutual Exclusion in Real-Time Distributed Computer Systems," J. Parallel and Distributed Computing, vol. 9, pp. 77-82, 1990.
[7] K. Harathi and T. Johnson, "A Priority Synchronization Algorithm for Multiprocessors," Technical Report tr93.005, UF, 1993. Available at
[8] T. Johnson and R. Newman-Wolfe, "A Comparison of Fast and Low Overhead Distributed Priority Locks," J. Parallel and Distributed Computing, vol. 32, no. 1, pp. 74-89, 1996. Also available at
[9] C.P. Kruskal, L. Rudolph, and M. Snir, "Efficient Synchronization on Multiprocessors with Shared Memory," Proc. Fifth ACM Symp. Principles of Distributed Computing, pp. 218-228, 1986.
[10] E.P. Markatos and T.J. LeBlanc, "Multiprocessor Synchronization Primitive with Priorities," Proc. IEEE Workshop Real-Time Operating Systems and Software, pp. 148-157, 1991.
[11] J. M. Mellor-Crummey and M. L. Scott,“Algorithms for scalable synchronization on shared-memory multiprocessors,”ACM Trans. Comput. Syst., vol, 9, no. 1, pp. 21–65, Feb. 1991.
[12] L.D. Molesky, C. Shen, and G. Zlokapa, "Predictable Synchronization Mechanisms for Real-Time Systems," Real-Time Systems, vol. 2, no. 3, pp. 163-180, 1990.
[13] Motorola, M68000 family programmer's reference manual.
[14] S. Prakash, Y.H. Lee, and T. Johnson, "A Non-Blocking Algorithm for Shared Queues Using Compare-and-Swap," Proc. Int'l Conf. Parallel Processing, pp. II68-II75, 1991.
[15] R. Rajkumar, "Real-Time Synchronization Protocols for Shared Memory Multiprocessors," Proc. IEEE 10th Int'l Conf. Distributed Computing, pp. 116-123, 1990.
[16] L. Sha, R. Rajkuma, and J.P. Lehoczky, "Priority Inheritance Protocols: An Approach to Real-Time Synchronization," IEEE Trans. Computers, vol. 39, no. 9, pp. 1,175-1,185, Sept. 1990.
[17] L.C. Shu, M. Young, and R. Rajkumar, "An Abort Ceiling Protocol for Controlling Priority Inversion," Proc. Int'l Workshop Real-Time Computing Systems and Applications, 1994.
[18] J.A. Stankovic and K. Ramamritham, Tutorial Hard Real-Time Systems. IEEE CS Press, 1986.
[19] H. Takada and K. Sakamura, "Controlling Priority Inversion Using Abortions," Proc. Second Int'l Workshop Real-Time Computing Systems and Applications, 1994.
[20] H. Takada and K. Sakamura, "Real-Time Scalability of Nested Spin Locks," Proc. Second Int'l Workshop Real-Time Computing Systems and Applications, 1995.
[21] H. Takada and K. Sakamura, "Towards a Scalable Real-Time Kernel for Function-Distributed Multiprocessors," Proc. 20th IFAC/IFIP Workshop Real-Time Programming, 1995.
[22] J. Turek,D. Shasha,, and S. Prakash,“Locking without blocking: Making lock based concurrent data structure algorithms nonblocking,” Proc. ACM Symp. Principles of Database Systems, pp. 212-222, 1992.

Index Terms:
Mutual exclusion, parallel processing, real-time system, spin lock, priority queue.
Theodore Johnson, Krishna Harathi, "A Prioritized Multiprocessor Spin Lock," IEEE Transactions on Parallel and Distributed Systems, vol. 8, no. 9, pp. 926-933, Sept. 1997, doi:10.1109/71.615438
Usage of this product signifies your acceptance of the Terms of Use.