The unique system harlotte is a distributed operating its end of a link, or enclose its end as part provides powerful system intended as a testbed for of an outgoing message. A link is thus a proiae pdeveloping techniques and tools pair of capabilities for a two-way channel.interprocess com-that exploit large-grain parallelism to solve Each capability lets its holder perform all munication that uses computation-intensive problems. It is im-operations on the channel. plemented on the Crystal multicomputer,The Demos operating system2 introduplex licks, does which has 20 VAX 11/750 computers con-duced the idea of using links for internot buffer messages nected by a token ring, each with its own process communication. Charlotte has in the kernel, and memory.enhanced the idea in several ways. Charlotte provides an interprocess comFirst, a Charlotte link is a duplex comdoes not block munication mechanism using duplex links munication channel, while a Demos link on communication to ease distributed applications. A link is allows traffic in only one direction. Both requests abound communication channel between holders of a Charlotte link have equal two processes. Unlike other systems, Char-rights to use, transfer, or destroy it. Morelotte lets messages be sent, received, over, they can do so simultaneouslyawaited, and canceled on the link. independently of each other. This sym-A process may generate a new link metry permits a uniform communication (acquiring both ends of the link ), destroy interface. Second, Charlotte does not buffer messages between processes. This decision places the burden of buffer management on the programmer, not the kernel. Kernel 'X > 1-buffering often requires that data be copied an extra time, which can be a waste of both space and time. Our experience with Arachne, a Charlotte predecessor, shows that buffer management at the kernel level may lead to complex deadlocks. Third, neither the Send nor the Receive primitives block the caller. This design lets servers proceed independently of their clients' speeds. Last, both Send and Receive can be canceled, and Receive can be selective. Interprocess communication The design space of message-based I E/ -s t interprocess communication mechanisms is large. The issues of handling names, addresses, and flow control intertwine. 22
This paper presents a retrospective view 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-111750 computers connected by a local-area network. The kernellprocess interface is unique in its support for symmetric, bidirectional communication paths (called links), and synchronous nonblocking communication. Our experience indicates that the goals of simplicity and function are not easily achieved. Simplicity in particular has dimensions that conflict with one another. Although our design decisions produced a high-quality environment for research in distributed applications, they also led to unexpected implementation costs and required high-level language support. We learned several lessons from implementing Charlotte. Links have proven to be a useful abstraction, but our primitives do not seem to be at quite the right level of abstraction. Our implementation employed finite-state machines and a multitask kernel, both of which worked well. It also maintains absolute distributed information, which is more expensive than using hints. The development of high-level tools, particularly the Lynx distributed programming language, has simplified the use of kernel primitives and helps to manage concurrency at the process level.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.