Evaluating a Multithreaded Runtime System for Concurrent Object-Oriented Languages

  • Antonio J. Nebro
  • Ernesto Pimentel
  • José M. Troya
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1505)

Abstract

Traditionally, the use of multithreading capabilities of operating systems has been considered inadequate for implementing concurrent object-oriented languages because of their inefficiency and non-portability. However, current operating systems encourage programmers to use threads to manage concurrent activities, since they offer a number of advantages such as multiprocessing capabilities and thread communication through shared memory. To explore these issues, we have developed Lince, a multithreaded runtime system for concurrent objects. We describe Lince and its design philosophy and analyze its performance. The use of popular threads packages allows us to simplify system design and enhance portability. The overhead of using threads for implementing concurrent objects is negligible for medium and coarse grain applications, although it can be too expensive for those requiring many fine-grained objects.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    K. Taura, S. Matsuoka, and A. Yonezawa. An efficient implementation scheme of concurrent oriented-languages on stock multicomputers. In 4th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, May 1993.Google Scholar
  2. [2]
    Andrew A. Chien, V. Karamcheti, and J. Plevyak. The Concert system-compiler and runtime support for efficient fine-grained concurrent object-oriented programs. Technical report, Department of Computer Science, University of Illinois, Urbana, Illinois, June 1993.Google Scholar
  3. [3]
    Antonio J. Nebro, Ernesto Pimentel, and José. M. Troya. Integrating an entry consistency memory model and concurrent object-oriented programming. In Christian Lengauer, Martin Griebl, and Sergei Gorlatch, editors, Third International Euro-Par Conference, volume 1300 of Lecture Notes in Computer Science. Springer-Verlag, August 1997. Passau, Germany.Google Scholar
  4. [4]
    Antonio J. Nebro, Ernesto Pimentel, and J. M. Troya. Distributed objects: An approach based on replication and migration. Accepted to be published in the Journal of Object Oriented Programming (JOOP), 1998.Google Scholar
  5. [5]
    Sun Microsystems, Inc. Multithreaded Implementations and Comparison: A White Paper, 1996.Google Scholar
  6. [6]
    Gul Agha. ACTORS: A Model of Concurrent Computation in Distributed Systems. The MIT Press, 1986.Google Scholar
  7. [7]
    A. Yonezawa. ABCL: An Object-Oriented Concurrent System. MIT Press, 1990.Google Scholar
  8. [8]
    C. Houck and G. Agha. Hal: A high level actor language and its distributed implementation. In 21st. International Conference on Parallel Processing, August 1992. St. Charles, IL.Google Scholar
  9. [9]
    Denis Caromel. Towards a method of object-oriented concurrent programming. Communications of the ACM, 36(9), September 1993.Google Scholar
  10. [10]
    Bertrand Meyer. Systematic concurrent object-oriented programming. Communications of the ACM, 36(9), September 1993.Google Scholar
  11. [11]
    L. V. Kale and S. Krishnan. Charm++: A portable concurrent object-oriented language. In OOPSLA’93, 1993.Google Scholar
  12. [12]
    Brian B Bershad and M J Zekauskas. Midway: Shared memory parallel programming with entry consistency for distributed memory multiprocessors. Technical Report CMU-CS-91-70-170, Carnegie-Mellon University, 1991.Google Scholar
  13. [13]
    B. Stroustrup. The C++ Programming Language. Second Edition. Addison-Wesley, Summer 1991.Google Scholar
  14. [14]
    D. R. Butenhof. Programming with POSIX Threads. Addison-Wesley, 1997.Google Scholar
  15. [15]
    Sun Microsystems, Inc. Multithreaded Programming Guide. Solaris 2.6, 1997.Google Scholar
  16. [16]
    T. Q. Phan and P. K. Garg. Multithreaded Programming with Windows NT. Prentice-Hall, 1996.Google Scholar
  17. [17]
    J. Plevyak, X. Zhang, and A. A. Chien. Obtaining sequential efficiency for concurrent object-oriented languages. In 22nd Symposium on Principles of Programming Languages (POPL’95), 1995. San Francisco, California.Google Scholar
  18. [18]
    K. Taura and A. Yonezawa. Fine-grain multithreading with minimal compiler support—a cost effective approach to implementing efficient multithreading languages. In ACM SIGPLAN’97 Conference on Programming Language Design and Implementation (PLDI), June 1997. Las Vegas, Nevada.Google Scholar
  19. [19]
    A. S. Grimshaw, J. B. Weissman, and W. T. Strayer. Portable run-time support for dynamic object-oriented parallel processing. ACM Transactions on Computer Systems, 14(2), May 1996.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Antonio J. Nebro
    • 1
  • Ernesto Pimentel
    • 1
  • José M. Troya
    • 1
  1. 1.Universidad de MálagaMálagaSpain

Personalised recommendations