skip to main content
10.1145/143365.143523acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
Article
Free Access

Fast mutual exclusion for uniprocessors

Published:01 September 1992Publication History

ABSTRACT

In this paper we describe restartable atomic sequences, an optimistic mechanism for implementing simple atomic operations (such as Test-And-Set) on a uniprocessor. A thread that is suspended within a restartable atomic sequence is resumed by the operating system at the beginning of the sequence, rather than at the point of suspension. This guarantees that the thread eventually executes the sequence atomically. A restartable atomic sequence has significantly less overhead than other software-based synchronization mechanisms, such as kernel emulation or software reservation. Consequently, it is an attractive alternative for use on uniprocessors that do no support atomic operations. Even on processors that do support atomic operations in hardware, restartable atomic sequences can have lower overhead.

We describe different implementations of restartable atomic sequences for the Mach 3.0 and Taos operating systems. These systems' thread management packages rely on atomic operations to implement higher-level mutual exclusion facilities. We show that improving the performance of low-level atomic operations, and therefore mutual exclusion mechanisms, improves application performance.

References

  1. Accetta et al 86.Accetta, M. J., Baron, R. V., Bolosky, W., Golub, D. B., Rashid, R. F., Tevanian, Jr., A., and Young, M. W. Mach: A New Kernel Foundation for UNIX Development. In Proceedings of the Summer 1986 USENL~ Conference, pages 93-113, July 1986.Google ScholarGoogle Scholar
  2. Anderson et al 89.Anderson, T., Lazowska, E., and Levy, H. The Performance Implications of Thread Management Alternatives for Shared-Memory Multiprocessors. IEEE Transactions on Computers, 38(12):1631-1644, December 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Anderson et al 91.Anderson, T., Levy, H., Bershad, B., and Lazowska, E. The interaction of Architecture and Operating System Design. In Proceedings o/the Fourth Symposium on Architectural Support for Programming Languages and Operating Systems (ASPLOS), April 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Anderson et al 92.Anderson, T. E., Bershad, B. N., Lazowska, E. D., and Levy, H. M. Scheduler Activations: Effective Kernel Support for the User- Level Management of Parallelism. ACM Transactions on Computer Systems, 9(1), February 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bershad et al 88.Bershad, B. N., Lazowska, E. D., and Levy, H. M. PRESTO: A System for Object- Oriented Parallel Programming. Software: Practice and Experience, 18(,8):713-732, August 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bershad et al 92.Bershad, B. N., Draves, R. P., and Forin, A. Using Microbenchmarks to Evaluate System Performance. Ill Proceedings of the hird Workshop on Workstation Operating Sysems, April 1992.Google ScholarGoogle ScholarCross RefCross Ref
  7. Birrell 91.Birrell, A. An Introduction to Programming with Threads. Prentice HM1, 1991.Google ScholarGoogle Scholar
  8. Bose et al 89.Bose, S., Clarke, E., Long, D., and Michaylov, S. Parthenon: A Parallel Theorem Prover for Non-Horn Clauses. In Proceedings o/ the Fourth Annual Symposium on Logic ,n Computer Science, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Cheriton 88.cheriton, D. R. The V Distributed System. Communications of the ACM, 31(3):314- 333, March 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Cooper & Draves 88.Cooper, E. C. and Draves, R. P. C threads. Technical Report CMU-CS-88-54, School of Computer Science, Carnegie Mellon University, February 1988.Google ScholarGoogle Scholar
  11. Dijkstra 68a.Dijkstra, E. W. The Structure of the "THE" Multiprogramming System. Communications o/ the ACM, 11(5), May 1968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Dijkstra 68b.Dijkstra, E. W. Cooperating Sequential Processes, pages 43-112. Academic Press, New York, 1968.Google ScholarGoogle Scholar
  13. Glew & Hwu 91.Glew, A. and Hwu, W. A Feature Taxonomy and Survey of Synchronization PrimL tire Implementations. Technical Report UILU- ENG-91-2211, Center for Reliable and High- Performance Computing, University of Illinois at Urbana-Champaign, February 1991.Google ScholarGoogle Scholar
  14. Golub et al 90.Golub, D., Dean, R., Forin, A., and Rashid, R. Unix as an Application Program. In Proceedings of the Summer 1990 USENIX Conference, pages 87-95, June 1990.Google ScholarGoogle Scholar
  15. Herlihy 91.Herlihy, M. Wait-free Synchronization. A CM Transactions on Programming Languages, 13(1), January 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Intel386 90.386 Programmer's Reference Manual. Intel, Mt. Prospect, IL, 1990.Google ScholarGoogle Scholar
  17. Intel860 89.i860 6d.bit Microprocessor Programmer's Re/- erence Manual. 1989.Google ScholarGoogle Scholar
  18. Kane 87.Kane, G. MIPS R2000 RiSC Architecture. Prentice Hall, Englewood Cliffs, N.J., 1987.Google ScholarGoogle Scholar
  19. Lamport 87.Lamport, L. A Fast MutuM Exclusion Algorithm. A CM Transactions on Computer Systems, 5(1):1-11, February 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Leonard 87.Leonard, T. VAX Architecture Reference Manual. Digital Equipment Corporation, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Moss & Kohler 87.Moss, J. and Kohler, W. Concurrency Features for the Trellis/Owl Language. In European Conference on Object-Oriented Programruing, June 1987. Appears in Springer-Verlag's Lecture Notes in Computer Science #276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Motorola 88100 88.MCS 88100 RISC Microprocessor User's Manual. Phoenix, AZ, 1988.Google ScholarGoogle Scholar
  23. Mullender et al 90.Mullender, S. J., van Rossum, G., Tanenbaum, A. S., van Renesse, R., and van Staveren, H. Amoeba: A Distributed Operating System for the 1990s. IEEE Computer Magazzne, 23(5):44-54, May 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Peterson 81.Peterson, G. Myths About the Mutual Exclusion Ploblem. Information Processing Letters, 12(1), June 1981.Google ScholarGoogle Scholar
  25. Rovner et al 85.Rovner, P., Levin, R., and Wick, J. On Extending Modula-2 for Building Large, Integrated Systems. Technical Report # 3, Digital Equipment Corporation's Systems Research Center, Palo Alto, California, January 1985.Google ScholarGoogle Scholar
  26. Rozier et al 88.Rozier, M., Abrossimov, V., Armand, F., Boule, I., Giend, M., Guillemont, M., Herrmann, F., Leonard, P., Langlois, S., and Neuhauser, W. The Chorus Distributed Operating System. Computing Systems, 1(4), 1988.Google ScholarGoogle Scholar
  27. Satyanaranyanyan et al 85.Satyanaranyanyan, M., Howard, J., Nichols, D., Sidebotham, R., and Spector, A. The ITC Distributed File System: Principles and Design. In Proceedings of the l Oth A CM Symposium on Operating Systems Principles, pages 35-50, December 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Thacker et al 88.Thacker, C. P., Stewart, L. C., and Satterthwaite, Jr., E. H. Firefly: A Multiprocessor Workstation. IEEE Transactions on Computers, 37(8):909-920, August 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Weiser et al 89.Weiser, M., Demers, A., and Hauser, C. The Portable Comlnon Runtime Approach to Interoperability. In Proceedings of the 12th A CM Symposzum on Operating Systems Principles, pages 114-122, December 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Fast mutual exclusion for uniprocessors

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    ASPLOS V: Proceedings of the fifth international conference on Architectural support for programming languages and operating systems
    September 1992
    308 pages
    ISBN:0897915348
    DOI:10.1145/143365

    Copyright © 1992 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 1 September 1992

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    Overall Acceptance Rate535of2,713submissions,20%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader