An Aspect-Oriented OS Family for Resource-Constrained Embedded Systems

An Aspect-Oriented OS Family for Resource-Constrained Embedded Systems

CiAO: An Aspect-Oriented OS Family for Resource-Constrained Embedded Systems Daniel Lohmann Wanja Hofer Wolfgang Schröder-Preikschat Friedrich-Alexander University Erlangen-Nuremberg Jochen Streicher Olaf Spinczyk Technical University Dortmund CiAO is aspect-oriented Motivation: Embedded Systems [email protected] - USENIX 2009 2 Motivation: Embedded Systems Goal: Reuse Scalability, Configurability, Tailorability [email protected] - USENIX 2009 3 Motivation: Configurability of eCos [email protected] - USENIX 2009 4 Motivation: Configurability of eCos Mutex options: PROTOCOL CEILING INHERIT DYNAMIC Kernel policies: Tracing Instrumentation Synchronization [email protected] - USENIX 2009 5 Motivation: Configurability of eCos Mutex options: PROTOCOL CEILING INHERIT DYNAMIC Kernel policies: Tracing Instrumentation Synchronization [email protected] - USENIX 2009 6 Motivation: Configurability of eCos Mutex options: PROTOCOL CEILING INHERIT DYNAMIC Kernel policies: Tracing Instrumentation Synchronization [email protected] - USENIX 2009 7 Motivation: Configurability of eCos Base implementation: Cyg_Mutex::Cyg_Mutex() { locked = false; owner = NULL; } Cross-cutting concerns: 34 #ifdef-blocks spread over 17 functions and data structures in 4 implementation units [email protected] - USENIX 2009 8 Motivation: Configurability of OS #ifdef hell Difficult to understand, maintain, evolve Lack of encapsulation in the implementation Tangling of many concerns in one implementation unit Scattering across several implementation units [email protected] - USENIX 2009 11 Talk Outline Cross-cutting in Configurable System Software Aspect-Oriented Programming (AOP) to the Rescue? CiAO: Aspect-Aware OS Design Evaluation: Suitability for Embedded Systems [email protected] - USENIX 2009 12 Talk Outline Cross-cutting in Configurable System Software Aspect-Oriented Programming (AOP) to the Rescue? CiAO: Aspect-Aware OS Design Evaluation: Suitability for Embedded Systems [email protected] - USENIX 2009 13 AOP to the Rescue? AOP aids modularization of cross-cutting concerns well modularized concern badly modularized without AOP [email protected] - USENIX 2009 14 AOP to the Rescue? AOP aids modularization of cross-cutting concerns It does so by means of aspects well modularized concern aspect badly modularized without AOP with AOP [email protected] - USENIX 2009 15 AOP – Short Introduction Encapsulation of (cross-cutting) concerns in aspects aspect components [email protected] - USENIX 2009 16 AOP – Short Introduction Encapsulation of (cross-cutting) concerns in aspects Aspects give advice to join points in the target system aspect components [email protected] - USENIX 2009 17 AOP – Short Introduction Encapsulation of (cross-cutting) concerns in aspects Aspects give advice to join points in the target system Set of join points described by a pointcut expression aspect pointcut components [email protected] - USENIX 2009 18 AOP – Short Introduction Encapsulation of (cross-cutting) concerns in aspects Aspects give advice to join points in the target system Set of join points described by a pointcut expression aspect pointcut Obliviousness & Quantification components [email protected] - USENIX 2009 19 AOP – AspectC++ Extension to C++ C++ Sources AspectC++ Sources Source-to-source weaver ac++ Woven C++ Code http://www.aspectc.org c++ 01010001100 11011101001 Binary Program [email protected] - USENIX 2009 20 AOP – Why Can It Help? Inversion of caller–callee binding: // traditional implementation void dingus() { …// do basic stuff #ifdef OPT_FEATURE thingy(); #endif } void thingy() { …// do optional stuff } [email protected] - USENIX 2009 21 AOP – Why Can It Help? Inversion of caller–callee binding: // traditional implementation // AOP implementation void dingus() void dingus() { { …// do basic stuff // do basic stuff #ifdef OPT_FEATURE } thingy(); #endif } void thingy() advice execution(“% dingus()”) : { after() …// do optional stuff { } // do optional stuff } [email protected] - USENIX 2009 22 AOP – Why Can It Help? Quantification over multiple join points: // traditional implementation void dingus_foo() { #ifdef OPT_FEATURE thingy(); #endif } void dingus_bar() { #ifdef OPT_FEATURE thingy(); #endif } void thingy(){ // do optional stuff } [email protected] - USENIX 2009 23 AOP – Why Can It Help? Quantification over multiple join points: // traditional implementation // AOP implementation void dingus_foo() { void dingus_foo() { #ifdef OPT_FEATURE } thingy(); #endif } void dingus_bar() { void dingus_bar() { #ifdef OPT_FEATURE } thingy(); #endif } void thingy(){ advice execution(“% dingus%()”) : // do optional stuff after() { } // do optional stuff } [email protected] - USENIX 2009 24 Talk Outline Cross-cutting in Configurable System Software Aspect-Oriented Programming (AOP) to the Rescue? CiAO: Aspect-Aware OS Design Evaluation: Suitability for Embedded Systems [email protected] - USENIX 2009 25 CiAO: Aspect-Aware OS Design Goal of the CiAO project: Evaluate if AOP is suitable for the design of configurable embedded system software . Can AOP help to avoid #ifdef hell? . Is AOP efficient enough for the domain of embedded systems? [email protected] - USENIX 2009 26 CiAO: Aspect-Aware OS Design Goal of the CiAO project: Evaluate if AOP is suitable for the design of configurable embedded system software . Can AOP help to avoid #ifdef hell? . Is AOP efficient enough for the domain of embedded systems? Yes, if the system is designed in an aspect-aware manner Obliviousness? No! Quantification? Yes! [email protected] - USENIX 2009 27 CiAO: Aspect-Aware OS Design Idea of aspect awareness: Provide unambiguous and statically evaluable join points. Unambiguity: Important system state transitions can be captured by a pointcut expression. Static evaluation: Avoid necessity for dynamic pointcut functions, which bear an overhead. [email protected] - USENIX 2009 28 CiAO: Aspect-Aware OS Design Loose coupling Visible transitions Minimal extensions Result: Sparse base system designed with classes, most functionality provided by (optional) aspects Three main aspect purposes: . Extension aspects: add features . Policy aspects: glue components together . Upcall aspects: bind behavior to lower-level events [email protected] - USENIX 2009 31 Extension Aspects Example: task scheduling // base implementation struct Task { Pri pri_; State state_; … }; class Sched { Tasklist ready_; Task::Id running_; public: void activate(Task::Id t); void reschedule(); … }; [email protected] - USENIX 2009 32 Extension Aspects Example: task scheduling extended (resource control) // base implementation aspect ResourceSupport { struct Task { advice “Task” : slice struct { Pri pri_; ResourceMask occupied_; State state_; Pri originalPri_; … }; }; advice “Sched” : slice class { class Sched { public: Tasklist ready_; void getRes(Res::Id r) { Task::Id running_; // lock mutex public: } void activate(Task::Id t); void relRes(Res::Id r) { void reschedule(); // unlock mutex … } }; }; }; ResourceSupport.ah [email protected] - USENIX 2009 33 Policy Aspects Example: specification of preemption points aspect FullPreemption { // points where another task may get a higher prio pointcut pcPreemptionPoints = “% Sched::activate(…)” || “% Sched::setEvent(…)” || “% Sched::relRes(…)”; advice execution(pcPreemptionPoints()) : after() { tjp->that()->reschedule(); } }; Preemption.ah [email protected] - USENIX 2009 34 Upcall Aspects Example: binding of an interrupt handler aspect TimerBinding { advice execution(“% irq::Timer::handler(…)”) : after() { // handle IRQ } }; TimerBinding.ah [email protected] - USENIX 2009 35 Talk Outline Cross-cutting in Configurable System Software Aspect-Oriented Programming (AOP) to the Rescue? CiAO: Aspect-Aware OS Design Evaluation: Suitability for Embedded Systems [email protected] - USENIX 2009 36 Evaluation Suitability of AOP for configurable systems . Increased modularization? . Scalability? Suitability of AOP for resource-constrained systems . Resource efficiency? . Scalability? [email protected] - USENIX 2009 37 Evaluation Suitability of AOP for configurable systems . Increased modularization? . Scalability? Suitability of AOP for resource-constrained systems . Resource efficiency? . Scalability? [email protected] - USENIX 2009 38 Evaluation Suitability of AOP for configurable systems . Increased modularization? . Scalability? Suitability of AOP for resource-constrained systems . Resource efficiency? . Scalability? [email protected] - USENIX 2009 39 Evaluation Suitability of AOP for configurable systems . Increased modularization? . Scalability? Suitability of AOP for resource-constrained systems . Resource efficiency? . Scalability? [email protected] - USENIX 2009 40 Evaluation Suitability of AOP for configurable systems . Increased modularization? Yes! . Scalability? Good! Suitability of AOP for resource-constrained systems . Resource efficiency? Good! . Scalability? Good! [email protected] - USENIX 2009 41 Evaluation: Issues Aspects for low-level code: . Transformations can break fragile join points (e.g., context switch) . Explicit join points with empty functions Aspect–aspect interdependencies: . Order advice, if several aspects affect same join point Join-point traceability: . Visualization of join-point deltas between revisions . Further tool support needed (acdt.aspectc.org) Granularity: . Advices apply to procedures (i.e. calls), not statements [email protected] - USENIX 2009 42 Summary AOP is very well suited for the implementation of highly configurable system software, avoiding #ifdef hell With aspect-awareness design principles in mind, the increased modularization comes at no costs CiAO is the first aspect-oriented operating system [email protected] - USENIX 2009 43 Summary AOP is very well suited for the implementation of highly configurable system software, avoiding #ifdef hell With aspect-awareness design principles in mind, the increased modularization comes at no costs CiAO is the first aspect-oriented operating system Thanks for your attention! [email protected] - USENIX 2009 44 .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    40 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us