INSTITUTNATIONALPOLYTECHNIQUEDEGRENOBLE N˚ attribué par la bibliothèque THÈSE pourobtenirlegradede DOCTEURDEl’INPG Spécialité:«Informatique:SystèmesetLogiciels» préparéeaulaboratoireLSR IMAG,projetSARDES, danslecadredel’EcoleDoctorale «MathématiquesSciencesetTechnologiesdel’Information» présentéeetsoutenuepubliquementpar AliErdem ÖZCAN le28Mars2007 ConceptionetImplantationd’unEnvironnementde DéveloppementdeLogicielsàBasedeComposants ApplicationsauxSystèmesMultiprocesseurssurPuce Directeurdethèse: Jean Bernard S TEFANI JURY M. Charles CONSEL Président M. Bertil FOLLIOT Rapporteur M. Lionel SEINTURIER M. Philippe GUILLAUME Examinateur M. Jacques MOSSIÈRE M. Jean Bernard S TEFANI DirecteurdethèseiiRésumé Ces travaux de thèse définissent un environnement de développement ouvert et extensible pour la conception de logiciels à base de composants. L’environnement se présente comme une chaîne de com pilation d’architectures logicielles, acceptant des architectures écrites dans des langages différents et fournissantdesfonctionnalitéscommelagénérationdecodeouledéploiement.L’extensibilitédel’outil est assurée par une architecture à base de composants implantant des patrons de programmation exten sibles et supportant un mécanisme de plug in pour intégrer des extensions de tierces parties. L’utilisa tion de l’outil est illustrée au travers deux cadres applicatifs ayant pour trame les systèmes sur puces. La première illustre le développement de systèmes d’exploitation pour ceux ci ...
INSTITUTNATIONALPOLYTECHNIQUEDEGRENOBLE
N˚ attribué par la bibliothèque
THÈSE
pourobtenirlegradede
DOCTEURDEl’INPG
Spécialité:«Informatique:SystèmesetLogiciels»
préparéeaulaboratoireLSR IMAG,projetSARDES,
danslecadredel’EcoleDoctorale
«MathématiquesSciencesetTechnologiesdel’Information»
présentéeetsoutenuepubliquementpar
AliErdem ÖZCAN
le28Mars2007
ConceptionetImplantationd’unEnvironnementde
DéveloppementdeLogicielsàBasedeComposants
ApplicationsauxSystèmesMultiprocesseurssurPuce
Directeurdethèse:
Jean Bernard S TEFANI
JURY
M. Charles CONSEL Président
M. Bertil FOLLIOT Rapporteur
M. Lionel SEINTURIER
M. Philippe GUILLAUME Examinateur
M. Jacques MOSSIÈRE
M. Jean Bernard S TEFANI DirecteurdethèseiiRésumé
Ces travaux de thèse définissent un environnement de développement ouvert et extensible pour la
conception de logiciels à base de composants. L’environnement se présente comme une chaîne de com
pilation d’architectures logicielles, acceptant des architectures écrites dans des langages différents et
fournissantdesfonctionnalitéscommelagénérationdecodeouledéploiement.L’extensibilitédel’outil
est assurée par une architecture à base de composants implantant des patrons de programmation exten
sibles et supportant un mécanisme de plug in pour intégrer des extensions de tierces parties. L’utilisa
tion de l’outil est illustrée au travers deux cadres applicatifs ayant pour trame les systèmes sur puces.
La première illustre le développement de systèmes d’exploitation pour ceux ci. La deuxième illustre la
définition d’un nouveau langage facilitant l’expression de la synchronisation au sein d’applications de
traitementdefluxmultimédiaréparties.
Abstract
Our work aims at the definition of an open and extensible development environment for supporting
the design and implementation of component based software. Our proposition takes the form of a com
ponent based software architecture compilation toolset, accepting architectures described in different
languages,andprovidingdifferentfunctionalitiessuchascodegenerationanddeployment.Theextensi
bility of the toolset is achieved thanks to a fine grained component based architecture, implementing a
set of extensible programming patterns, and to a plug in support for loading third party extensions. Two
evaluationuse casessetupinthecontextofsystem on chipsarepresentedinordertoillustratetheeffec
tiveness of our approach. The first use case presents the development of operating system kernels. The
secondonedescribestheextensionofthetoolsetwithasynchronizationpatterndescriptionlanguagefor
easingthedevelopmentofdistributedstreamingapplications.
iiiivRemerciements
Je tiens tout d’abord à remercier Charles Consel, professeur à l’Ecole Nationale Supérieure d’Elec
tronique,InformatiqueetRadiocommunicationsdeBordeaux,demefairel’honneurdeprésidercejury.
JeremercieBertilFolliot,professeuràl’UniversitéPierreetMarieCurie,ParisVI,etLionelSeintu
rier,professeuràl’UniversitédeLille,d’avoiracceptéd’êtrerapporteursdecettethèseetd’avoireffectué
uneévaluationapprofondiedemestravaux.
JeremercieégalementJacquesMossière,professeuràl’InstitutNationalPolytechniquedeGrenoble
et Philippe Guillaume, responsable des activités de recherche et développement des modèles de pro
grammation et des systèmes d’exploitation dans la société STMicroelectronics, d’avoir accepté d’être
examinateursdemestravaux.
JenesauraisassezremercierJean BernardStefani,mondirecteurdethèse. Savisionscientifique,et
sesprécieux conseilsm’ontguidé toutau longdeces annéesde thèse.Ila toujoursététrès disponibleet
curieuxpourdiscuterdemestravaux,etilm’atoujoursencouragéetmotivé.Enfin,jetiensàleremercier
égalementsurleplanpersonnel,pourlesnombreusesdiscussionsquenousavonseues.
Je remercie très chaleureusement Philippe Guillaume, mon responsable industriel, pour sa motiva
tion,sonouvertureetsonencouragement.Ilacréépourmoiunenvironnementdetravailtrèsconfortable,
avecunbonéquilibreentrelarechercheacadémiqueetindustrielle.C’estunegrandechancequej’aieue
de pouvoir travailler sous sa direction, aussi bien sur le plan technique que sur le plan humain. Je vou
drais également remercier Marco Cornero, directeur du Groupe COSA de STMicroelectronics, pour sa
confiance,etpourl’intérêtqu’ilamanifestépourmestravaux.
Bien qu’elle soit un travail personnel, une thèse est néanmoins le fruit de trois années pendant les
quelleslethésardcollaboreavecdenombreusespersonnes.Àdéfautdepouvoirfaireunelisteexhaustive,
jevoudraisremercier:
– Matthieu Leclercq qui a joint notre équipe il y a un an en tant qu’ingénieur de développement. a joué un rôle très important dans la finalisation du canevas logiciel présenté dans ce
document. Il a travaillé avec un enthousiasme remarquable pour faire d’un prototype, un logiciel
de qualité industrielle. C’est une chance immense de travailler avec lui. Je n’oublierai jamais nos
discussions techniques où l’on a quelques fois eut l’impression de redécouvrir ce qu’est l’infor
matique.
– Les membres de l’équipe Sardes pour leur accueil chaleureux et pour les interactions que nous
avons eues. Oussama Layaïda avec qui j’ai commencé à travailler sur le développement d’appli
cations multimédia, Vivien Quéma avec qui j’ai eu de nombreuses discussions techniques, Alan
Schmitt et Frédéric Mayot avec qui j’ai initié les travaux sur JoinDSL, et Juraj Polakovic avec
qui j’ai travaillé sur la reconfiguration dynamique de systèmes d’exploitation; Renaud Lachaize
avec qui j’ai beaucoup discuté sur les aspects systèmes. Jacques Mossière qui m’a toujours aidé,
non seulement sur le plan professionnel, mais aussi sur le plan personnel. Sacha Krakowiak que
j’aieulagrandechancedecôtoyer.Enfin,SébastienJean,FabienneBoyer,SaraBouchenak,Noël
de Palma, Jakub Kornas, Christophe Taton, Michael Lienhardt, Didier Donsez pour leur contact
chaleureux.
– Les membres du laboratoire AST pour leur accueil et leur amitié; Germain Haugou avec qui j’ai
travaillé sur Think4L; Erven Rohou, Roberto Costa et François Naçabal avec qui j’ai collaboré
sur les composants pour .Net; Thierry Lepley, Stéphane Curaba, Jean Marc Zins avec qui j’ai eu
de nombreuses discussions enrichissantes. Thierry Strudel avec qui j’ai eu la chance de travailler
et qui a certainement eu un impact important sur ma vision de l’informatique. Enfin, Marcello
vCoppolaquim’aaccueillichaleureusementdanslelaboratoiredurantcesannées.
– LesmembresdesprojetsThinketFractalavecquij’aieudenombreuxéchangestrèsconstructifs.
– Mario Diaz Nava qui m’a motivé pour entamer une thèse après m’avoir encadré en DEA, et qui a
joué un rôle important dans la mise en place de cette thèse CIFRE avec la société STMicroelec
tronics.
Enfin,surleplanpersonnel,jevoudraisexprimermesamitiésà:
– Christophe Le Gal qui a sans doute été un tournant important de ma vie. J’ai eu la chance de
le côtoyer au cours d’un stage que j’ai effectué tout au début de mes études en France. Il est la
personnequim’aréellementintroduitàl’informatiqueetaétépourmoiunamitrèsprécieux.
– LeventTopaç,ZeynepEraydın,TaylanGenç,PınarÖzdemiretYücelBalımpourleuramitié.Nous
étions tout petits quand nous nous sommes rencontrés, et avons grandi ensemble. Bien que nous
vivionsdansdesvilleslointainesdepuisplusieursannées,jegardeenmoiunsouvenirmémorable
desannéesquenousavonspasséesensemble.
˙– Mes amis Onur Marsan,¸ Burçak Kursan, Kerim Nadir, Onur Inanç, Gönenç Onay, Olivier Ptak et
VincentMazelpourleurgentillesse.
– MesamisthésardsOussamaLayaïdaetVivienQuémaavecquij’aipassétroisannéesformidables.
– And finally, my deepest thanks go to my family. To my mother, who changed my life by forcing
me to study in France : she was absolutely right, even if we had some difficult moments. To my
father, who has always been a role model for me. I don’t know how to thank him for all that he
didforme,everydayofmylife.Andtomyuncle,Yig˘itGündüçwhoisthefirsttomotivatemeto
followmystudiesincomputersciences.Monfrèrequiatoujoursétéavecmoietquim’asupporté
sanscessedurantcestroisannéesdetravailintensif.Enfin,monyavmur,Ayse¸ gül,poursonamour
etsonsupportinestimable.Lavieestplusbelleavecelle,etleresteratoujours.
viTabledesmatières
1 Introduction 1
1.1 Caractéristiquesdessystèmesmultiprocesseurssurpuce . . . . . . . . . . . . . . . . . 3
1.1.1 Constituantsd’unsystèmesurpuce . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Problématiquesdesconcepteursdesystèmessurpuce . . . . . . . . . . . . . . . 4
1.1.3 Feuillederoutepourlesarchitecturesdufutur . . . . . . . . . . . . . . . . . . 5
1.2 Programmationdessystèmesmultiprocesseurssurpuce . . . . . . . . . . . . . . . . . . 7
1.2.1 Flotdeconceptiondelogicielpourlessystèmessurpuce . . . . . . . . . . . . . 7
1.2.2 Problématiquedeprogrammation . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.3 Analysecritiquedelaperceptiondespratiquesactuelles . . . . . . . . . . . . . 10
1.3 Motivationsetobjectifsdenotreproposition . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.1 Défis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.2 Propositions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Organisationdudocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
I Etatdel’Art 17
2 Programmationsystèmeàbasedecomposants 19
2.1 Composantslogiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1 Unpeud’histoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2 Caractérisationdescomposantslogiciels . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Modèlesdecomposantsstandardsetindustriels . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 Beans/EnterpriseJavaBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.2 CCM:lemodèledecomposantsdeCORBA . . . . . . . . . . . . . . . . . . . 25
2.2.3 COM/DCOM/COM+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.4 SystemC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3 Modèlesdecomposantsacadémique