Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1217935.1217954acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
Article

A quantitative analysis of aspects in the eCos kernel

Published: 18 April 2006 Publication History

Abstract

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.

References

[1]
eCos homepage. http://ecos.sourceware.org/.
[2]
R. A. Åberg, J. L. Lawall, M. Südholt, G. Muller, and A.-F. L. Meur. On the automatic evolution of an os kernel using temporal logic and aop. In 18th IEEE Int. Conf. on Automated Software Engineering (ASE '03), pages 196--204, Montreal, Canada, Mar. 2003. IEEE.
[3]
P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Optimising aspectj. In ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI'05), pages 117--128, New York, NY, USA, June 2005. ACM Press.
[4]
D. Beuche, A. A. Fröhlich, R. Meyer, H. Papajewski, F. Schön, W. Schröder-Preikschat, O. Spinczyk, and U. Spinczyk. On architecture transparency in operating systems. In 9th SIGOPS European W'shop "Beyond the PC: New Challenges for the Operating System", pages 147--152, Kolding, Denmark, Sept. 2000. ACM.
[5]
D. Beuche, A. Guerrouat, H. Papajewski, W. Schröder-Preikschat, O. Spinczyk, and U. Spinczyk. The PURE family of object-oriented operating systems for deeply embedded systems. In 2nd IEEE Int. Symp. on OO Real-Time Distributed Computing (ISORC '99), pages 45--53, St Malo, France, May 1999.
[6]
Y. Coady and G. Kiczales. Back to the future: A retroactive study of aspect evolution in operating system code. In M. Akşit, editor, 2nd Int. Conf. on Aspect-Oriented Software Development (AOSD '03), pages 50--59, Boston, MA, USA, Mar. 2003. ACM.
[7]
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'01, 2001.
[8]
A. Colyer, A. Clement, R. Bodkin, and J. Hugunin. Using AspectJ for component integration in middleware. In 18th ACM Conf. on OOP, Systems, Languages, and Applications (OOPSLA '03), pages 339--344, New York, NY, USA, 2003. ACM.
[9]
M. Devillechaise, J. Menaud, G. Muller, and J. Lawall. Web cache prefetching as an aspect: Towards a dynamic-weaving based solution. In M. Aksit, editor, 2nd Int. Conf. on Aspect-Oriented Software Development (AOSD '03), pages 110--119, Boston, MA, USA, Mar. 2003. ACM.
[10]
R. Douence, T. Fritz, N. Loriant, J. M. Menaud, M. S. Devillechaise, and M. Suedholt. An expressive aspect language for system applications with Arachne. In P. Tarr, editor, 4th Int. Conf. on Aspect-Oriented Software Development (AOSD '05), pages 27--38, Chicago, Illinois, Mar. 2005. ACM.
[11]
K. Driesen and U. Hölzle. The direct cost of virtual function calls in C++. In 11th ACM Conf. on OOP, Systems, Languages, and Applications (OOPSLA '96), Oct. 1996.
[12]
B. Dufour, C. Goard, L. Hendren, C. Verbrugge, O. de Moor, and G. Sittampalam. Measuring the dynamic behaviour of AspectJ programs. In 19th ACM Conf. on OOP, Systems, Languages, and Applications (OOPSLA '04), pages 150--169, New York, NY, USA, 2004. ACM.
[13]
T. Elrad, M. Aksits, G. Kiczales, K. Lieberherr, and H. Ossher. Discussing aspects of aop. CACM, 44(10):33--38, 2001.
[14]
T. Elrad, R. E. Filman, and A. Bader. Aspect-oriented programming. CACM, pages 29--32, Oct. 2001.
[15]
M. Engel and B. Freisleben. Supporting Autonomic Computing Functionality via Dynamic Operating System Kernel Aspects. In P. Tarr, editor, 4th Int. Conf. on Aspect-Oriented Software Development (AOSD '05), pages 51--62, Chicago, Illinois, Mar. 2005. ACM.
[16]
M. Fiuczynski, R. Grimm, Y. Coady, and D. Walker, patch (I) considered harmful. In 10th W'shop on Hot Topics in Operating Systems (HotOS'05). USENIX, 2005.
[17]
B. Harbulot and J. R. Gurd. Using aspectj to separate concerns in parallel scientific Java code. In 3rd Int. Conf. on Aspect-Oriented Software Development (AOSD '04), pages 122--131. ACM, Mar. 2004.
[18]
M. Haupt and M. Mezini. Micro-measurements for dynamic aspect-oriented systems. In NetObjectDays (NODe '04), volume 3263 of LNCS, pages 81--96, Erfurt, Germany, Sept. 2004. Springer.
[19]
F. Hunleth and R. Cytron. Footprint and feature management using aspect-oriented programming techniques. In 2002 Joint LCTES & SCOPES Conferences (LCTES/SCOPES '02), pages 38--45, Berlin, Germany, June 2002. ACM.
[20]
M. Kersten and G. C. Murphy. Mylar: a degree-of-interest model for ides. In P. Tarr, editor, 4th Int. Conf. on Aspect-Oriented Software Development (AOSD '05), pages 159--168, Chicago, Illinois, Mar. 2005. ACM.
[21]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In J. L. Knudsen, editor, 15th Eur. Conf. on OOP (ECOOP '01), volume 2072 of LNCS, pages 327--353. Springer, June 2001.
[22]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Aksit and S. Matsuoka, editors, 11th Eur. Conf. on OOP (ECOOP '97), volume 1241 of LNCS, pages 220--242. Springer, June 1997.
[23]
D. Lohmann and O. Spinczyk. Architecture-Neutral Operating System Components. 23rd ACM Symp. on OS Principles (SOSP '03), Oct. 2003. WiP presentation.
[24]
D. Lohmann, O. Spinczyk, and W. Schröder-Preikschat. On the configuration of non-functional properties in operating system product lines. In 4th AOSD W'shop on Aspects, Components, and Patterns for Infrastructure Software (AOSD-ACP4IS '05), pages 19--25, Chicago, IL, USA, Mar. 2005. Northeastern University, Boston (NU-CCIS-05-03).
[25]
D. Mahrenholz, O. Spinczyk, A. Gal, and W. Schröder-Preikschat. An aspect-orientied implementation of interrupt synchronization in the PURE operating system family. In 5th ECOOP W'shop on Object Orientation and Operating Systems, pages 49--54, Malaga, Spain, June 2002.
[26]
W. Schröder-Preikschat, D. Lohmann, W. Gilani, F. Scheler, and O. Spinczyk. Static and dynamic weaving in system software with AspectC++. In Y. Coady, J. Gray, and R. Klefstad, editors, 39th Hawaii International Conference on System Sciences (HICSS '06) - Mini-Track on Adaptive and Evolvable Software Systems. IEEE, 2006.
[27]
O. Spinczyk and D. Lohmann. Using AOP to develop architecture-neutral operating system components. In 11th SIGOPS European W'shop, pages 188--192, Leuven, Belgium, Sept. 2004. ACM.
[28]
O. Spinczyk, D. Lohmann, and M. Urban. Advances in AOP with AspectC++. In H. Fujita and M. Mejri, editors, New Trends in Software Methodologies, Tools and Techniques (SoMeT '05), number 129 in Frontiers in Artificial Intelligence and Applications, pages 33--53, Tokyo, Japan, Sept. 2005. IOS Press.
[29]
A. Tešanovié, K. Sheng, and J. Hansson. Application-tailored database systems: a case of aspects in an embedded database. In 8th Int. Database Engineering and Applications Symp. (IDEAS '04), Coimbra, Portugal, July 2004. IEEE.
[30]
L. Yu, S. R. Schach, K. Chen, and A. J. Offutt. Categorization of common coupling and its application to the maintainability of the linux kernel. IEEE TOSE, 30(10):694--706, 2004.
[31]
C. Zhang and H.-A. Jacobsen. Quantifying aspects in middleware platforms. In 2nd Int. Conf. on Aspect-Oriented Software Development (AOSD '03), pages 130--139, New York, NY, USA, 2003. ACM Press.

Cited By

View all
  • (2024)A Modular Distributed Operating System Architecture for Scalable Mesh Topologies2024 International Conference on Emerging Trends in Smart Technologies (ICETST)10.1109/ICETST62952.2024.10737937(1-5)Online publication date: 10-Oct-2024
  • (2020)Activities and costs of re-engineering cloned variants into an integrated platformProceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems10.1145/3377024.3377044(1-10)Online publication date: 5-Feb-2020
  • (2020)#ifdef Directives and Program Comprehension: The Dilemma between Correctness and Preference2020 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME46990.2020.00033(255-266)Online publication date: Sep-2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
EuroSys '06: Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
April 2006
420 pages
ISBN:1595933220
DOI:10.1145/1217935
  • cover image ACM SIGOPS Operating Systems Review
    ACM SIGOPS Operating Systems Review  Volume 40, Issue 4
    Proceedings of the 2006 EuroSys conference
    October 2006
    383 pages
    ISSN:0163-5980
    DOI:10.1145/1218063
    Issue’s Table of Contents

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 April 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Aspect-Oriented Programming (AOP)
  2. AspectC++
  3. Footprint
  4. eCos

Qualifiers

  • Article

Conference

EUROSYS06
Sponsor:
EUROSYS06: Eurosys 2006 Conference
April 18 - 21, 2006
Leuven, Belgium

Acceptance Rates

Overall Acceptance Rate 241 of 1,308 submissions, 18%

Upcoming Conference

EuroSys '25
Twentieth European Conference on Computer Systems
March 30 - April 3, 2025
Rotterdam , Netherlands

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)22
  • Downloads (Last 6 weeks)2
Reflects downloads up to 30 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)A Modular Distributed Operating System Architecture for Scalable Mesh Topologies2024 International Conference on Emerging Trends in Smart Technologies (ICETST)10.1109/ICETST62952.2024.10737937(1-5)Online publication date: 10-Oct-2024
  • (2020)Activities and costs of re-engineering cloned variants into an integrated platformProceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems10.1145/3377024.3377044(1-10)Online publication date: 5-Feb-2020
  • (2020)#ifdef Directives and Program Comprehension: The Dilemma between Correctness and Preference2020 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME46990.2020.00033(255-266)Online publication date: Sep-2020
  • (2019)An investigation of misunderstanding code patterns in C open-source software projectsEmpirical Software Engineering10.1007/s10664-018-9666-x24:4(1693-1726)Online publication date: 1-Aug-2019
  • (2018)Physical separation of featuresProceedings of the 33rd Annual ACM Symposium on Applied Computing10.1145/3167132.3167351(2042-2049)Online publication date: 9-Apr-2018
  • (2018)Discipline Matters: Refactoring of Preprocessor Directives in the #ifdef HellIEEE Transactions on Software Engineering10.1109/TSE.2017.268833344:5(453-469)Online publication date: 1-May-2018
  • (2017)Un-preprocessingProceedings of the 9th Asia-Pacific Symposium on Internetware10.1145/3131704.3131715(1-10)Online publication date: 23-Sep-2017
  • (2016)FeatureCoPP: compositional annotationsProceedings of the 7th International Workshop on Feature-Oriented Software Development10.1145/3001867.3001876(74-84)Online publication date: 30-Oct-2016
  • (2016)Safely evolving preprocessor-based configurable systemsProceedings of the 38th International Conference on Software Engineering Companion10.1145/2889160.2891036(668-670)Online publication date: 14-May-2016
  • (2016)Preprocessor-based variability in open-source and industrial software systemsEmpirical Software Engineering10.1007/s10664-015-9360-121:2(449-482)Online publication date: 1-Apr-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media