The Repeat Offender Problem: A Mechanism for Supporting Dynamic-Sized, Lock-Free Data Structures

  • Maurice Herlihy
  • Victor Luchangco
  • Mark Moir
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2508)

Abstract

We define the Repeat Offender Problem (ROP). Elsewhere, we have presented the first dynamic-sized, lock-free data structures that can free memory to any standard memory allocator—even after thread failures—without requiring special support from the operating system, the memory allocator, or the hardware. These results depend on a solution to the ROP problem. Here we present the first solution to the ROP problem and its correctness proof. Our solution is implementable in most modern shared memory multiprocessors.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    J. Anderson and M. Moir. Using local-spin k-exclusion algorithms to improve wait-free object implementations. Distributed Computing, 11:1–20, 1997. A preliminary version appeared in Proceedings of the 13th Annual ACM Symposium on Principles of Distributed Computing, 1994, pp. 141–150.CrossRefGoogle Scholar
  2. 2.
    D. Detlefs, C. Flood, A. Garthwaite, P. Martin, N. Shavit, and G. Steele. Even better DCAS-based concurrent deques. In Proceedings of the 14th International Conference on Distributed Computing, pages 59–73, 2000.Google Scholar
  3. 3.
    D. Detlefs, P. Martin, M. Moir, and G. Steele. Lock-free reference counting. In Proceedings of the 20th Annual ACM Symposium on Principles of Distributed Computing, pages 190–199, 2001.Google Scholar
  4. 4.
    M. Greenwald. Non-Blocking Synchronization and System Design. PhD thesis, Stanford University Technical Report STAN-CS-TR-99-1624, Palo Alto, CA, August 1999.Google Scholar
  5. 5.
    T. Harris. A pragmatic implementation of non-blocking linked lists. In Proceedings of the 15th International Symposium on Distributed Computing, 2001. To appear.Google Scholar
  6. 6.
    M. Herlihy, V. Luchangco, P. Martin, and M. Moir. Dynamic-sized lock-free data structures. Technical Report TR-2002-110, Sun Microsystems Laboratories, 2002.Google Scholar
  7. 7.
    M. Herlihy, V. Luchangco, and M. Moir. The repeat offender problem: A mechanism for supporting lock-free dynamic-sized data structures. Technical Report TR-2002-112, Sun Microsystems Laboratories, 2002.Google Scholar
  8. 8.
    L. Lamport. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers, C-28(9):241–248, September 1979.Google Scholar
  9. 9.
    N. Lynch and M. Tuttle. An introduction to input/output automata. Technical Report CWI-Quarterly, 2(3), Centrum voor Wiskunde en Informatica, Amsterdam, The Netherlands, 1989.Google Scholar
  10. 10.
    M. Michael. Safe memory reclamation for dynamic lock-free objects using atomic reads and writes. In Proceedings of the 21st Annual ACM Symposium on the Principles of Distributed Computing, 2002.Google Scholar
  11. 11.
    M. Michael and M. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In Proceedings of the 15th Annual ACM Symposium on the Principles of Distributed Computing, pages 267–276, 1996.Google Scholar
  12. 12.
    M. Michael and M. Scott. Nonblocking algorithms and preemption-safe locking on multiprogrammed shared memory multiprocessors. Journal of Parallel and Distributed Computing, 51(1):1–26, 1998.MATHCrossRefGoogle Scholar
  13. 13.
    M. Moir. Practical implementations of non-blocking synchronization primitives. In Proceedings of the 16th Annual ACM Symposium on Principles of Distributed Computing, pages 219–228, 1997.Google Scholar
  14. 14.
    R. Treiber. Systems programming: Coping with parallelism. Technical Report RJ5118, IBM Almaden Research Center, 1986.Google Scholar
  15. 15.
    J. Valois. Lock-free linked lists using compare-and-swap. In Proceedings of the 14th Annual ACM Symposium on Principles of Dsitributed Computing, pages 214–22, 1995. See http://www.cs.sunysb.edu~valois for errata.
  16. 16.
    D. Weaver and T. Germond. The SPARC Architecture Manual Version 9. PTR Prentice Hall, Englewood Cliffs, NJ 07632, USA, 1994.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Maurice Herlihy
    • 1
  • Victor Luchangco
    • 2
  • Mark Moir
    • 2
  1. 1.Computer Science DepartmentBrown UniversityProvidence
  2. 2.Sun Microsystems LaboratoriesBurlington

Personalised recommendations