Optimization aspects in network simulation

A primary goal of AOSD in the context of systems software has been to permit improved modularity without significantly degrading performance. Optimizations represent important crosscutting concerns in this context but also a significant challenge due to their fine-grained nature. This paper investigates how well the current state-of-the-art in AOSD can support such optimization aspects, via a case study involving an optimized network simulator, IP-TN. Duplication of optimizations achieved via low-level modifications to IP-TN in C++ have been attempted via aspectization of those optimizations in AspectC++. While comparable run-time performance is achieved with AspectC++ and (un)pluggability is clearly simpler, the effects on comprehensibility are less clear.

[1]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[2]  Robert J. Walker,et al.  Implementing protocols via declarative event patterns , 2004, SIGSOFT '04/FSE-12.

[3]  Yuanyuan Song,et al.  Information hiding interfaces for aspect-oriented design , 2005, ESEC/FSE-13.

[4]  Bernd Freisleben,et al.  Using a Low-Level Virtual Machine to Improve Dynamic Aspect Support in Operating System Kernels , 2005 .

[5]  Martin Fowler Yet Another Optimization Article , 2002, IEEE Softw..

[6]  Evolving an OS Kernel using Temporal Logic and Aspect-Oriented Programming , 2003 .

[7]  Brian N. Bershad,et al.  Scheduler activations: effective kernel support for the user-level management of parallelism , 1991, TOCS.

[8]  Brian W. Unger,et al.  Applying parallel discrete event simulation to network emulation , 2000, Proceedings Fourteenth Workshop on Parallel and Distributed Simulation.

[9]  Seongsoo Hong,et al.  Weaving Aspects into Real-Time Operating System Design Using Object-Oriented Model Transformation , 2003, 2003 The Ninth IEEE International Workshop on Object-Oriented Real-Time Dependable Systems.

[10]  Gregor Kiczales,et al.  Structuring operating system aspects. , 2001 .

[11]  Yasuhiko Yokote,et al.  The Apertos reflective operating system: the concept and its implementation , 1992, OOPSLA.

[12]  Jerome H. Saltzer,et al.  End-to-end arguments in system design , 1984, TOCS.

[13]  Brian W. Unger,et al.  Simulation of large scale networks I: modelling differentiated services in conservative PDES , 2003, WSC '03.

[14]  Rémi Douence,et al.  Programming OS Schedulers with Domain-Specific Languages and Aspects: New Approaches for OS Kernel Engineering∗ , 2002 .

[15]  Daniel Mahrenholz,et al.  An Aspect-Oriented Implementation of Interrupt Synchronization in the PURE Operating System Family∗ , 2002 .

[16]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[17]  Gregor Kiczales,et al.  Back to the future: a retroactive study of aspect evolution in operating system code , 2003, AOSD '03.

[18]  William A. Wulf,et al.  Policy/mechanism separation in Hydra , 1975, SOSP.

[19]  John R. Gurd,et al.  A join point for loops in AspectJ , 2006, AOSD '06.

[20]  Carey L. Williamson,et al.  Hybrid packet/fluid flow network simulation , 2003, Seventeenth Workshop on Parallel and Distributed Simulation, 2003. (PADS 2003). Proceedings..

[21]  David D. Clark,et al.  The structuring of systems using upcalls , 1985, SOSP '85.

[22]  Ramnivas Laddad Aspect Oriented Refactoring , 2008 .

[23]  Brian W. Unger,et al.  Addressing blocking and scalability in critical channel traversing , 2002, Proceedings 16th Workshop on Parallel and Distributed Simulation.

[24]  Julia L. Lawall,et al.  Web cache prefetching as an aspect: towards a dynamic-weaving based solution , 2003, AOSD '03.

[25]  Wolfgang Schröder-Preikschat,et al.  AspectC++: an aspect-oriented extension to the C++ programming language , 2002 .

[26]  Gregor Kiczales,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001, ESEC/FSE-9.

[27]  Larry L. Peterson,et al.  Beyond micro-kernel design: decoupling modularity and protection in Lipto , 1992, [1992] Proceedings of the 12th International Conference on Distributed Computing Systems.

[28]  Robert J. Walker,et al.  An initial assessment of aspect-oriented programming , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[29]  R. Curry,et al.  Modelling differentiated services in conservative PDES , 2003, Proceedings of the 2003 Winter Simulation Conference, 2003..

[30]  Donald F. Towsley,et al.  A study of networks simulation efficiency: fluid simulation vs. packet-level simulation , 2001, Proceedings IEEE INFOCOM 2001. Conference on Computer Communications. Twentieth Annual Joint Conference of the IEEE Computer and Communications Society (Cat. No.01CH37213).

[31]  Wolfgang Schröder-Preikschat,et al.  On the Configuration of Non-Functional Properties in Operating System Product Lines , 2005 .

[32]  Frank Piessens,et al.  A survey of customizability in operating systems research , 2002, CSUR.

[33]  Daniel Mahrenholz,et al.  Program instrumentation for debugging and monitoring with AspectC++ , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[34]  George Kesidis,et al.  Feasibility of fluid event-driven simulation for ATM networks , 1996, Proceedings of GLOBECOM'96. 1996 IEEE Global Telecommunications Conference.

[35]  Martin P. Robillard,et al.  Separating features in source code: an exploratory study , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[36]  Brian W. Unger,et al.  ANML: A language for describing networks , 2001, MASCOTS 2001, Proceedings Ninth International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems.

[37]  Andreas Polze,et al.  Speed vs . Memory Usage-An Approach to Deal with Contrary Aspects , 2002 .

[38]  Gregor Kiczales,et al.  Structuring operating system aspects: using AOP to improve OS structure modularity , 2001, CACM.

[39]  David M. Nicol,et al.  Fluid-based Simulation of Communication Networks using SSF , 1999 .

[40]  Jörgen Hansson,et al.  Aspects and components in real-time system development: Towards reconfigurable and reusable software , 2005, J. Embed. Comput..

[41]  Hans-Arno Jacobsen,et al.  Refactoring Middleware with Aspects , 2003, IEEE Trans. Parallel Distributed Syst..