Abstract
Dynamic reconfiguration allows modifying a system during its execution, and can be used to apply
patches and updates, to implement adaptive systems, dynamic instrumentation, or to support third-party
modules. Dynamic reconfiguration is important in embedded systems, where one does not necessarily
have the luxury to stop a running system.
While some operating systems do offer mechanisms for dynamic reconfiguration, the proposed me-
chanisms are essentially hardwired in the system. This results in a fixed trade-off between flexibility
of reconfigurations and the system’s efficiency which may be far from optimal in certain operational
contexts, thus limiting the system reuse.
We present an architecture-based programming model allowing both construction of customized re-
configurable system kernels and programming of their reconfigurations. This model is based on the
FRACTAL component model and its C implementation for constructing component-based operating sys-
tems, called THINK. The framework supporting our approach encompasses an architecture compiler for
building customized system kernels and a reconfiguration compiler. We developed several prototypes of
reconfigurable systems that show the flexibility of our approach and the impact of different implementa-
tions of reconfiguration mechanisms on the system’s performance.
R´
esum´
e
La reconfiguration dynamique est la capacit´
e d’un syst`
eme logiciel `
a permettre sa modification pen-
dant son ex´
ecution et peut ˆ
etre utilis´
ee pour mettre-`
a-jour une partie fautive du syst`
eme, introduire des
algorithmes sp´
ecialis´
es, autoriser des extensions faites par des tiers, adapter le syst`
eme `
a un nouvel en-
vironment et ajouter des sondes de monitoring ou debugging, etc.
Les syst`
emes d’exploitation existants offrent des m´
ecanismes de reconfiguration dynamique, n´
ean-
moins ceux-ci sont fig´
es par l’impl´
ementation du syst`
eme. Par cons´
equent le compromis entre la flexibi-
lit´
e et l’efficacit´
e du syst`
eme reconfigurable est fixe et il n’est pas possible de r´
eutiliser le syst`
eme dans
d’autres contextes op´
erationnels (avec des m´
ecanismes de reconfiguration diff´
erents).
Nous pr´
esentons une approche architecturale pour la construction de syst`
emes reconfigurables `
a
la carte et la programmation de leurs reconfigurations. Notre mod`
ele de programmation est bas´
e sur
le mod`
ele `
a composants FRACTAL et son impl´
ementation en C, appel´
ee THINK. Le canevas associ´
e au
mod`
ele comprend un compilateur d’architecture qui permet de construire des syst`
emes reconfigurables et
un compilateur de reconfigurations. Pour illustrer notre approche, nous avons r´
ealis´
e plusieurs prototypes
de syst`
emes reconfigurables qui ont permis de montrer la flexibilit´
e de notre approche ainsi qu’une
´
evaluation quantitative et l’impact des diff´
erentes impl´
ementations de reconfiguration dynamique sur
l’efficacit´
e d’un syst`
eme concret.
iii