Concluding Remarks
This paper makes two contributions. First, it describes how paths can
be made an explicit OS abstraction, and shows how this abstraction has
been implemented in the Scout operating system. Second, it makes a
case for why paths should be made explicit. This case includes both
the intuitive arguments made in Section 1, and a
demonstration of how paths proved beneficial in one particular
application---receiving, decoding, and displaying MPEG-compressed
video. On this latter point, we showed how paths are used to:
- segregate work early to avoid priority inversion;
- schedule the entire processing along a path according to
the bottleneck queue, and to automatically determine the bottleneck
queue in the system;
- provide accountability to decide the admissibility of a memory
allocation request; and
- discard unnecessary work early to minimize the waste of resources.
What remains to be done is to demonstrate Scout---and the utility of
paths---on a wider set of domains. For example, work on a Scout-based
Java-box, active network router, and scalable storage server are under
way.