skip to main content
article

Specialization tools and techniques for systematic optimization of system software

Authors Info & Claims
Published:01 May 2001Publication History
Skip Abstract Section

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.

References

  1. ADOBE SYSTEMS. 1984. The PostScript Language Reference Manual. 1st ed. Addison-Wesley, Reading, MA.]] Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. CAMPBELL,R.H.,ISLAM, N., AND MADANY, P. 1992. Choices, frameworks and refinement. Comput. Syst. 5, 3, 217-257.]]Google ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle Scholar
  18. FORD,B.AND SUSARLA, S. 1996. CPU inheritance scheduling. ACM SIGOPS Oper. Syst. Rev. 30, Winter, 91-105.]] Google ScholarGoogle Scholar
  19. 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 ScholarGoogle Scholar
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle Scholar
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle Scholar
  24. 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 ScholarGoogle Scholar
  25. 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 ScholarGoogle Scholar
  26. GOSLING, J., JOY, B., AND STEELE, G. 1996. The Java Language Specification. Addison-Wesley, Reading, MA.]] Google ScholarGoogle Scholar
  27. 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 ScholarGoogle Scholar
  28. 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 ScholarGoogle Scholar
  29. KICZALES, G. 1996. Beyond the black box: Open implementation. IEEE Software 13, 1 (Jan.), 6-11.]] Google ScholarGoogle Scholar
  30. 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 ScholarGoogle Scholar
  31. LEROY, X. 1996. The LinuxThreads library. http://pauillac.inria.fr/xleroy/linuxthreads/.]]Google ScholarGoogle Scholar
  32. 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 ScholarGoogle Scholar
  33. 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 ScholarGoogle Scholar
  34. 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 ScholarGoogle Scholar
  35. 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 ScholarGoogle Scholar
  36. 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 ScholarGoogle Scholar
  37. MCVOY,L.AND STAELIN, C. 1996. lmbench: Portable tools fo performance analysis. In Proceedings of the USENIX Technical Conference. USENIX Assoc., Berkeley, CA.]] Google ScholarGoogle Scholar
  38. 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 ScholarGoogle Scholar
  39. 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 ScholarGoogle Scholar
  40. 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 ScholarGoogle Scholar
  41. 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 ScholarGoogle Scholar
  42. 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 ScholarGoogle Scholar
  43. ORR, D. 1992. OMOS An object server for program execution. In Proceedings of the International Workshop on Object-Oriented Operating Systems.]]Google ScholarGoogle Scholar
  44. 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 ScholarGoogle Scholar
  45. 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 ScholarGoogle Scholar
  46. RAMSEY, R. 1994. All About Administering NIS1. 2nd ed. Prentice-Hall, New York, NY.]] Google ScholarGoogle Scholar
  47. 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 ScholarGoogle Scholar
  48. 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 ScholarGoogle Scholar
  49. 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 ScholarGoogle Scholar
  50. 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 ScholarGoogle Scholar
  51. SILICON GRAPHICS. 1999. Lockmeter: Kernel spinlock metering for Linux IA32. Silicon Graphics, Inc., Mountain View, CA.]]Google ScholarGoogle Scholar
  52. 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 ScholarGoogle Scholar
  53. SUN MICROSYSTEMS. 1998a. NFS: Network File System protocol specification. Sun Microsystems, Inc., Mountain View, CA.]]Google ScholarGoogle Scholar
  54. SUN MICROSYSTEMS. 1998b. RPC: Remote Procedure Call protocol specification, version 2. Sun Microsystems, Inc., Mountain View, CA.]]Google ScholarGoogle Scholar
  55. SUN MICROSYSTEMS. 1999. Solaris Naming Administration Guide. Sun Microsystems, Inc., Mountain View, CA.]]Google ScholarGoogle Scholar
  56. TAHA, W. 1999. Multistage programming: Its theory and applications. Oregon Graduate Institute of Science & Technology, Beaverton, OR.]]Google ScholarGoogle Scholar
  57. TAHA,W.AND SHEARD, T. 1997. Multi-stage programming with explicit annotations. SIGPLAN Not. 32, 12, 203-217.]] Google ScholarGoogle Scholar
  58. 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 ScholarGoogle Scholar
  59. 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 ScholarGoogle Scholar
  60. TIP, F. 1994. A survey of program slicing techniques. Tech. Rep. CS-R9438. Centrum voor Wiskunde en Informatica, Amsterdam, The Netherlands.]] Google ScholarGoogle Scholar
  61. WHITE, J. E. 1994. Telescript technology: The foundation for the electronic marketplace. General Magic, Inc., Mountain View, CA.]]Google ScholarGoogle Scholar
  62. WOOLRIDGE,M.AND JENNINGS, N. 1995. Intelligent agents: Theory and practice. Knowl. Eng. Rev. 10,2.]]Google ScholarGoogle Scholar
  63. YAGHMOUR, K. 1999. Linux trace toolkit. http://www.info.polymtl.ca/home/karym/www/trace/.]]Google ScholarGoogle Scholar
  64. 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 ScholarGoogle Scholar

Index Terms

  1. Specialization tools and techniques for systematic optimization of system software

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader