The direct cost of virtual function calls in C++
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Aspect-oriented programming: Introduction
Communications of the ACM
Communications of the ACM
Using aspectC to improve the modularity of path-specific customization in operating system code
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Footprint and feature management using aspect-oriented programming techniques
Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems
On architecture transparency in operating systems
EW 9 Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system
Back to the future: a retroactive study of aspect evolution in operating system code
Proceedings of the 2nd international conference on Aspect-oriented software development
Web cache prefetching as an aspect: towards a dynamic-weaving based solution
Proceedings of the 2nd international conference on Aspect-oriented software development
Quantifying aspects in middleware platforms
Proceedings of the 2nd international conference on Aspect-oriented software development
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
The PURE Family of Object-Oriented Operating Systems for Deeply Embedded Systems
ISORC '99 Proceedings of the 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing
Using AspectJ for component integration in middleware
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using AspectJ to separate concerns in parallel scientific Java code
Proceedings of the 3rd international conference on Aspect-oriented software development
Application-Tailored Database Systems: A Case of Aspects in an Embedded Database
IDEAS '04 Proceedings of the International Database Engineering and Applications Symposium
Categorization of Common Coupling and Its Application to the Maintainability of the Linux Kernel
IEEE Transactions on Software Engineering
Measuring the dynamic behaviour of AspectJ programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An expressive aspect language for system applications with Arachne
Proceedings of the 4th international conference on Aspect-oriented software development
Supporting autonomic computing functionality via dynamic operating system kernel aspects
Proceedings of the 4th international conference on Aspect-oriented software development
Mylar: a degree-of-interest model for IDEs
Proceedings of the 4th international conference on Aspect-oriented software development
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Static and Dynamic Weaving in System Software with AspectC++
HICSS '06 Proceedings of the 39th Annual Hawaii International Conference on System Sciences - Volume 09
Using AOP to develop architectural-neutral operating system components
Proceedings of the 11th workshop on ACM SIGOPS European workshop
HOTOS'05 Proceedings of the 10th conference on Hot Topics in Operating Systems - Volume 10
Advances in AOP with AspectC++
Proceedings of the 2005 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the fourth SoMeT_W05
When to use features and aspects?: a case study
Proceedings of the 5th international conference on Generative programming and component engineering
Applying aspects to a real-time embedded operating system
Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software
Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software
Towards easing the diagnosis of bugs in OS code
Proceedings of the 4th workshop on Programming languages and operating systems
Configurable memory protection by aspects
Proceedings of the 4th workshop on Programming languages and operating systems
Aspect-oriented fault tolerance for real-time embedded systems
Proceedings of the 2008 AOSD workshop on Aspects, components, and patterns for infrastructure software
Concern impact analysis in configurable system software: the AUTOSAR OS case
Proceedings of the 2008 AOSD workshop on Aspects, components, and patterns for infrastructure software
Infrastructure for ubiquitous computing: improving quality with modularisation
Proceedings of the 2008 AOSD workshop on Aspects, components, and patterns for infrastructure software
On the feasibility of an AOSD approach to Linux kernel extensions
Proceedings of the 2008 AOSD workshop on Aspects, components, and patterns for infrastructure software
Zero-Overhead Composable Aspects for .NET
Advances in Software Engineering
Can we refactor conditional compilation into aspects?
Proceedings of the 8th ACM international conference on Aspect-oriented software development
An Exploratory Study for Identifying and Implementing Concerns in Integer Programming
Transactions on Aspect-Oriented Software Development V
Tailor-made data management for embedded systems: A case study on Berkeley DB
Data & Knowledge Engineering
Dynamic AspectC++: Generic Advice at Any Time
Proceedings of the 2009 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the Eighth SoMeT_09
Unification of static and dynamic AOP for evolution in embedded software systems
SC'07 Proceedings of the 6th international conference on Software composition
AspectC++: An integrated approach for static and dynamic adaptation of system software
Knowledge-Based Systems
CiAO: an aspect-oriented operating-system family for resource-constrained embedded systems
USENIX'09 Proceedings of the 2009 conference on USENIX Annual technical conference
Toolchain-independent variant management with the Leviathan filesystem
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
Aspect-aware operating system development
Proceedings of the tenth international conference on Aspect-oriented software development
Analyzing the discipline of preprocessor annotations in 30 million lines of C code
Proceedings of the tenth international conference on Aspect-oriented software development
Proceedings of the sixth conference on Computer systems
FeatureCommander: colorful #ifdef world
Proceedings of the 15th International Software Product Line Conference, Volume 2
PUMA: an aspect-oriented code analysis and manipulation framework for C and C++
Transactions on aspect-oriented software development VIII
TOSKANA: a toolkit for operating system kernel aspects
Transactions on Aspect-Oriented Software Development II
Lean and efficient system software product lines: where aspects beat objects
Transactions on Aspect-Oriented Software Development II
Type checking annotation-based product lines
ACM Transactions on Software Engineering and Methodology (TOSEM)
CiAO/IP: a highly configurable aspect-oriented IP stack
Proceedings of the 10th international conference on Mobile systems, applications, and services
Program comprehension in preprocessor-based software
SAFECOMP'12 Proceedings of the 2012 international conference on Computer Safety, Reliability, and Security
The aspect-aware design and implementation of the CiAO operating-system family
Transactions on Aspect-Oriented Software Development IX
Do background colors improve program comprehension in the #ifdef hell?
Empirical Software Engineering
EsseOS: Haskell-based tailored services for the cloud
Proceedings of the 12th International Workshop on Adaptive and Reflective Middleware
Hi-index | 0.00 |
Nearly ten years after its first presentation and five years after its first application to operating systems, the suitability of Aspect-Oriented Programming (AOP) for the development of operating system kernels is still highly in dispute. While the AOP advocacy emphasizes the benefits of AOP towards better configurability and maintainability of system software, most kernel developers express a sound skepticism regarding the thereby induced runtime and memory costs: Operating system kernels have to be lean and efficient.We have analyzed the runtime and memory costs of aspects in general, on the level of μ-benchmarks, and by refactoring and extending the eCos operating system kernel using AspectC++, an AOP extension to the C++ language. Our results show that most AOP features do not induce a intrinsic overhead and that the actual overhead induced by AspectC++ is very low. We have also analyzed a test case with significant aspect-related costs. This example shows how the structure of the underlying kernel can have a negative impact on aspect implementations and how these costs can be avoided by an aspect-aware design.Based on this analysis, our conclusion is that AOP is suitable for the development of operating system kernels and other kinds of highly efficient infrastructure software.