A Uniform and Automatic Approach to Copy Elimination in System Extensions via Program Specialization

Most operating systems heavily rely on intermediate data structures for modularity or portability reasons. This paper extends program specialization to eliminate these intermediate data structures in a uniform manner. Our transformation process is fully automatic and is based on a specializer for C programs, named Tempo. The key advantage of our approach is that the degree of safety of the source program is preserved by the optimization. As a result, mature system code can be reused without requiring additional verification. Our preliminary results on the automatically optimized RPC code are very promising in that they are identical to the results we obtained by manual specialization of the same code. In this last experiment, performance measurement of the specialized RPC fragments shows a minimal speedup of 30% compared to the non-specialized code. Elimination of intermediate data structures is part of our research effort towards optimizing operating system components via program specialization. It improves on our previous work in that optimizations are now carried out automatically using our specialization tool. Furthermore, it shows how generic subsystems can be automatically specialized into specific system extensions by exploiting application constraints.

[1]  Olivier Danvy,et al.  Tutorial notes on partial evaluation , 1993, POPL '93.

[2]  Jacques Noyé,et al.  A Uniform Approach for Compile-Time and Run-Time Specialization , 1996, Dagstuhl Seminar on Partial Evaluation.

[3]  David L. Black,et al.  Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures , 1987, IEEE Trans. Computers.

[4]  Lars Ole Andersen,et al.  Self-applicable C Program Specialization , 1992, PEPM.

[5]  Larry L. Peterson,et al.  Scout: a communications-oriented operating system , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

[6]  T. Anderson,et al.  Eecient Software-based Fault Isolation , 1993 .

[7]  BlackDavid,et al.  Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures , 1987 .

[8]  Richard F. Rashid,et al.  The Integration of Virtual Memory Management and Interprocess Communication in Accent , 1986, ACM Trans. Comput. Syst..

[9]  Calton Pu,et al.  Optimistic incremental specialization: streamlining a commercial operating system , 1995, SOSP.

[10]  Calton Pu,et al.  The Synthesis Kernel , 1988, Comput. Syst..

[11]  Gilles Muller,et al.  Matching micro-kernels to modern applications using fine-grained memory protection , 1995, Proceedings.Seventh IEEE Symposium on Parallel and Distributed Processing.

[12]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[13]  Brian N. Bershad,et al.  Protocol service decomposition for high-performance networking , 1994, SOSP '93.

[14]  Chorus Systemes,et al.  Overview of the CHORUS? Distributed Operating Systems , 1991 .

[15]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[16]  Charles Consel,et al.  A general approach for run-time specialization and its application to C , 1996, POPL '96.

[17]  Charles Consel,et al.  Safe Operating System Specialization: the RPC Case Study , 1996 .

[18]  Larry L. Peterson,et al.  Fbufs: a high-bandwidth cross-domain transfer facility , 1994, SOSP '93.

[19]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[20]  Laurie J. Hendren,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994, PLDI '94.

[21]  Larry L. Peterson,et al.  Analysis of techniques to improve protocol processing latency , 1996, SIGCOMM '96.