This Article 
 Bibliographic References 
 Add to: 
Experience with Charlotte: Simplicity and Function in a Distributed Operating System
June 1989 (vol. 15 no. 6)
pp. 676-685

A retrospective view is presented of the Charlotte distributed operating system, a testbed for developing techniques and tools to solve computation-intensive problems with large-grain parallelism. The final version of Charlotte runs on the Crystal multicomputer, a collection of VAX-11/750 computers connected by a local area network. The kernel/process interface is unique in its support for symmetric, bi-directional communication paths (called links), and synchronous nonblocking communications. Several lessons were learned in implementing Charlotte. Links have proven to be a useful abstraction, but the primitives do not seem to be at quite the right level of abstraction. The implementation uses finite-state machines and a multitask kernel, both of which work well. It also maintains absolute distributed information which is more expensive that using hints. The development of high-level tools, particularly the Lynx distributed programming language, has simplified the use of kernal primitives and helps to manage concurrency at the process level.

[1] M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young, "Mach: A new kernel foundation for UNIX development," inProc. Summer 1986 USENIX Tech. Conf. Exhibition, June 1986.
[2] G. T. Almes, A. P. Black, E. D. Lazowska, and J. D. Noe, "The Eden system: A technical review,"IEEE Trans. Software Eng., vol. SE-11, no. 1, pp. 43-59, Jan. 1985.
[3] G. R. Andrews and R. A. Olsson, "An overview of the SR language and implementation,"ACM Trans. Program. Lang. Syst., vol. 10, no. 1, pp. 51-86, Jan. 1988.
[4] Y. Artsy, H.-Y. Chang, and R. Finkel, "Charlotte: Design and implementation of a distributed kernel," Dep. Comput. Sci., Univ. Wisconsin--Madison, Tech. Rep. 554, Aug. 1984.
[5] Y. Artsy, H.-Y. Chang, and R. Finkel, "Interprocess communication in Charlotte,"IEEE Software, vol. 4, no. 1, pp. 22-28, Jan. 1987.
[6] Y. Artsy, H.-Y. Chang, and R. Finkel, "Processes migrate in Charlotte," Dep. Comput. Sci., Univ. Wisconsin--Madison, Tech. Rep. 655, Aug. 1986.
[7] Y. Artsy and R. Finkel, "Simplicity, efficiency, and functionality in designing a process migration facility," inProc. Second Israel Conf. Computer Systems and Software Engineering, IEEE, May 1987.
[8] BBN Laboratories, "Butterfly®parallel processor overview," Rep. 6149, Version 2. Cambridge, MA, June 16, 1986.
[9] F. H. Baskett, J. H. Howard, and J. T. Montague, "Task communication in DEMOS," inProc. 6th ACM Symp. Oper. Syst. Principles, Nov. 1977, pp. 23-31.
[10] A. D. Birrell and B. J. Nelson, "Implementing remote procedure calls,"ACM Trans. Comp. Syst., vol. 2, no. 1, pp. 39-59, Feb. 1984.
[11] G. V. Bochmann, "Finite state description of communication protocol,"Comput. Networks, vol. 2, pp. 361-372, 1978.
[12] G. V. Bochmann and J. Gescei, "A unified method for the specification and verification of protocols,"Inform. Processing, IFIP, 1977.
[13] D. Cheriton, "The V kernel--A software base for distributed systems,"IEEE Software, vol. 1, no. 2, pp. 19-42, Apr. 1984.
[14] D. D. Clark, "The structuring of systems using upcalls," inProc. Tenth ACM Symp. Operating System Principles, Dec. 1985, pp. 171-180.
[15] R. Cook, R. Finkel, D. De Witt, L. Landweber, T. Virgilio, "The Crystal nugget: Part I of the first report on the Crystal project," Dep. Comput. Sci., Univ. Wisconsin--Madison, Tech. Rep. 499, Apr. 1983.
[16] A. Danthine and J. Bremer, "An axiomatic description of the transport protocol of cyclades," inProc. Professional Conf. Computer Networks and Teleprocessing, Mar. 1976.
[17] D. J. DeWitt, R. Finkel, and M. Solomon, "The CRYSTAL multicomputer: Design and implementation experience,"IEEE Trans. Software Eng., vol. 13, Aug. 1987.
[18] R. Finkel, A. P. Anantharaman, S. Dasgupta, T. S. Goradia, P. Kaikini, C.-P. Ng, M. Subbarao, G. A. Venkatesh, S. Verma, and K. A. Vora, "Experience with Crystal, Charlotte, and LYNX," Dep. Comput. Sci., Univ. Wisconsin--Madison, Tech. Rep. 630, Feb. 1986.
[19] R. Finkel, B. Barzideh, C. W. Bhide, M.-O. Lam, D. Nelson, R. Polisetty, S. Rajaraman, I. Steinberg, and G. A. Venkatesh, "Experience with Crystal, Charlotte, and LYNX: Second report," Dep. Comput. Sci., Univ. Wisconsin--Madison, Tech. Rep. 649, July 1986.
[20] R. Finkel, R. Cook, D. DeWitt, N. Hall, and L. Landweber, "Wisconsin Modula: Part III of the first report on the Crystal project," Dep. Comput. Sci., Univ. Wisconsin--Madison, Tech. Rep. 501, Apr. 1983.
[21] R. Finkel, G. Das, D. Ghoshal, K. Gupta, G. Jayaraman, M. Kacker, J. Kohli, V. Mani, A. Raghavan, M. Tsang, and S. Vajapeyam, "Experience with Crystal, Charlotte, and LYNX: Third report," Dep. Comput. Sci., Univ. Wisconsin--Madison, Tech. Rep. 673, Nov. 1986.
[22] R. Finkel, M. Solomon, D. DeWitt, and L. Landweber, "The Charlotte distributed operating system: Part IV of the first report on the Crystal project," Dep. Comput. Sci., Univ. Wisconsin--Madison, Tech. Rep. 502, Oct. 1983.
[23] A. J. Gordon, "Ordering errors in distributed programs," Ph.D. dissertation, Dept. Comput. Sci., Univ. Wisconsin--Madison, Tech. Rep. 611, Aug. 1985.
[24] J. Jones, R. Rashid, and M. Thompson, "Matchmaker: An interface specification language for distributed processing," inProc. 12th ACM Symp. Principles of Programming Languages, Jan. 1985, pp. 225-235.
[25] J. Kepecs and M. Solomon, "SODA: A simplified operating system for distributed applications,"ACM Operat. Syst. Rev., vol. 19, no. 4, pp. 45-56, Oct. 1985; originally presented at theThird ACM SIGACT/SIGOPS Symp. Principles of Distributed Computing, Aug. 27- 29, 1984.
[26] B. Liskov and R. Scheifler, "Guardians and actions: linguistic support for robust, distributed programs,"ACM Trans. Program. Languages Syst., vol. 5, no. 3, pp. 381-404, July 1983.
[27] B. P. Miller, "DEMOS/MP: The development of a distributed operating system,"Software Practice and Experience, vol. 17, no. 4, Apr. 1987.
[28] S. J. Mullender and A. S. Tanenbaum, "The design of capability-based distributed operating system,"Comput. J., vol. 29, no. 4, pp. 289-299, 1986.
[29] J. K. Ousterhout, A. Scelza, and P. S. Sindhu, "Medusa: An experiment in distributed operating system structure,"Commun. ACM, vol. 23, no. 2, pp. 92-105, Feb. 1980.
[30] R. Rashid and G. Robertson, "Accent: A Communication-Oriented Network Operating System Kernel,"Proc. 8th Symp. Operating System Principles, ACM Press, New York, 1981, pp. 64-85.
[31] J.H. Saltzer, D.P. Reed, and D.D. Clark, "End-to-End Arguments in System Design,"ACM Trans. Computer Systems, Vol. 2, No. 4, Nov. 1984, pp. 277-288.
[32] M. L. Scott, "Design and Implementation of a distributed systems language," Ph.D. dissertation, Dept. Comput. Sci., Univ. Wisconsin--Madison, Tech. Rep. 596, May 1985.
[33] M. L. Scott and R. A. Finkel, "A simple mechanism for type security across compilation units,"IEEE Trans. Software Eng., vol. 14, no. 8, pp. 1238-1239, Aug. 1988.
[34] M. L. Scott, "A framework for the evaluation of high-level languages for distributed computing," Dep. Comput. Sci., Univ. Wisconsin-- Madison, Tech. Rep. 563, Oct. 1984.
[35] M. L. Scott, "The interface between distributed operating system and high-level programming language," inProc. 1986 Int. Conf. Parallel Processing, Aug. 19-22, 1986, pp. 242-249.
[36] M. L. Scott, "LYNX reference manual," Dep. Comput. Sci., Univ. Rochester, BPR 7 (revised), Aug. 1986.
[37] M.L. Scott, "Language Support for Loosely Coupled Distributed Programs,"IEEE Trans. Software Eng., Vol. SE-13, No. 1, Jan. 1987, pp. 88-103.
[38] M. H. Solomon and R. A. Finkel, "The Roscoe distributed operating system," inProc. ACM-SIGOPS 7th Symp. Oper. Syst. Principles, Dec. 1979, pp. 108-114.
[39] R. E. Strom and S. A. Yemini, "NIL: An integrated language and system for distributed programming," inProc. SIGPLAN'83 Symp. Programming Language Issues in Software Syst., June 1983.
[40] United States Dep. Defense,Reference Manual for the Ada Programming Language, ANSI/MIL-STD-1815A-1983, Feb. 17, 1983.

Index Terms:
Charlotte distributed operating system; computation-intensive problems; large-grain parallelism; Crystal multicomputer; VAX-11/750 computers; local area network; kernel/process interface; bidirectional communication paths; synchronous nonblocking communications; abstraction; finite-state machines; multitask kernel; absolute distributed information; high-level tools; Lynx distributed programming language; kernal primitives; concurrency; computer communications software; local area networks; multiprocessing programs; operating systems (computers); software packages
R.A. Finkel, M.L. Scott, Y. Artsy, H.-Y. Chang, "Experience with Charlotte: Simplicity and Function in a Distributed Operating System," IEEE Transactions on Software Engineering, vol. 15, no. 6, pp. 676-685, June 1989, doi:10.1109/32.24721
Usage of this product signifies your acceptance of the Terms of Use.