skip to main content
10.1145/1173706.1173717acmconferencesArticle/Chapter ViewAbstractPublication PagesgpceConference Proceedingsconference-collections
Article

A dynamic aspect-oriented system for OS kernels

Published:22 October 2006Publication History

ABSTRACT

We propose a dynamic aspect-oriented system for operating system (OS) kernels written in the C language. Unlike other similar systems, our system named KLASY allows the users to pointcut not only function calls but also member accesses to structures. This feature helps the developers who want to use aspects for profiling or debugging an OS kernel. To enable this, KLASY uses a modified C compiler for compiling an OS kernel. The modified compiler produces extended symbol information, which enables a dynamic weaver to find the memory addresses of join point shadows during runtime. Since a normal C compiler produces only limited symbol information, other dynamic aspect-oriented systems for C have been able to pointcut only function calls. We have implemented KLASY for Linux with the GNU C compiler. Our experiments revealed that KLASY achieves sufficient execution performance for practical use. Our case studies disclosed that KLASY is useful for real applications.

References

  1. Unixbench. http://www.tux.org/pub/tux/niemi/unixbench/.]]Google ScholarGoogle Scholar
  2. S. Almajali and T. Elrad. Coupling availability and efficiency for aspect oriented runtime weaving systems. In Proceedings of the Second Dynamic Aspects Workshop (DAW05), march 2005.]]Google ScholarGoogle Scholar
  3. Apache HTTP Server Project. Apache HTTP server benchmarking tool. http://httpd.apache.org/.]]Google ScholarGoogle Scholar
  4. Apache Software Foundation. Apache Tomcat. http://tomcat.apache.org/.]]Google ScholarGoogle Scholar
  5. C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual machine support for dynamic join points. In AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development, pages 83--92, New York, NY, USA, 2004. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. B. M. Cantrill, M. W. Shapiro, and A. H. Leventhal. Dynamic instrumentation of production systems. In Proceedings of the USENIX Annual Technical Conference, pages 15--28. USENIX Association, June 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Y. Coady and G. Kiczales. Back to the future: a retroactive study of aspect evolution in operating system code. In AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software development, pages 50--59. ACM Press, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Y. Coady, G. Kiczales, M. Feeley, N. Hutchinson, and J. S. Ong. Structuring operating system aspects. Communications of the ACM (CACM), october 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Y. Coady, G. Kiczales, M. Feeley, and G. Smolyn. Using aspectC to improve the modularity of path-specific customization in operating system code. In ESEC/FSE-9: Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering, pages 88--98. ACM Press, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. Douence, T. Fritz, N. Loriant, J.-M. Menaud, M. Ségura-Devillechaise, and M. Südholt. An expressive aspect language for system applications with arachne. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 27--38, New York, NY, USA, 2005. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Engel and B. Freisleben. Supporting autonomic computing functionality via dynamic operating system kernel aspects. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 51--62, New York, NY, USA, 2005. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Engel and B. Freisleben. Using a low-level virtual machine to improve dynamic aspect support in operating system kernels. In Proceedings of the Fourth AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software, march 2005.]]Google ScholarGoogle Scholar
  13. K. Fraser and F. Chang. Operating system i/o speculation: How two invocations are faster than one. In Proceedings of the USENIX Annual Technical Conference (General Track), pages 325--338. USENIX Association, June 2003.]]Google ScholarGoogle Scholar
  14. D. P. Ghormley, D. Petrou, S. H. Rodrigues, and T. E. Anderson. SLIC: An extensibility system for commodity operating systems. In Proceedings of the USENIX Annual Technical Conference (NO 98), june 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Haupt, M. Mezini, C. Bockisch, T. Dinkelaker, M. Eichberg, and M. Krebs. An execution layer for aspect-oriented programming languages. In VEE '05: Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, pages 142--152, New York, NY, USA, 2005. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. H. Hibino, K. Kourai, and S. Chiba. Difference of degradation schemes among operating systems. In Proceedings of Workshop on Dependable Software - Tools and Methods, Dependable Systems and Networks (DSN-2005), pages 172--179, June 2005.]]Google ScholarGoogle Scholar
  17. Hitachi, Ltd. and Fujitsu, Ltd. Linux kernel state tracer, 2001, 2005. http://lkst.sourceforge.net/.]]Google ScholarGoogle Scholar
  18. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. Lecture Notes in Computer Science, 2072:327--355, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. G. Lehey. Improving the FreeBSD smp implementation. In Proceedings of the FREENIX Track: 2001 USENIX Annual Technical Conference, pages 155--164. USENIX Association, June 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. H. Masuhara, G. Kiczales, and C. Dutchyn. Compilation semantics of aspect-oriented programs. In Proc. of Foundations of Aspect-Oriented Languages Workshop, AOSD 2002, pages 17--26, 2002.]]Google ScholarGoogle Scholar
  21. S. Molloy and P. Honeyman. Scalable Linux scheduling. In Proceedings of the FREENIX Track: 2001 USENIX Annual Technical Conference, pages 285--296. USENIX Association, June 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. J. Pearce, P. H. J. Kelly, T. Field, and U. Harder. GILK: A dynamic instrumentation tool for the linux kernel. In Computer Performance Evaluation / TOOLS, pages 220--226, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. V. Prasad, W. Cohen, F. C. Eigler, M. Hunt, J. Keniston, and B. Chen. Locating system problems using dynamic instrumentation. In Proceedings of the Linux Symposium, volume 2, pages 49--64, july 2005.]]Google ScholarGoogle Scholar
  24. Red Hat, Inc. Red hat content accelerator (tux), 2001, 2002. http://www.redhat.com/docs/manuals/tux/.]]Google ScholarGoogle Scholar
  25. J. Roberson. Ule: A modern scheduler for FreeBSD. In Proceedings of BSDCon '03, pages 17--28. USENIX Association, September 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Ségura-Devillechaise, J.-M. Menaud, G. Muller, and J. L. Lawall. Web cache prefetching as an aspect: towards a dynamic-weaving based solution. In AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software development, pages 110--119. ACM Press, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. O. Spinczyk, A. Gal, and W. Schröder-Preikschat. AspectC++: an aspect-oriented extension to the C++ programming language. In CRPITS '02: Proceedings of the Fortieth International Confernece on Tools Pacific, pages 53--60. Australian Computer Society, Inc., 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. A. Tamches and B. P. Miller. Fine-grained dynamic instrumentation of commodity operating system kernels. In Operating Systems Design and Implementation, pages 117--130, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. K. Yaghmour and M. R. Dagenais. Measuring and characterizing system behavior using kernel-level event logging. In Proceedings of the USENIX Annual Technical Conference, pages 13--26, june 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. S. Yamamura, A. Hirai, M. Sato, M. Yamamoto, A. Naruse, , and K. Kumon. Speeding up kernel scheduler by reducing cache misses - effects of cache coloring for a task structure -. In Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference, pages 275--286. USENIX Association, May 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. C. Zhang. TinyC2: Towards building a dynamic weaving aspect language for c. In FOAL 2003 Proceedings Foundation of Aspect-Oriented Languages Workshop at AOSD 2003, march 2003.]]Google ScholarGoogle Scholar

Index Terms

  1. A dynamic aspect-oriented system for OS kernels

    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
    • Published in

      cover image ACM Conferences
      GPCE '06: Proceedings of the 5th international conference on Generative programming and component engineering
      October 2006
      310 pages
      ISBN:1595932372
      DOI:10.1145/1173706

      Copyright © 2006 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 22 October 2006

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate56of180submissions,31%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader