Abstract
Specialization has been recognized as a powerful technique for optimizing operating systems. However, specialization has not been broadly applied beyond the research community because current techniques based on manual specialization, are time-consuming and error-prone. The goal of the work described in this paper is to help operating system tuners perform specialization more easily. We have built a specialization toolkit that assists the major tasks of specializing operating systems. We demonstrate the effectiveness of the toolkit by applying it to three diverse operating system components. We show that using tools to assist specialization enables significant performance optimizations without error-prone manual modifications. Our experience with the toolkit suggests new ways of designing systems that combine high performance and clean structure.
- ADOBE SYSTEMS. 1984. The PostScript Language Reference Manual. 1st ed. Addison-Wesley, Reading, MA.]] Google Scholar
- AMARASINGHE,S.P.,ANDERSON,J.M.,LAM,M.S.,AND TSENG, C. W. 1995. The SUIF compiler for scalable parallel machines. In Proceedings of the 7th SIAM Conference on Parallel Processing for Scientific Computing (San Francisco, Feb.). SIAM, Philadelphia, PA.]]Google Scholar
- ANDERSEN, L. O. 1993. Binding-time analysis and the taming of C pointers. In Proceedings of the ACM SIGPLAN symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM '93, Copenhagen, Denmark, June 14-16), D. Schmidt, Chair. ACM Press, New York, NY, 47-58.]] Google Scholar
- ANDERSON,J.M.AND BERC, L. M. 1997. Continous profiling: Where have all the cycles gone?. In Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP '97, Saint-Malo, France, Oct. 5-8), W. M. Waite, Ed. ACM Press, New York, NY.]] Google Scholar
- BERNERS-LEE, T., FIELDING, R., AND FRYSTYK, H. 1996. Hypertext transfer protocol HTTP/1.0. RFC 1945. ftp:// ftp.isi.edu/in-notes/rfc1945.txt.]] Google Scholar
- BERSHAD, B., SAVAGE, S., PARDYAK, P., SIRER, E., FIUCZYNSKI, M., BECKER, D., CHAMBERS, C., AND EGGERS, S. 1995. Extensibility, safety, and performance in the SPIN operating system. In Proceedings of the 15th ACM Symposium on Operating Systems Principles (Copper Mountain Resort, CO, Dec.). ACM Press, New York, NY, 267-284.]] Google Scholar
- CAMPBELL,R.H.,ISLAM, N., AND MADANY, P. 1992. Choices, frameworks and refinement. Comput. Syst. 5, 3, 217-257.]]Google Scholar
- CEN, S. 1998. A software feedback toolkit and its application in adaptive multimedia systems. Ph.D. Dissertation. Oregon Graduate Institute of Science & Technology, Beaverton, OR.]] Google Scholar
- CONSEL,C.AND DANVY, O. 1993. Tutorial notes on partial evaluation. In Proceedings of the 20th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '93, Charleston, SC, Jan. 10-13), S. L. Graham, Ed. ACM Press, New York, NY, 493-501.]] Google Scholar
- CONSEL,C.AND MARLET, R. 1998. Architecturing software using a methodology for language development. In Proceedings of the International Symposium on Programming Language Implementation, Logics and Programs (PLILP, Pisa, Italy). ACM, New York, NY.]]Google Scholar
- CONSEL,C.ANDE NOEL, F. 1996. A general approach for run-time specialization and its application to C. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '96, St. Petersburg Beach, FL, Jan. 21-24), H.-J. Boehm and G. Steel, Chairs. ACM Press, New York, NY, 145-156.]] Google Scholar
- COWAN,C.AND MCNAMEE, D. 1987. A toolkit for specializing production operating system code. CSE-97-004. Oregon Graduate Institute of Science & Technology, Beaverton, OR.]] Google Scholar
- COWAN, C., AUTREY, T., PU, C., AND WALPOLE, J. 1996. Fast concurrent dynamic linking for an adaptive operating system. In Proceedings of the International Conference on Configurable Distributed Systems (ICCDS '96, Annapolis, MD).]] Google Scholar
- DAS, M., REPS, T., AND VAN HENTENRYCK, P. 1995. Semantic foundations of binding-time analysis for imperative programs. In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM '95, La Jolla, CA, June 21-23), N. Jones, Chair. ACM Press, New York, NY, 100-110.]] Google Scholar
- ENGLER,D.R.,HSIEH,W.C.,AND KAASHOEK, M. F. 1996. 'C: A language for high-level, efficient, and machine-independent dynamic code generation. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '96, St. Petersburg Beach, FL, Jan. 21-24), H.-J. Boehm and G. Steel, Chairs. ACM Press, New York, NY, 131-144.]] Google Scholar
- ENGLER, D., KAASHOEK, M., AND O'TOOLE, J. 1995. Exokernel: An operating system architecture for application-level resource management. In Proceedings of the 15th ACM Symposium on Operating Systems Principles (SIGOPS '95, Copper Mountain Resort, CO, Dec. 3-6), M. B. Jones, Ed. ACM Press, New York, NY, 251-266.]] Google Scholar
- FIELDING, R., GETTYS, J., MOGUL, J., FRYSTYK, H., MASINTER, L., LEACH, P., AND BERNERS-LEE,T. 1999. Hypertext Transfer Protocol HTTP/1.1. RFC 2616. ftp://ftp.isi.edu/in-notes/rfc2616.txt.]] Google Scholar
- FORD,B.AND SUSARLA, S. 1996. CPU inheritance scheduling. ACM SIGOPS Oper. Syst. Rev. 30, Winter, 91-105.]] Google Scholar
- FORD, B., BACK, G., BENSON, G., LEPREAU, J., LIN, A., AND SHIVERS, O. 1997. The Flux OSKit: A substrate for kernel and language research. ACM SIGOPS Oper. Syst. Rev. 31, 5, 38-51.]] Google Scholar
- FORD, B., HIBLER, M., LEPREAU, J., TULLMANN, P., BACK, G., AND CLAWSON, S. 1996. Microkernels meet recursive virtual machines. ACM SIGOPS Oper. Syst. Rev. 30, Winter, 137-151.]] Google Scholar
- GHORMLEY,D.P.,PETROU, D., ANDERSON,T.E.,AND RODRIGUES, S. H. 1998. SLIC: An extensibility system for commodity operating systems. In Proceedings of the 1998 USENIX Annual Technical Conference (New Orleans, LA, June). USENIX Assoc., Berkeley, CA, 39-52.]] Google Scholar
- GOEL, A., STEERE, D., PU, C., AND WALPOLE, J. 1998. SWiFT: A feedback control and dynamic reconfiguration toolkit. Oregon Graduate Institute of Science & Technology, Beaverton, OR.]]Google Scholar
- GRANT, B., PHILIPOSE, M., MOCK, M., CHAMBERS, C., AND EGGERS, S. J. 1999. An evaluation of staged run-time optimizations in DyC. In Proceedings of the ACM SIGPLAN Conference on Programming Language and Design and Implementation (PLDI '99, Atlanta, GA). ACM, New York, NY.]] Google Scholar
- HORNOF,L.AND NOYE, J. 1997. Accurate binding-time analysis for imperative languages: Flow, context, and return sensitivity. SIGPLAN Not. 32, 12, 63-73.]] Google Scholar
- HORNOF, L., CONSEL, C., AND NOYE, J. 1997. Effective specialization of realistic programs via use sensitivity. In Proceedings of the 4th International Symposium on Static Analysis (SAS '97, Paris, France, Sept.). Springer-Verlag, Vienna, Austria.]] Google Scholar
- GOSLING, J., JOY, B., AND STEELE, G. 1996. The Java Language Specification. Addison-Wesley, Reading, MA.]] Google Scholar
- JONES,N.D.,GOMARD,C.K.,AND SESTOFT, P. 1993. Partial Evaluation and Automatic Program Generation. Prentice-Hall International Series in Computer Science. Prentice-Hall, Inc., Upper Saddle River, NJ.]] Google Scholar
- JONES,N.D.,SESTOFT, P., AND SONDERGAARD, H. 1985. An experiment in partial evaluation: The generation of a compiler generator. In Proc. of the first international conference on Rewriting techniques and applications (Dijon, France, May 20-22), J.-P. Jouannaud, Ed. Springer Lecture Notes in Computer Science. Springer-Verlag, New York, NY, 124-140.]] Google Scholar
- KICZALES, G. 1996. Beyond the black box: Open implementation. IEEE Software 13, 1 (Jan.), 6-11.]] Google Scholar
- KICZALES, G., LAMPING, J., MENDHEKAR, A., MAEDA, C., LOPES,C.V.,LOINGTIER, J.-M., AND IRWIN, J. 1997. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP '97). Springer-Verlag, New York, NY. Lecture Notes in Computer Science, vol. 1241.]]Google Scholar
- LEROY, X. 1996. The LinuxThreads library. http://pauillac.inria.fr/xleroy/linuxthreads/.]]Google Scholar
- LIU, X., KREITZ, C., VAN RENESSE, R., HICKEY, J., HAYDEN, M., BIRMAN, K., AND CONSTABLE,R. 1997. Building reliable, high-performance communication systems from components. In Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP '97, Saint-Malo, France, Oct. 5-8), W. M. Waite, Ed. ACM Press, New York, NY.]] Google Scholar
- LOPES,C.V.AND KICZALES, G. 1998. Recent developments inm AspectJ. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP'98). Springer-Verlag, New York, NY. Lecture Notes in Computer Science, vol. 1445.]] Google Scholar
- MARLET, R., CONSEL, C., AND BOINOT, P. 1999. Efficient incremental run-time specialization for free. In Proceedings of the ACM SIGPLAN Conference on Programming Language and Design and Implementation (PLDI '99, Atlanta, GA). ACM, New York, NY.]] Google Scholar
- MASSALIN,H.AND PU, C. 1989. Threads and input/output in the Synthesis kernel. In Proceedings of the 12th ACM Symposium on Operating Systems Principles (Litchfield Park, AZ, Dec. 3-6), G. Andrews, Chair. ACM Press, New York, NY.]] Google Scholar
- MCCANNE,S.AND JACOBSON, V. 1993. The BSD packet filter: A new architecture for user-level packet capture. In Proceedings of the Winter Usenix Conference (Jan.). USENIX Assoc., Berkeley, CA, 259-269.]] Google Scholar
- MCVOY,L.AND STAELIN, C. 1996. lmbench: Portable tools fo performance analysis. In Proceedings of the USENIX Technical Conference. USENIX Assoc., Berkeley, CA.]] Google Scholar
- MONTZ, A., MOSBERGER, D., O'MALLEY, S., PETERSON, L., PROEBSTING, T., AND HARTMAN,J. 1994. Scout: A communications-oriented operating system. In Proceedings of the 1st USENIX Symposium on Operating Systems Design and Implementation (OSDI '94, Monterey, CA, Nov.). USENIX Assoc., Berkeley, CA.]]Google Scholar
- MULLER, G., MARLET, R., AND VOLANSCHI, E. N. 2000. Accurate program analyses for successful specialization of legacy system software. Theor. Comput. Sci. 248, 1-2.]] Google Scholar
- MULLER, G., MARLET, R., VOLANSCHI,E.N.,CONSEL, C., PU, C., AND GOEL, A. 1998. Fast, optimized Sun RPC using automatic program specialization. In Proceedings of the 18th IEEE International Conference on Distributed Computing Systems (ICDCS '98, Amsterdam, The Netherlands, May). IEEE Computer Society Press, Los Alamitos, CA.]] Google Scholar
- MULLER, G., VOLANSCHI, E.-N., AND MARLET, R. 1997. Scaling up partial evaluation for optimizing the Sun commercial RPC protocol. SIGPLAN Not. 32, 12, 116-126.]] Google Scholar
- O'CALLAHAN,R.AND JACKSON, D. 1997. Lackwit: A program understanding tool based on type inference. In Proceedings of the 1997 International Conference on Software Engineering (ICSE '97, Boston, MA, May 17-23), W. R. Adrion, Chair. ACM Press, New York, NY, 338-348.]] Google Scholar
- ORR, D. 1992. OMOS An object server for program execution. In Proceedings of the International Workshop on Object-Oriented Operating Systems.]]Google Scholar
- PARDYAK,P.AND BERSHAD, B. N. 1996. Dynamic binding for an extensible system. In Proceedings of the 2nd USENIX Symposium on Operating Systems Design and Implementation (OSDI '96, Seattle, WA, Oct. 28-31), K. Petersen and W. Zwaenepoel, Chairs. ACM Press, New York, NY, 201-212.]] Google Scholar
- PU, C., AUTREY, T., BLACK, A., CONSEL, C., COWAN, C., INOUYE, J., KETHANA, L., WALPOLE, J., AND ZHANG, K. 1995. Optimistic incremental specialization. In Proceedings of the 15th ACM Symposium on Operating Systems Principles (SIGOPS '95, Copper Mountain Resort, CO, Dec. 3-6), M. B. Jones, Ed. ACM Press, New York, NY, 314-324.]] Google Scholar
- RAMSEY, R. 1994. All About Administering NIS1. 2nd ed. Prentice-Hall, New York, NY.]] Google Scholar
- RASHID,R.AND BARON, R. 1989. Mach: A foundation for open systems. In Proceedings of the 2nd IEEE Workshop on Workstation Operating Systems. IEEE Press, Piscataway, NJ.]]Google Scholar
- SESTOFT,P.AND ZAMULIN, A. V. 1988. Annotated bibliography on partial evaluation and mixed computation. In Partial Evaluation and Mixed Computation. North-Holland Publishing Co., Amsterdam, The Netherlands.]]Google Scholar
- SHEARD, T., BENAISSA, Z., AND PASALIC, E. 1999. DSL implementation using staging and monads. In Proceedings of the 2nd USENIX Conference on Domain-Specific Languages (DSL '99, Austin, TX). USENIX Assoc., Berkeley, CA.]] Google Scholar
- SHIELDS, M., SHEARD, T., AND PEYTON JONES, S. 1998. Dynamic typing as staged type inference. In Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '98, San Diego, CA, Jan. 19-21), D. B. MacQueen and L. Cardelli, Chairs. ACM Press, New York, NY, 289-302.]] Google Scholar
- SILICON GRAPHICS. 1999. Lockmeter: Kernel spinlock metering for Linux IA32. Silicon Graphics, Inc., Mountain View, CA.]]Google Scholar
- SMALL,C.AND SELTZER, M. 1994. VINO: An integrated platform for operating system and database research. Tech. Rep. TR-30-94. Department of Electrical Engineering and Computer Science, Harvard Univ., Cambridge, MA.]]Google Scholar
- SUN MICROSYSTEMS. 1998a. NFS: Network File System protocol specification. Sun Microsystems, Inc., Mountain View, CA.]]Google Scholar
- SUN MICROSYSTEMS. 1998b. RPC: Remote Procedure Call protocol specification, version 2. Sun Microsystems, Inc., Mountain View, CA.]]Google Scholar
- SUN MICROSYSTEMS. 1999. Solaris Naming Administration Guide. Sun Microsystems, Inc., Mountain View, CA.]]Google Scholar
- TAHA, W. 1999. Multistage programming: Its theory and applications. Oregon Graduate Institute of Science & Technology, Beaverton, OR.]]Google Scholar
- TAHA,W.AND SHEARD, T. 1997. Multi-stage programming with explicit annotations. SIGPLAN Not. 32, 12, 203-217.]] Google Scholar
- TAMCHES,A.AND MILLER, B. P. 1999. Fine-grained dynamic instrumentation of commodity operating system kernels. In Proceedings of the 3rd USENIX Symposium on Operating Systems Design and Implementation (OSDI '99, New Orleans, LA., Feb.). USENIX Assoc., Berkeley, CA, 117-130.]] Google Scholar
- TENNENHOUSE, D., SMITH, J., SINCOSKIE, D., WETHERALL, D., AND MINDEN, G. 1997. A survey of active network research. IEEE Commun. Mag. 35,1,80-86.]]Google Scholar
- TIP, F. 1994. A survey of program slicing techniques. Tech. Rep. CS-R9438. Centrum voor Wiskunde en Informatica, Amsterdam, The Netherlands.]] Google Scholar
- WHITE, J. E. 1994. Telescript technology: The foundation for the electronic marketplace. General Magic, Inc., Mountain View, CA.]]Google Scholar
- WOOLRIDGE,M.AND JENNINGS, N. 1995. Intelligent agents: Theory and practice. Knowl. Eng. Rev. 10,2.]]Google Scholar
- YAGHMOUR, K. 1999. Linux trace toolkit. http://www.info.polymtl.ca/home/karym/www/trace/.]]Google Scholar
- YOKOTE, Y., TERAOKA, F., AND TOKORO, M. 1989. A reflective architecture for an object-oriented distributed operating system. In Proceedings of the 1989 European Conference on Object-Oriented Programming (ECOOP '89, Nottingham, UK).]]Google Scholar
Index Terms
- Specialization tools and techniques for systematic optimization of system software
Recommendations
Automatic program specialization for Java
The object-oriented style of programming facilitates program adaptation and enhances program genericness, but at the expense of efficiency. We demonstrate experimentally that state-of-the-art Java compilers fail to compensate for the use of object-...
Temporal Specialization and Generalization
A standard relation has two dimensions: attributes and tuples. A temporal relation contains two additional orthogonal time dimensions: valid time records when facts are true in the modeled reality, and transaction time records when facts are stored in ...
Combining Program and Data Specialization
Program and data specialization have always been studied separately, although they are both aimed at processing early computations. Program specialization encodes the result of early computations into a new program; while data specialization encodes the ...
Comments