ABSTRACT
To master the complexity of software systems in the presence of unexpected events potentially affecting system operation, the Autonomic Computing Initiative [16] aims to build systems that have the ability to control and organize themselves to meet unforeseen changes in the hard- and software environment.The basic principles employed by autonomic computing are self-configuration, self-optimization, self-healing and self-protection. Typically, these principles are cross-cutting concerns, so an obvious approach to their realization in software is to use aspect-oriented programming (AOP). Since autonomic systems have to adapt their behavior to changing runtime conditions, a dynamic AOP approach is required to implement autonomic computing functionality.This paper introduces the TOSKANA toolkit for deploying dynamic aspects into an operating system kernel as a central part of a computer system having an overview of current system operation and resource usage. TOSKANA provides before, after and around advice for in-kernel functions and supports the specification of pointcuts as well as the implementation of aspects themselves as dynamically exchangeable kernel modules. The use of TOSKANA is demonstrated by several examples indicating the cross-cutting nature of providing autonomic computing functionality in an operating system kernel. Performance results are presented to characterize the aspect deployment overhead incurred by using TOSKANA.
- C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. "Virtual Machine Support for Dynamic Join Points". In "Proceedings of the Third International Conference on Aspect-Oriented Software Development (AOSD'04)", pages 83--92. ACM Press, 2004. 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, 2004. Google ScholarDigital Library
- C. Cifuentes and S. Sendall. "Specifying the Semantics of Machine Instructions". In "Proceedings of the 6th International Workshop on Program Comprehension - IWPC'98", pages 126--133. IEEE Press, 1998. Google ScholarDigital Library
- Y. Coady and G. Kiczales. "Back to the Future: A Retroactive Study of Aspect Evolution in Operating System Code". In "Proceedings of the Second International Conference on Aspect-Oriented Software Development (AOSD'03)", pages 50--59. ACM Press, 2003. Google ScholarDigital Library
- Y. Coady, G. Kiczales, M. Feeley, N. Hutchinson, and J. S. Ong. "Structuring System Aspects: Using AOP to Improve OS Structure Modularity". In "Communications of the ACM, Volume 44, Issue 10", pages 79--82. ACM Press, 2001. Google ScholarDigital Library
- Y. Coady, G. Kiczales, M. Feeley, N. Hutchinson, J. S. Ong, and S. Gudmundson. "Exploring an Aspect-Oriented Approach to OS Code". In "Proceedings of the 4th Workshop on Object-Orientation and Operating Systems at the 15th European Conference on Object-Oriented Programming (ECOOP-OOOSW)". Universidad de Oviedo, 2001.Google Scholar
- Y. Coady, G. Kiczales, M. Feeley, N. Hutchinson, J. S. Ong, and S. Gudmundson. "Position Summary: Aspect-Oriented System Structure". In "Proceedings of the 8th Workshop on Hot Topics in Operating Systems (HOTOS-VIII)", page 166. IEEE Press, 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 "Proceedings of of the Joint European Software Engineering Conference (ESEC) and 9th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE-9)", pages 88--98. ACM Press, 2001. Google ScholarDigital Library
- C. DiBona, S. Ockman, and M. S. (Editors). "Open Sources - Voices from the Open Source Revolution". O'Reilly, Sebastopol, 1999. Google ScholarDigital Library
- A. Gal, W. Schröder-Preikschat, and O. Spinczyk. "On Minimal Overhead Operating Systems and Aspect-Oriented Programming". In "Proceedings of the 4th Workshop on Object-Orientation and Operating Systems at the 15th European Conference on Object-Oriented Programming (ECOOP-OOOSW)". Universidad de Oviedo, 2001.Google Scholar
- P. Greenwood and L. Blair. "Using Dynamic Aspect-Oriented Programming to Implement an Autonomic System". In "Proceedings of the 2004 Dynamic Aspects Workshop (DAW04), Lancaster", pages 76--88. RIACS, 2004.Google Scholar
- M. Haupt and M. Mezini. "Micro-Measurements for Dynamic Aspect-Oriented Systems". In M. Weske and P. Liggesmeyer, editors, Proceedings of Net.ObjectDays, volume 3263 of LNCS, pages 81--96. Springer Press, 2004.Google Scholar
- U. Hölzle, L. Bak, S. Grarup, R. Griesemer, and S. Mitrovic. "Java on Steroids: Sun's High-Performance Java Implementation". In Proceedings of the 9th Symposium on High Performance Chips (HotChips IX). IEEE Press, 1997.Google Scholar
- Intel. "IA-32 Intel Architecture Software Developer's Manual, Volume 2A/B: Instruction Set Reference". Intel, 2004.Google Scholar
- Intel. "Pentium Architecture Manual, Section 6: Debugging". Intel, 2004.Google Scholar
- J. O. Kephart and D. M. Chess. "The Vision of Autonomic Computing". In "IEEE Computer 01/2003", pages 43--50. IEEE Press, 2003. Google ScholarDigital Library
- C. Lattner and V. Adve. "LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation". In "Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO'04), Palo Alto, California", pages 75--84. ACM Press, 2004. Google ScholarDigital Library
- S. J. Leffler, M. K. McKusick, M. J. Karels, and J. S. Quaterman. "The Design and Implementation of the 4.4 BSD UNIX Operating System". Addison-Wesley, Reading, Mass., 1994. Google ScholarDigital Library
- T. Lindholm and F. Yellin. "Java Virtual Machine Specification, Second Edition". Addison-Wesley, Reading, Mass., 1999. Google ScholarDigital Library
- M. K. McKusick and G. V. Neville-Neil. "The Design and Implementation of the FreeBSD Operating System". Addison-Wesley, Reading, Mass., 2004. Google ScholarDigital Library
- R. A. Mullen. "z/VM: The Value of zSeries Virtualization Technology for Linux". In "Proceedings of the IBM z/VM, VSE and Linux on zSeries Technical Conference, Miami, Florida". IBM, 2002.Google Scholar
- C. Müller-Schloer. "Organic Computing - On the Feasibility of Controlled Emergence". In Proceedings of the International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS). ACM Press, 2004. Google ScholarDigital Library
- I. Piumarta, B. Folliot, L. Seinturier, C. Baillarguet, and C. Khoury. "Highly Configurable Operating Systems: the VVM Approach". In "Proceedings of the 3rd Workshop on Object-Orientation and Operating Systems at the 14th European Conference on Object-Oriented Programming (ECOOP-OOOSW)". ECOOP, 2000.Google Scholar
- P. Salus. "A Quarter Century of UNIX". Addison-Wesley, New York, 1994. Google ScholarDigital Library
- M. Segura-Devillechaise, J.-M. Menaud, G. Muller, and J. Lawall. "Web Cache Prefetching as an Aspect: Towards a Dynamic-Weaving Based Solution". In "Proceedings of the 2nd International Conference on Aspect-oriented Software Development", pages 110--119. ACM Press, 2003. Google ScholarDigital Library
- O. Spinczyk and D. Lohmann. "Using AOP to Develop Architectural-Neutral Operating System Components". In "Proceedings of the 11th ACM SIGOPS European Workshop (SIGOPS04)". ACM Press, 2004. Google ScholarDigital Library
- O. Stampflee, C. Gibbs, and Y. Coady. "RADAR: Really Low-Level Aspects for Dynamic Analysis and Reasoning". In "Proceedings of the ECOOP Workshop on Programming Languages and Operating Systems". ECOOP, 2004.Google Scholar
- A. Tamches and B. P. Miller. "Fine-Grained Dynamic Instrumentation of Commodity Operating System Kernels". In "Proceedings of Third Symposium on Operating Systems Design and Implementation (OSDI)", pages 117--130. ACM Press, 1999. Google ScholarDigital Library
- The Free Software Foundation. "Using the GNU Compiler Collection (GCC)". FSF, 2004.Google Scholar
- The Tool Interface Standard Committee. "Executable and Linking Format (ELF) Specification Version 1.2". TIS Committee, 1995.Google Scholar
- Transmeta. "The Technology Behind Crusoe Processors White Paper". 2003.Google Scholar
Index Terms
- Supporting autonomic computing functionality via dynamic operating system kernel aspects
Recommendations
Towards Autonomic GIPSY
EASE '08: Proceedings of the Fifth IEEE Workshop on Engineering of Autonomic and Autonomous SystemsThe goal of the autonomic GIPSY (AGIPSY) is to make the General Intensional Programming System (GIPSY) capable of self-managing to a far greater extent than it does it now. This paper presents the AGIPSY architecture for autonomic computing based on ...
Towards autonomic computing: a new self-management method
AICI'11: Proceedings of the Third international conference on Artificial intelligence and computational intelligence - Volume Part IAutonomic computing is a new technology which aims to hide the software complexity by means of "technologies managing technologies". The paper concludes and analysis the related concept of autonomic computing, the architecture and the working mechanisms ...
Using common off-the-shelf tools to implement dynamic aspects
An emerging software engineering paradigm, Aspect-Oriented Programming, can be used to facilitate moving common interests or requirements from individual software functions into a separate module. Aspect code is woven into the software on either a ...
Comments