Skip to main content

Panda — Supporting Distributed Programming in C++

  • Conference paper
  • First Online:
ECOOP’ 93 — Object-Oriented Programming (ECOOP 1993)

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

Included in the following conference series:

Abstract

Panda is a run-time package based on a very small operating system kernel which supports distributed applications written in C++. It provides powerful abstractions such as very efficient user-level threads, a uniform global address space, object and thread mobility, garbage collection, and persistent objects. The paper discusses the design rationales underlying the Panda system. The fundamental features of Panda are surveyed, and their implementation in the current prototype environment is outlined.

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

Access this chapter

Subscribe and save

Springer+ Basic
¥17,985 /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
JPY 3498
Price includes VAT (Japan)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
JPY 5719
Price includes VAT (Japan)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
JPY 7149
Price includes VAT (Japan)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

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. M. Ahamad, P. Dasgupta, and R.J. Leblanc, Jr. Fault-tolerant Atomic Computations in an Object-Based Distributed System. Distributed Computing, Vol. 4, pp. 69–80, 1990.

    Article  MATH  Google Scholar 

  2. P.H.M. America and F. van der Linden. A Parallel Object-Oriented Language with Inheritance and Subtyping. Proc. of European Conference on Object-Oriented Programming and ACM Conference on Object-Oriented Programming: Systems, Languages, and Applications (Ottawa, Canada, Oct. 21–25), ACM, New York, pp. 161–168, 1990.

    Chapter  Google Scholar 

  3. R. Ananthanarayanan et al. Experiences in Integrating Distributed Shared Memory With Virtual Memory Management. Technical Report GIT-CC-90/40, Georgia Institute of Technology, College of Computing, Atlanta, GA, 1990.

    Google Scholar 

  4. T.E. Anderson, E.D. Lazowska, and H. Levy. The Performance Implications of Thread Management Alternatives for Shared-Memory Multiprocessors. IEEE Trans. Comput. 38,12 (Dec), pp. 1631–1644, 1989.

    Article  Google Scholar 

  5. T.E. Anderson, H.M. Levy, B.N. Bershad, and E.D. Lazowska. The Interaction of Architecture and Operating System Design. Proc. ACM SIGOPS’ 91, 1991.

    Google Scholar 

  6. T.E. Anderson, B.N. Bershad, E.D. Lazowska, H.M. Levy. Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism. ACM Transactions on Computer Systems, Vol. 10, No. 1, Feb. 1992.

    Google Scholar 

  7. H. Assenmacher. The PANDA Run-time Package. Technical Report, Department of Computer Science, University of Kaiserslautern, Germany, 1992.

    Google Scholar 

  8. H.E. Bal, M.F. Kaashoek, and A. S. Tanenbaum. Orca: A Language for Parallel Programming of Distributed Systems. IEEE Trans. Softw. Eng. 18(3), pp. 190–205, March 1992.

    Article  Google Scholar 

  9. J.K. Bennet, J.B. Carter, W. Zwaenepoel. Adaptive Software Cache Management for Distributed Shared Memory Architecture. Proc. 17th Annual Int. Symposium on Computer Architecture, Seattle, Washington, pp. 125–134, May 1990.

    Google Scholar 

  10. B.N. Bershad, E.D. Lazowska, H.M. Levy, and D. Wagner. An Open Environment for Building Parallel Programming Systems. Proc. of the ACM SIPLAN PPEALS-Parallel Programming: Experience with Applications, Languages, and Systems, (July 19–21), pp. 1–9, July 1988.

    Google Scholar 

  11. D.I. Bevan. An Efficient Reference Counting Solution to the Distributed Garbage Collection Problem. Parallel Computing 9, pp. 179–192, 1989.

    Article  MATH  Google Scholar 

  12. A.D. Birrell and B.J. Nelson. Implementing Remote Procedure Calls. ACM Transactions on Computer Systems, 2(1), Feb. 1984.

    Google Scholar 

  13. P. Buhler. The COIN Model for Concurrent Computation and its Implementation. Microprocessing and Microprogramming 30, No. 1–5, North Holland, pp. 577–584, 1990.

    Article  Google Scholar 

  14. P.A. Buhr and R.A. Stroobosscher. μC++ Annotated Reference Manual. University of Waterloo, Canada, Aug. 1992.

    Google Scholar 

  15. J.S. Chase, F.G. Amador, E.D. Lazowska, H.M. Levy, and R.J. Littlefield. The Amber System: Parallel Programming on a Network of Multiprocessors. Proc. of the 12th ACM Symposium on Operating Systems Principles, pp. 147–158, 1989.

    Google Scholar 

  16. J.S. Chase et al. How to Use a 64-Bit Virtual Address Space. Technical Report 92-03-02, Department of Computer Science and Engineering, University of Washington, Seattle, WA, 1992

    Google Scholar 

  17. J.S. Chase et al. Lightweight Shared Objects in a 64-Bit Operating System. Technical Report 92-03-09, Department of Computer Science and Engineering, University of Washington, Seattle, WA, 1992.

    Google Scholar 

  18. P. Dasgupta, R.J. LeBlanc, M. Ahamad, and U. Ramachandran. The Clouds Distributed Operating System. IEEE Computer, pp. 34–44, Nov. 1991

    Google Scholar 

  19. D. Detlefs. Garbage Collection and Run-time Typing as a C++ Library. Proc. USENIX C++ Conference, Portland, Oregon, Aug. 1992.

    Google Scholar 

  20. R.P. Draves, B.N. Bershad, R.F. Rashid, and R.W. Dean. Using Continuations to Implement Thread Management and Communication in Operating Systems. Proc. of the 13th ACM Symposium on Operating Systems Principles, Oct. 1991.

    Google Scholar 

  21. D.R. Edelson. Dynamic Storage Reclamation in C++. Technical Report UCSC-CRL-90-19, University of California at Santa Cruz, CA, June 1990.

    Google Scholar 

  22. D.R. Edelson. Smart Pointers: They’re Smart, but They’re Not Pointers. Proc. USENIX C++ Conference, Portland, Oregon, pp. 1–19, Aug. 1992.

    Google Scholar 

  23. M. Ellis and B. Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, 1990.

    Google Scholar 

  24. J.E. Faust and H.M. Levy. The Performance of an Object-Oriented Thread Package. Proc. of European Conference on Object-Oriented Programming and ACM Conference on Object-Oriented Programming: Systems, Languages, and Applications (Ottawa, Canada, Oct. 21–25), ACM, New York, pp. 278–288, Oct. 1990.

    Chapter  Google Scholar 

  25. W. E. Garrett, R. Bianchini, L. Kontothanassis, R.A. McCallum, J. Thomas, R. Wisniewski, and M.L. Scott. Dynamic Sharing and Backward Compatibility on 64-Bit Machines. TR 418, University of Rochester, Computer Science Department, Rochester, NY, April 1992.

    Google Scholar 

  26. N.H. Gehani and W.D. Roome. Concurrent C++: Concurrent Programming with Class(es). Software — Practice and Experience 18(12), pp. 1157–1177, Dec. 1988.

    Article  MATH  Google Scholar 

  27. S. Habert, L. Mosseri, and V. Abrossimov. Cool: Kernel Support for Object-Oriented Environments. Proc. of European Conference on Object-Oriented Programming and ACM Conference on Object-Oriented Programming: Systems, Languages, and Applications (Ottawa, Canada, Oct. 21–25), ACM, New York, pp. 269–277, Oct. 1990.

    Chapter  Google Scholar 

  28. B. Hayes. Using Key Object Opportunism to Collect Old Objects. Proc. OOPSLA’91, Phoenix, Arizona, Oct. 1991.

    Google Scholar 

  29. E. Jul, H. Levy, N. Hutchinson, and A. Black. Fine-grained Mobility in the Emerald System. ACM Trans. Comput. Syst. 6(1), pp. 109–133, Feb. 1988.

    Article  Google Scholar 

  30. D. Kafura and D. Washabaugh. Garbage Collection of Actors. Proc. ECOOP/OOPSLA’90, pp. 126–134, Oct. 1990.

    Google Scholar 

  31. A. Karshmer and J. Nehmer (eds.). Opening Systems of the 90s and Beyond. LNCS 563, Springer-Verlag, 1991.

    Google Scholar 

  32. C. Lamb, G. Landis, J. Orenstein, D. Weinreb. The Objectstore Database System. Communications of the ACM, Vol. 34, No. 10, pp. 50–63, Oct. 1991.

    Article  Google Scholar 

  33. B. Liskov. Distributed Programming in ARGUS. Comm, ACM, Vol. 31, No. 3, pp. 300–312, March 1988.

    Article  MathSciNet  Google Scholar 

  34. S.E. Lucco. Parallel Programming in a Virtual Object Space. Proc. of ACM Conference on Object-Oriented Programming: Systems, Languages, and Applications (Orlando, Fla., Oct. 4–8). ACM, New York, pp. 26–34, Oct. 1987.

    Google Scholar 

  35. B. D. Marsh, M.L. Scott, T.J. LeBlanc, and E.P. Markatos. First-Class User-Level Threads. Proc. of the 13th Symp. on Operating Systems Principles, Pacific Grove (California), pp. 110–121, Oct. 1991.

    Google Scholar 

  36. O.M. Nierstrasz and M. Papathomas. Viewing Objects as Patterns of Communicating Agents. Proc. of European Conference on Object-Oriented Programming and ACM Conference on Object-Oriented Programming: Systems, Languages, and Applications (Ottawa, Canada, Oct. 21–25), ACM, New York, pp. 38–42, 1990.

    Chapter  Google Scholar 

  37. Nill Nitzberg and Virginia Lo. Distributed Shared Memory: A Survey of Issues and Algorithms. IEEE Computer, pp. 52–60, Aug. 1991.

    Google Scholar 

  38. O. Deux et al. The O 2 System. ACM Communications of the ACM, Vol. 34, No. 10, pp. 34–48, Oct., 1991.

    Article  Google Scholar 

  39. J. Piquer. Indirect Reference Counting: A Distributed Garbage Collection Algorithm. In: LNCS 505, E.H.L. Aarts, J. van Leeuwen, M. Rem (eds.), Springer-Verlag, pp. 150–165, 1991.

    Google Scholar 

  40. M. Rudalics. Multiprocessor List Memory Management. Technical Report RISC-88-87.0, Research Institute for Symbolic Computation, J. Kepler University, Linz, Austria, 1988.

    Google Scholar 

  41. H. Saleh and P. Gautron. A Concurrency Control Mechanism for C++ Objects. Proc. of the ECOOP’ 91 Workshop on Object-Based Concurrent Computing (Geneva, Switzerland, July 15–16), LNCS 612, Springer-Verlag, pp. 95–210, 1991.

    Google Scholar 

  42. R. Schwarz. Language-based Garbage Collection in the PANDA System. Internal Report, Department of Computer Science, University of Kaiserslautern, Germany, 1992.

    Google Scholar 

  43. R. Sharma and M. L. Soffa. Parallel Generational Garbage Collection. Proc. OOPSLA’91, Phoenix, Arizona, Oct. 1991.

    Google Scholar 

  44. M. Shapiro. Structure and Encapsulation in Distributed Systems: The Proxy Principle. Proc. 6th Int. Conference on Distributed Computer Systems, pp. 198–204, Cambridge, MA, May 1986.

    Google Scholar 

  45. S.K. Shrivastava, G.N. Dixon, G.D. Parrington. An Overview of the ARJUNA Distributed Programming System. IEEE Software, pp. 66–73, Jan. 1991.

    Google Scholar 

  46. B. Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, MA, 1986.

    MATH  Google Scholar 

  47. D. Wybranietz and P. Buhler. The LADY Programming Environment for Distributed Operating Systems. Proc. of the PARLE’89 Conference, Eindhoven, Holland, Juni 1989. Springer-Verlag, LNCS 365, pp. 100–117,1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Assenmacher, H., Breitbach, T., Buhler, P., Hübsch, V., Schwarz, R. (1993). Panda — Supporting Distributed Programming in C++. In: Nierstrasz, O.M. (eds) ECOOP’ 93 — Object-Oriented Programming. ECOOP 1993. Lecture Notes in Computer Science, vol 707. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47910-4_19

Download citation

  • DOI: https://doi.org/10.1007/3-540-47910-4_19

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57120-9

  • Online ISBN: 978-3-540-47910-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics