Scout has a modular structure that is complemented by a new abstraction called the path. The modular structure enables the efficient building of systems that are tailored precisely to the requirements of a particular appliance. Paths address issues related to the performance and quality with which a communication service is rendered. A path can be visualized as a vertical slice through a layered system or viewed abstractly as a bidirectional flow of data. As such, a path typically traverses multiple modules in a Scout system. This means that paths provide additional context to the modules that process data that is being communicated through the system. This context often makes it possible to implement data processing more efficiently or to improve the quality with which resource management, such as CPU scheduling or memory allocation, is realized.
This dissertation develops the path abstraction from first principles and then introduces the various aspects of the Scout architecture. Aside from the path abstraction, Scout uses a novel approach for network packet classification. With the Scout architecture defined, two studies are presented that provide an in-depth look at how to use Scout and its path abstraction. The first study employs the path abstraction to reduce processing latency in the networking subsystem. Evaluating these path optimizations also provides important insights on the performance behavior of networking subsystems on modern RISC machines. The second study employs the path abstraction to improve resource management for an information appliance that involves a networked TV displaying MPEG encoded video.