This dissertation contributes to the area of pure experimental computer science. Specifically, it introduces novel thinking and techniques to the fields of operating systems, networking systems, and experimental systems research in general. The primary objective of this dissertation is to test the hypothesis that:
It should be noted that it is not possible to formally prove the correctness or falsehood of this hypothesis. Instead, this dissertation is limited to providing, hopefully strong, evidence for or against its validity. It does so by introducing a new operating system, called Scout, and two Scout-based demonstrations.
Scout is designed specifically for information appliances and has been implemented from ground up to avoid inappropriate concessions to or influences from traditional, computation-oriented systems. Founded on a modular infrastructure that can cope well with the diversity of information appliances, Scout provides a fertile ground for novel solutions.
Chapters 2 and 3 present the Scout architecture. Chapter 2 begins with developing a path model from first principles. As part of this development, many design-rationales and trade-offs are exposed and discussed. With the path-model articulated, Chapter 3 proceeds to outline the overall architecture: Scout is modular to provide the layering abstractions needed to cope with the diversity of information appliance. This modular foundation is complemented by a concrete path architecture as a means to go beyond the limits of purely modular systems. In particular, the use of paths in Scout enables it to achieve better performance and better resource management than has been possible in the past. The chapter also introduces a packet-classification scheme that is modular, has low overhead, and avoids duplication of work.
After establishing the Scout architecture, Chapter 4 is a first evaluation that involves studying a networking subsystem employing TCP/IP and remote-procedure call (RPC) stacks. While not an appliances in and of itself, the communication-oriented nature of appliances implies that the networking subsystem will be an essential aspect of many appliances. Understanding this subsystem with respect to its behavior and its suitability towards path-based optimizations is thus both important and interesting. Consequently, the chapter presents a detailed analysis of the performance and behavior of the TCP/IP stack when running on a modern 64-bit RISC architecture. Results for Scout are contrasted with those for a traditional, DEC UNIX based implementation. After establishing the performance base-line, three path-based techniques are proposed and their effectiveness evaluated. A fourth, compiler-based technique aimed at improving the predictability of network processing is studied as well. All four techniques were applied to both the TCP/IP and RPC stacks so as to provide insight into how they behave on networking stacks with radically different design and implementation strategies. The three major contributions from this study are that:
Chapter 5 introduces a demonstration appliance consisting of a networked TV that displays MPEG-encoded video streams [54, 67] through a windowing system on a graphics frame-buffer. This appliance emphasizes the resource management aspects of paths. In contrast to the networking study, almost all execution time is spent in the MPEG decoder, hence the fact that modular code does not provide the best possible code-path hardly matters. Since video-display is a soft realtime application, proper resource management (in particular proper CPU scheduling) is essential. Using paths and application-level framing [16], the Scout appliance is able to run multiple video streams and non-realtime background loads all without causing unnecessary interference. Specifically, paths avoid priority inversion by allowing early segregation of work belonging to different streams, they allow to schedule the entire processing of a video-packet according to the bottleneck queue, and they provide the ability to account memory and CPU usage on a per-stream basis. Chapter 6 presents a summary of the dissertation work, an outline of future research directions, and some concluding remarks.
As a final remark, it is important to acknowledge that much of the inspiration and motivation for this work derived from the vision of the future of information appliances. In the end, it is this vision that provided the guiding framework. However, it is equally important to understand that many of the results and techniques developed in this work are not limited to the appliance context. For example, path-based code optimizations are likely to be relevant to all modular and communication-intensive environments. The results of the networking study provide insights into the behavior of communication subsystems that are interesting in their own right. Similarly, the considerations with respect to resource managment are likely to be applicable to other multimedia-oriented systems. Thus, even though appliances are used to motivate this dissertation, its impact is likely to transcend beyond that specific environment.