Skip to main content

A Framework for Specializing Threads in Concurrent Run-Time Systems

  • Conference paper
  • First Online:
Languages, Compilers, and Run-Time Systems for Scalable Computers (LCR 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1511))

  • 248 Accesses

Abstract

Many thread packages support only a limited number target configurations and are generally inflexible with respect to scheduling. Even configurable thread packages distance core thread operations and thread state from client code. In addition, most thread implementations duplicate some of the functionality found in concurrent language run-time systems. To address these limitations, we have developed the Mezcla thread framework. Unlike conventional thread packages, Mezcla enables a language implementor to generate specialized, light-weight thread systems based on the requirements of the run-time system and the functionality of the target platform. This paper presents several current techniques for implementing threads in concurrent run-time systems and evaluates their effectiveness. We then describe our experience with threads in the SR concurrent programming language. Finally, we present the design and implementation of the Mezcla thread framework with some preliminary performance results.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. T. E. Anderson, B. N. Bershad, E. D. Lazowska, and H. M. Levy. Scheduler activations: Effective kernel support for the user-level management of parallelism. ACM Transactions on Computer Systems, 10(1):53–70, February 1992.

    Google Scholar 

  2. G. R. Andrews and R. A. Olsson. The SR Programming Language: Concurrency in Practice. The Benjamin/Cummings Publishing Co., Redwood City, California, 1993.

    MATH  Google Scholar 

  3. M. S. Atkins and R. A. Olsson. Performance of multi-tasking and synchronization mechanisms in the programming language SR. Software — Practice and Experience, 18(9):879–895, September 1988.

    Google Scholar 

  4. G. D. Benson and R. A. Olsson. A portable run-time system for the SR concurrent programming language. In Proceedings of the Workshop on Runtime Systems for Parallel Programming, pages 21–30, Geneva, Switzerland, April 1997. Held in conjunction with the 11th International Parallel Processing Symposium (IPPS’97).

    Google Scholar 

  5. G.D. Benson and R.A. Olsson. The Design of Microkernel Support for the SR Concurrent Programming Language, chapter 17, pages 227–240. Languages, Compilers, and Run-Time Systems for Scalable Computers. Kluwer Academic Publishing, Boston, MA, 1996. B. K. Szymanski and B. Sinharoy (editors).

    Google Scholar 

  6. B. Bershad, E. Lazowska, and H. Levy. Presto: A system for object oriented parallel programming. Software: Practice and Experience, 18(8), August 1988.

    Google Scholar 

  7. R. Bhoedjang, T. Rühl, R. Hofman, K. Langendoen, H. Bal, and F. Kaashoek. Panda: A portable platform to support parallel programming languages. In Symposium on Experience with Distributed and Multiprocessor Systems IV, pages 213–226, San Diego, California, September 1993. USENIX.

    Google Scholar 

  8. E. Cooper and R. Draves. C threads. Technical Report CMU-CS-88-154, Carnegie Mellon University, Department of Computer Science, 1988.

    Google Scholar 

  9. B. Ford, G. Back, G. Benson, J. Lepreau, O. Shivers, and A. Lin. The Flux OS Toolkit: A substrate for kernel and language research. In Proceedings of the Sixteenth Symposium on Operating Systems Principles, pages 38–52, St. Malo, France, October 1997.

    Google Scholar 

  10. I. Foster, C. Kesselman, and S. Tuecke. The Nexus approach to integrating multithreading and communication. Journal of Parallel and Distributed Computing, 37(1):70–82, August 1996.

    Google Scholar 

  11. J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison-Wesley, 1996.

    Google Scholar 

  12. M. Haines. On designing lightweight threads for substrate software. In The Proceeding of the Annual Technical Conference on UNIX and Advanced Computing Systems, Anaheim, California, January 1997. USENIX.

    Google Scholar 

  13. L. V. Kale, Milind Bhandarkar, Narain Jagathesan, Sanjeev Krishnan, and Joshua Yelon. Converse: An interoperable framework for parallel programming. In Proceedings of the 10th International Parallel Processing Symposium, pages 212–217, April 1996.

    Google Scholar 

  14. D. Keppel. Tools and techniques for building fast portable threads package. Technical Report UW-CSE-93-05-06, University of Washington, Department of Computer Science and Engineering, May 1993.

    Google Scholar 

  15. X. Leroy. LinuxThreads, 1996. http://sunsite.unc.edu/pub/Linux/docs/faqs/Threads-FAQ/html/.

  16. B. D. Marsh, M. L. Scott, T. J. LeBlanc, and E. P. Markatos. First-class userlevel threads. In Proceedings of the Thirteenth Symposium on Operating Systems Principles, pages 110–121, Pacific Grove, CA, October 1991.

    Google Scholar 

  17. B. Mukherjee. A portable and configurable threads package. Technical Report GIT-ICS-91/02, College of Computing, Georgia Institute of Technology, Atlanta, Georgia, 1991. Also appears in Proceedings of Sun User’s Group Technical Conference, pages 101–112.

    Google Scholar 

  18. B. Mukherjee, G. Eisenhauer, and K. Ghosh. A machine independent interface for lightweight threads. Technical Report GIT-CC-93/53, College of Computing, Georgia Institute of Technology, Atlanta, Georgia, 1991.

    Google Scholar 

  19. G. Nelson, editor. Systems Programming with Modula-3. Prentice Hall, Englewood Cliffs, New Jersey, 1991.

    Google Scholar 

  20. M. L. Powell, S. R. Kleiman, S. Barton, D. Shah, D. Stein, and M. Weeks. Su-nOS multi-thread architecture. In Proceedings of the Winter USENIX Conference, Dallas, TX, 1991.

    Google Scholar 

  21. C. Provenzano. MIT PThreads, 1996. http://www.mit.edu:8001/people/proven/pthreads.html.

  22. T. Rühl, H. Bal, G. D. Benson, R. Bhoedjang, and K. G. Langendoen. Experience with a portability layer for implementing parallel programming systems. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, pages 1477–1488, Sunnyvale, CA, August 1996.

    Google Scholar 

  23. E. G. Sirer, P. Pardyak, and B. N. Bershad. Strands: An efficient and extensible thread management architecture. Technical Report UW-CSE-97-09-01, University of Washington, Department of Computer Science and Engineering, 1997.

    Google Scholar 

  24. Gregg Townsend and Dave Bakken. Porting the SR Programming Language. Department of Computer Science, University of Arizona, 1994. From the SR distribution: http://www.cs.arizona.edu/sr/.

  25. Tim Wilkinson. Kaffe-a free virtual machine to run java code. http://www.kaffe.org/.

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Benson, G.D., Olsson, R.A. (1998). A Framework for Specializing Threads in Concurrent Run-Time Systems. In: O’Hallaron, D.R. (eds) Languages, Compilers, and Run-Time Systems for Scalable Computers. LCR 1998. Lecture Notes in Computer Science, vol 1511. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49530-4_10

Download citation

  • DOI: https://doi.org/10.1007/3-540-49530-4_10

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-65172-7

  • Online ISBN: 978-3-540-49530-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics