Next Up Previous Contents References

6.1 Summary

Summary

This dissertation presents the Scout operating system architecture, which is oriented towards communication-oriented systems in general, and information appliances in particular. A cornerstone of this architecture is a new abstraction called the path, which can be viewed as a vertical slice through a modular system. Paths are complementary to, and just as fundamental as, modular system design. They are modeled after virtual circuits in communication networks, and hence, can be viewed as bidirectional dataflows. Since data processing inside a system is considerably richer than the processing that occurs along a virtual circuit in a traditional (passive) communication network, paths are significantly more complex and versatile. Owing to this necessary flexibility, it just as natural to view paths as processing pipe-lines, paths of execution, resource accounts, or loci of identity. No one view is technically more correct than the others, but depending on the context in which paths are applied, choosing the right view often simplifies developing an appropriate mental model.

The path abstraction enables building efficient communication-oriented systems because it encapsulates performance critical dataflows and the processing along those flows across multiple module boundaries. By crossing multiple modules, a path enables global optimizations that are typically difficult or impossible to realize in strictly modular systems. The same encapsulation also enables using paths as the building blocks to realize systems that provide quality-of-service guarantees that are difficult to realize in purely modular systems. In essence, paths make it easy to distinguish between different dataflows in the system and to monitor and control their behavior.

Scout is a modular architecture that employs paths as the primary means to communicate data through a system. Using just a single communication abstraction greatly simplifies the programming model as it relieves system designers from having to choose from similar yet sometimes conflicting abstractions. Paths are passive entities (data-lanes) through which data is shepherded by threads. Scout defines a simple but flexible execution model that avoids deadlock and depends on higher-level mechanisms to bound resource consumption due to threads. Most of the time, the path that should be used to transmit or receive data is known from context. To accommodate the other case, where the appropriate path is implied by the contents of the data itself, Scout supports a packet classification scheme that is both modular and efficient. Systems that employ classifiers without paths typically cause a duplication of all demultiplexing decisions, since the classifier has to make the decisions to find the right place to deliver the message to, but then the same classification decisions have to be repeated as part of the regular data processing. Scout is able to avoid such duplication since the demultiplexing decisions are represented explicitly in the path as a sequence of stages.

To validate the basic architecture, this dissertation studies two of the potential applications of paths. The first study investigates paths as a mechanism to improve networking subsystem performance and the second study investigates paths as a mechanism to improve resource management in a networked television appliance (NetTV). The NetTV study also provides a concrete example for building a simple yet useful information appliance with Scout.

The networking subsystem study tests three path-based optimization techniques---outlining, cloning, and path-inlining---on both a TCP/IP and an RPC protocol stack. The techniques are primarily targeted at improving the memory system behavior of the latency-sensitive paths that occur when processing small packets. The techniques are able to achieve significant improvements in latency and dramatic reductions in the average number of cycles that a CPU is stalled due to the memory system.

In contrast, the structure of the NetTV appliance is such that the overhead due to module boundaries is not an overriding concern. However, since displaying video is a complex and computationally expensive soft realtime task, proper resource management is essential to providing appropriate quality-of-service. The study shows that paths can assist in solving such resource management problems in an efficient and easy manner.


Next Up Previous Contents References