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.
- Unixbench. http://www.tux.org/pub/tux/niemi/unixbench/.]]Google Scholar
- 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 Scholar
- Apache HTTP Server Project. Apache HTTP server benchmarking tool. http://httpd.apache.org/.]]Google Scholar
- Apache Software Foundation. Apache Tomcat. http://tomcat.apache.org/.]]Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Y. Coady, G. Kiczales, M. Feeley, N. Hutchinson, and J. S. Ong. Structuring operating system aspects. Communications of the ACM (CACM), october 2001.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- Hitachi, Ltd. and Fujitsu, Ltd. Linux kernel state tracer, 2001, 2005. http://lkst.sourceforge.net/.]]Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- Red Hat, Inc. Red hat content accelerator (tux), 2001, 2002. http://www.redhat.com/docs/manuals/tux/.]]Google Scholar
- J. Roberson. Ule: A modern scheduler for FreeBSD. In Proceedings of BSDCon '03, pages 17--28. USENIX Association, September 2003.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
Index Terms
- A dynamic aspect-oriented system for OS kernels
Recommendations
An aspect-oriented framework for operating system evolution
SAC '10: Proceedings of the 2010 ACM Symposium on Applied ComputingThis paper presents an aspect-oriented framework which enables dynamically weaving aspects into operating system in order to adjust its functionalities during system operation. The framework is designed based on the notion of dynamic aspect weaving in ...
Modeling for dynamic aspect-oriented development
C3S2E '09: Proceedings of the 2nd Canadian Conference on Computer Science and Software EngineeringAspect Oriented Software Development (AOSD) has its roots in the need to deal with requirements that cut across the primary modularization of a software system. On the programming level, mature, industrial-strength tools like the de-facto standard ...
Experimental aspect-oriented language - AspectCOOL
SAC '02: Proceedings of the 2002 ACM symposium on Applied computingAspect-oriented programming (AOP) is a programming technique for modularizing concerns that crosscut the basic functionality of programs. In AOP, aspect languages are used to describe properties, which crosscut basic functionality, in a clean and a ...
Comments