Scalable Spin Locks for Multiprogrammed Systems
Abstract
Synchronization primitives for large-scale multiprocessors need to provide low latency and low contention to achieve good performance. Queue-based locks (implemented in software with fetch and Phi instructions) can greatly reduce contention and improve overall performance by arranging for processors to spin only local locations. Unfortunately, queued locks exhibit poor behavior in the presence of multiprogramming: a process near the end of the queue, in addition to waiting for any process ahead of it in the queue. To solve this problem, we present two queue-based locks that recover from in queue preemption. The first employs the kernel interface of the NYU Symunix project. The second employs an extended interface that shares information in both directions across the user-kernel boundary, resulting in simpler code and better performance. Experiments with these locks in both real and synthetic applications on SGI and KSR multiprocessors confirm the feasibility of high-performance software locks on systems that are both very large and multiprogrammed
Document Details
- Document Type
- Technical Report
- Publication Date
- Apr 01, 1993
- Accession Number
- ADA265007
Entities
People
- Leonidas I. Kontothanassis
- Michael L. Scott
- Robert W. Wisniewski
Organizations
- University of Rochester