Learn More
One goal of locally distributed systems is to facilitate resource sharing. Most current locally distributed systems, however, share primarily data, data storage devices, and output devices; there is little sharing of computational resourees. Load shoring is the process of sharing computational resources by transparently distributing the system workload.(More)
Lightweight Remote Procedure Call (LRPC) is a communication facility designed and optimized for communication between protection domains on the same machine. In contemporary small-kernel operating systems, existing RPC systems incur an unnecessarily high cost when used for the type of communication that predominates—between protection domains on the(More)
<i>Threads</i> are the vehicle for concurrency in many approaches to parallel programming. Threads separate the notion of a sequential execution stream from the other aspects of traditional UNIX-like processes, such as address spaces and I/O descriptors. The objective of this separation is to make the expression and control of parallelism sufficiently cheap(More)
Traditionally, network software has been structured in a monolithic fashion with all protocol stacks executing either within the kernel or in a single trusted user-level server. This organization is motivated by performance and security concerns. However, considerations of code maintenance, ease of debugging, customization, and the simultaneous existence of(More)
To be widely adopted, location-aware computing must be as effortless, familiar and rewarding as web search tools like Google. We envisage the global scale Place Lab, consisting of an open software base and a community building activity as a way to bootstrap the broad adoption of location-aware computing. The initiative is a laboratory because it will also(More)