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.
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
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.
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.
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.
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.
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.
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.
H. Assenmacher. The PANDA Run-time Package. Technical Report, Department of Computer Science, University of Kaiserslautern, Germany, 1992.
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.
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.
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.
D.I. Bevan. An Efficient Reference Counting Solution to the Distributed Garbage Collection Problem. Parallel Computing 9, pp. 179–192, 1989.
A.D. Birrell and B.J. Nelson. Implementing Remote Procedure Calls. ACM Transactions on Computer Systems, 2(1), Feb. 1984.
P. Buhler. The COIN Model for Concurrent Computation and its Implementation. Microprocessing and Microprogramming 30, No. 1–5, North Holland, pp. 577–584, 1990.
P.A. Buhr and R.A. Stroobosscher. μC++ Annotated Reference Manual. University of Waterloo, Canada, Aug. 1992.
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.
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
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.
P. Dasgupta, R.J. LeBlanc, M. Ahamad, and U. Ramachandran. The Clouds Distributed Operating System. IEEE Computer, pp. 34–44, Nov. 1991
D. Detlefs. Garbage Collection and Run-time Typing as a C++ Library. Proc. USENIX C++ Conference, Portland, Oregon, Aug. 1992.
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.
D.R. Edelson. Dynamic Storage Reclamation in C++. Technical Report UCSC-CRL-90-19, University of California at Santa Cruz, CA, June 1990.
D.R. Edelson. Smart Pointers: They’re Smart, but They’re Not Pointers. Proc. USENIX C++ Conference, Portland, Oregon, pp. 1–19, Aug. 1992.
M. Ellis and B. Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, 1990.
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.
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.
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.
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.
B. Hayes. Using Key Object Opportunism to Collect Old Objects. Proc. OOPSLA’91, Phoenix, Arizona, Oct. 1991.
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.
D. Kafura and D. Washabaugh. Garbage Collection of Actors. Proc. ECOOP/OOPSLA’90, pp. 126–134, Oct. 1990.
A. Karshmer and J. Nehmer (eds.). Opening Systems of the 90s and Beyond. LNCS 563, Springer-Verlag, 1991.
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.
B. Liskov. Distributed Programming in ARGUS. Comm, ACM, Vol. 31, No. 3, pp. 300–312, March 1988.
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.
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.
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.
Nill Nitzberg and Virginia Lo. Distributed Shared Memory: A Survey of Issues and Algorithms. IEEE Computer, pp. 52–60, Aug. 1991.
O. Deux et al. The O 2 System. ACM Communications of the ACM, Vol. 34, No. 10, pp. 34–48, Oct., 1991.
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.
M. Rudalics. Multiprocessor List Memory Management. Technical Report RISC-88-87.0, Research Institute for Symbolic Computation, J. Kepler University, Linz, Austria, 1988.
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.
R. Schwarz. Language-based Garbage Collection in the PANDA System. Internal Report, Department of Computer Science, University of Kaiserslautern, Germany, 1992.
R. Sharma and M. L. Soffa. Parallel Generational Garbage Collection. Proc. OOPSLA’91, Phoenix, Arizona, Oct. 1991.
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.
S.K. Shrivastava, G.N. Dixon, G.D. Parrington. An Overview of the ARJUNA Distributed Programming System. IEEE Software, pp. 66–73, Jan. 1991.
B. Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, MA, 1986.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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