La lecture à portée de main
Découvre YouScribe en t'inscrivant gratuitement
Je m'inscrisDécouvre YouScribe en t'inscrivant gratuitement
Je m'inscrisDescription
Sujets
Informations
Publié par | friedrich-alexander-universitat_erlangen-nurnberg |
Publié le | 01 janvier 2008 |
Nombre de lectures | 7 |
Langue | English |
Poids de l'ouvrage | 3 Mo |
Extrait
Aspect Awareness in the Development of
Configurable System Software
—
Aspektgewahrheit bei der Entwicklung
konfigurierbarer Systemsoftware
Der Technischen Fakultät der
Universität Erlangen-Nürnberg
zur Erlangung des Grades
DOKTOR-INGENIEUR
vorgelegt von
Daniel Lohmann
Erlangen — 2008Als Dissertation genehmigt von
der Technischen Fakultät der
Universität Erlangen-Nürnberg
Tag der Einreichung: 27.10.2008
Tag der Promotion: 30.03.2009
Dekan: Prof. Dr.-Ing. Johannes Huber
Berichterstatter: Prof. Dr.-Ing. Wolfgang Schröder-Preikschat
Prof. Dr.-Ing. Olaf Spinczyk
Prof. Dr.-Ing. Jörg NolteAbstract
More than 98 percent of the worldwide annual production of microprocessors ends
up in embedded systems – typically employed in goods of mass production, like cars,
appliances, or toys. Such embedded systems are subject to an enormous hardware-cost
pressure. System software for this domain has to cope not only with a broad variety of
requirements and platforms, but especially with strict resource constraints. To compete
against proprietary systems (and thereby to allow for reuse), a system-software product
line for embedded has to be highly configurable and tailorable. However, this
flexibility has to be provided in a way that meets the strict resource constraints.
The state of the art for the overhead-free implementation of fine-grained configurability
in system software is conditional compilation with the C preprocessor. However, this
approach leads to scattered and tangled code and does not scale up. At the same time,
the demands on configurability of system software are still increasing. AUTOSAR OS, a
new industry standard for automotive operating systems, requires configurability of even
fundamental architectural system policies, such as protection and isolation strategies.
This thesis evaluates aspect-oriented programming (AOP) as a first-class concept for im-
plementing configurability in resource-constrained systems. It shows that a well-directed,
pragmatic application of AOP leads to a much better separation of concerns in the imple-
mentation of configurable system software – without compromising on resource thriftiness.
Moreover, the suggested approach of aspect-aware operating-system development facilitates
providing even fundamental architectural policies as configurable features.
The suitability of AOP is evaluated with state-of-the-art operating systems from the
embedded-systems domain. The practicability of aspect-aware operating-system devel-
opment is validated by the design and development of the CiAO family,
which is the first operating system that has been designed and developed with AOP
concepts from the very beginning. CiAO combines a competitive implementation of the
AUTOSAR-OS standard with a highly configurable architecture.
iiiAcknowledgments
Many people have supported me in writing this thesis and deserve to be mentioned here.
It seems to be common practice to mention them in a strictly hierarchical order (not to
say top-down) starting with the supervising professors. However, as I shall point out in
Chapter 3, this thesis follows a bottom-up approach.
So let me start with the domestiques of science – the students who wrote study and diploma
theses under my supervision, in which they evaluated some of my crazy ideas: GEORG
BLASCHKE, CHRISTOPH ELSNER, WANJA HOFER, FABIAN SCHELER, JOCHEN STREICHER,
and REINHARD TARTLER. Boys, it was fun working with you – and still is! Given that five
of the six of you have continued with science afterwards (a fact I am admittedly a bit
proud of) and have even become colleagues, it can’t have been too bad :-)
Speaking of colleagues (and continuing bottom-up): Many thanks go to MEIK FELSER,
RÜDIGER KAPITZA, and CHRISTIAN WAWERSICH, who shared with me the good times and
the bad times of thesis writing. Christian, I am really happy that you finished the thing
before me. The party ain’t over ’till “The Fat Lady Sings”!
A significant part of the CiAO implementation was done during my time at the University
of Victoria, BC, Canada. I wish to thank YVONNE COADY and especially CHRIS MATTHEWS,
who supported me in all “aspects” of life during that time, and FIONN YAXLEY and CALEY
CAMPBELL, who did the same in all aspects of living.
Many thanks go to FRANK BELLOSA, who taught me the hidden politics of science during
his post-doc time in Erlangen, and to JÜRGEN KLEINÖDER, who has been doing the same
with respect to the hidden secrets of administration.
So we have passed the post-doc level and eventually arrived at the supervising professors:
My special thanks go to OLAF SPINCZYK and WOLFGANG SCHRÖDER-PREIKSCHAT. It was
Olaf who invited me to join Wosch’s group in Erlangen after we met at AOSD 2003 in
Boston. Together, we carried out a lot of great research – which would never have been
possible without the open, inspiring and encouraging atmosphere Wosch cultivates within
his group.
Finally, I wish to thank those people whose support was neither bottom-up nor top-down,
but just there when I needed it. BERNHARD GABLER did a great job of proofreading and
language polishing. But above all there was my wife Katja, who took care of me and
raised my spirits – again and again.
Erlangen, April 2009
iiiivContents
1. Introduction 1
1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Purpose of This Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Title and Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4. Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5. Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2. Background, Context, and State of the Art 9
2.1. System Software for Embedded Systems . . . . . . . . . . . . . . . . . . . 11
2.1.1. Properties of . . . . . . . . . . . . . . . . . . . 11
2.1.2. Hardware for Embedded Systems . . . . . . . . . . . . . . . . . . . 12
2.1.3. The Role of System Software . . . . . . . . . . . . . . . . . . . . . 14
2.1.4. The Role of Operating Systems . . . . . . . . . . . . . . . . . . . . 16
2.1.5. Implementation Techniques for Customizable Operating Systems . 18
2.1.6. From Customizing to Configuring of System Software . . . . . . . . 23
2.2. Software Product Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.1. Concepts and Terminology of Software Product Lines . . . . . . . . 25
2.2.2. History of Software Product-Line Engineering . . . . . . . . . . . . 26
2.2.3. Specifying the Problem Space . . . . . . . . . . . . . . . . . . . . . 27
2.2.4. The Problem Space of Configurable Operating Systems . . . . . . . 29
2.2.5. Implementing the Solution Space . . . . . . . . . . . . . . . . . . 30
2.3. Aspect-Oriented Programming . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.1. The Problem of “Crosscutting Concerns” . . . . . . . . . . . . . . . 33
2.3.2. Queue Example: Scattering and Tangling in a Simple Product Line 33
2.3.3. Dimensions of Crosscutting . . . . . . . . . . . . . . . . . . . . . . 35
2.3.4. Concepts and Terminology of Aspect-Oriented Programming . . . . 36
2.3.5. Queue Example: Solution Space Implementation with AspectC++ 38
2.3.6. History of AOP Languages . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.7. AOP in Operating Systems . . . . . . . . . . . . . . . . . . . . . . . 42
2.3.8. AOP Critique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.4. Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
vContents
3. Problem Analysis and Suggested Approach 47
3.1. Problem Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.1.1. How Configurability Becomes Manifest in the Code – The eCos Case 49
3.1.2. Going Ahead – The Case for Configurable Architecture . . . . . . . 58
3.1.3. Problem Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.2. Is AOP the Solution? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.3. Suggested Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.3.1. Language Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.3.2. Implementation Level . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.3.3. Design Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.4. Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4. Language Level – Aspects Demystified: Evaluation and Evolution of AspectC++ 67
4.1. General Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.1.1. AOP Fundamentals: A Recap . . . . . . . . . . . . . . . . . . . . . 69
4.1.2. Requirements on an Aspect Language for System Software . . . . . 69
4.1.3. The Expected Cost of Aspects . . . . . . . . . . . . . . . . . . . . . 74
4.1.4. Aspect Languages for Embedded System Development . . . . . . . 76
4.1.5. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.2. Generic Advice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.2.1. Generic Advice – Motivation . . . . . . . . . . . . . . . . . . . . . . 81
4.2.2. Extending the Join-Point API for Generic and Generative Programming 83
4.2.3. Example: Checking for Invalid Object Identifiers