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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
G. R. Andrews and R. A. Olsson. The SR Programming Language: Concurrency in Practice. The Benjamin/Cummings Publishing Co., Redwood City, California, 1993.
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.
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).
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).
B. Bershad, E. Lazowska, and H. Levy. Presto: A system for object oriented parallel programming. Software: Practice and Experience, 18(8), August 1988.
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.
E. Cooper and R. Draves. C threads. Technical Report CMU-CS-88-154, Carnegie Mellon University, Department of Computer Science, 1988.
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.
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.
J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison-Wesley, 1996.
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.
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.
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.
X. Leroy. LinuxThreads, 1996. http://sunsite.unc.edu/pub/Linux/docs/faqs/Threads-FAQ/html/.
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.
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.
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.
G. Nelson, editor. Systems Programming with Modula-3. Prentice Hall, Englewood Cliffs, New Jersey, 1991.
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.
C. Provenzano. MIT PThreads, 1996. http://www.mit.edu:8001/people/proven/pthreads.html.
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.
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.
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/.
Tim Wilkinson. Kaffe-a free virtual machine to run java code. http://www.kaffe.org/.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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