Scout Overview

The University of Arizona, Department of Computer Science




Scout Overview

The ubiquity of computer networks is fueling an explosion in small, special-purpose, and often mobile computing devices. These devices, which are sometimes called network appliances, include network-attached disks, cameras, and displays; set-top boxes and web browsers; hand-held and portable devices; application gateways; and special-purpose servers (e.g., web and file servers). Network appliances have several unique characteristics that suggest a re-thinking of operating system design.

We are designing, implementing, and evaluating a new operating system, called Scout, that is targeted at network appliances. Scout addresses the three issues outlined above. First, it is designed around a novel communication-oriented abstraction called the path, which is essentially an extention of a network connection into the host OS. Second, Scout is configurable; an instance of Scout targetted for a particular network appliance is generated from a collection of building-block modules. This framework is general enough to support a wide range of network appliances, but also facilitates the optimization of each specific configuration. Third, Scout includes scheduling and resource allocation mechanisms that offer predictable performance under load. These mechanisms are designed to squeeze the most performance out of the fewest resources.

The path abstraction at the core of Scout, while communication-oriented, also plays a central role in addressing the second two issues. In the case of specialization, paths expose global context that various optimization techniques can then exploit. In other words, Scout achieves specialization through configurability, with the resulting modular system optimized on a path-by-path basis. In the case of resource managment, all scheduling decisions are made on a per-path basis. Scout allocates to a given path all the resources (e.g., CPU, memory, bus, cache) it needs to provide the same quality of service as supported by the network connection to which it is attached. A paper describing the path abstraction and illustrating how paths can be used to address the resource allocation problem can be found in [OSDI96]. A companion paper that illustrates how paths can be exploited by code optimization techniques can be found in [SIGCOMM96].

In addition to path-based techniques, Scout also generates a diverse collection of specialized network appliances through the use of small languages. These are special-purpose programming languages that can be used to specify some component of Scout, and from which OS code can be automatically generated. Again, the idea is that various components of the OS need not be either implemented from scratch for each network appliance or general-purpose, but instead can be generated according to the specific needs of a given network appliance. Three examples of small languages we've developed for Scout can be found in [SIGCOMM94, OSDI94, POPL96].


[ Scout Home Page | Department Home Page ]
Send mail to: scout@cs.arizona.edu
Last updated March 2, 1998