120 likes | 237 Views
Architecture-Neutral Operating System Components. The Tyranny of OS Architectures. Architecture defines fundamental properties and policies Module structure and interaction schemes Scheduling and locking strategies Interrupt handling and synchronization Supported hardware platforms …
E N D
The Tyranny of OS Architectures • Architecture defines fundamental properties and policies • Module structure and interaction schemes • Scheduling and locking strategies • Interrupt handling and synchronization • Supported hardware platforms • … • Architecture is considered as something static • Decisions are made at early stages of OS development • Extremely costly to adapt later daniel.lohmann@cs.fau.de
But why... shouldn’t it be possible to configure architectural properties? • Optimize a server OS for a dedicated services demands • Taylor down an embedded systems OS • Cope better with architectural evolution daniel.lohmann@cs.fau.de
The Problem Architectural properties are inherent crosscutting Synchronization Interaction daniel.lohmann@cs.fau.de
http://www.aspectc.org Generated OS Code Module C Module C Module A Module B Module A Module B «uses» «uses» Aspect-Oriented Programming • AOP has proven to be successful in dealing with crosscutting concerns • With AspectC++ it is now possible to use AOP for system software development Aspect Weaver OS Modules Code Aspect Code Synchronization «uses» «uses» Interaction daniel.lohmann@cs.fau.de
The CiAO Project (CiAO is Aspect Oriented) • Aspect-oriented family of operating systems • Methods: Feature modeling, static configuration, AOP • Encapsulation of policies and architectural properties • Target: Embedded Systems • From deeply-embedded devices up to embedded UNIX-like systems • High level of adaptability and configurability • Architectural Transparency daniel.lohmann@cs.fau.de
Module C Module B Module A Synchronisation Interaction The CiAO Vision: Architectural Transparency Operating System Construction Set «uses» «uses» Abstract Component Code Sets of Aspects daniel.lohmann@cs.fau.de
Module C Module B Module A Synchronisation Interaction The CiAO Vision: Architectural Transparency Configuration 1: Procedure-based, multithreaded address space Semaphore Call Call Procedure call Used Aspects Generated Component Code daniel.lohmann@cs.fau.de
Module C Module B Module A Synchronisation Interaction The CiAO Vision: Architectural Transparency Configuration 2: Message-based, one thread per module address space «none» Message Message Message (local) Generated Component Code Used Aspects daniel.lohmann@cs.fau.de
Module C Module B Module A Synchronisation Interaction The CiAO Vision: Architectural Transparency Configuration 3: Message-based, one process per module «none» Message Message Message (IPC) Generated Component Code Used Aspects daniel.lohmann@cs.fau.de
http://www.aspectc.org Conclusion • Architectural properties are inherent crosscutting • Aspect-Oriented Software Development can help • AspectC++ brings AOP to the C/C++ world • Encapsulation without sacrificing efficiency • Real chance to reach architectural transparency daniel.lohmann@cs.fau.de