Download Free Conception Et Realisation Dun Systeme Pour La Programmation Dapplications Objets Concurrents Et Reparties Sur Machines Paralleles Book in PDF and EPUB Free Download. You can read online Conception Et Realisation Dun Systeme Pour La Programmation Dapplications Objets Concurrents Et Reparties Sur Machines Paralleles and write the review.

LE BUT DE CETTE THESE EST D'OFFRIR UNE SOLUTION AUX PROBLEMES DE PROGRAMMATION CONCURRENTE ET REPARTIE EN MILIEU PARALLELE. ELLE DECRIT UN MODELE DE SYNCHRONISATION POUR LES LANGAGES A OBJETS CONCURRENTS ET PROPOSE UN MODELE D'OBJET POUR LA PROGRAMMATION REPARTIE ET PARALLELE. LA PROGRAMMATION PAR OBJETS ET LA PROGRAMMATION CONCURRENTE SONT DEVENUES DES STYLES DE PROGRAMMATION POPULAIRES. D'UNE PART LA REUTILISABILITE DE CODE EST ACCENTUEE PAR LE CONCEPT D'OBJET, D'AUTRE PART, LA PROGRAMMATION CONCURRENTE FACILITE LA CONCEPTION DE SYSTEMES INTRINSEQUEMENT PARALLELES. LA PREMIERE PARTIE DE CETTE THESE EST CONSACREE A L'INTEGRATION DE CES DEUX CONCEPTS AU SEIN D'UN MEME LANGAGE, C++, AVEC LE SOUCI DE CONSERVER LEURS PROPRIETES INTRINSEQUES. LA DISPONIBILITE DE MACHINES MULTIPROCESSEURS A MEMOIRE REPARTIE PERMET A CERTAINES APPLICATIONS D'EXPLOITER UN HAUT DEGRE DE PARALLELISME ET D'AMELIORER AINSI LEURS PERFORMANCES DE FACON SIGNIFICATIVE. NEANMOINS, LES SYSTEMES PARALLELES SONT COMPLEXES ET LA PROGRAMMATION D'APPLICATIONS REPARTIES RESTE ENCORE LE DOMAINE DES INITIES. LA DEUXIEME PARTIE DE CETTE THESE EST CONSACREE A LA REALISATION DE MECANISMES GENERIQUES POUR LA GESTION DES RESSOURCES DANS UN MILIEU PARALLELE REPARTI ET A LA DEFINITION D'UN MODELE D'OBJET POUR LA STRUCTURATION D'APPLICATIONS. NOTRE TRAVAIL A ABOUTI A LA DEFINITION D'UN LANGAGE A OBJETS CONCURRENTS QUE NOUS AVONS IMPLEMENTE COMME UNE EXTENSION DU LANGAGE C++ ET LA REALISATION D'UNE COUCHE SYSTEME A OBJETS CHARGEE DE LA GESTION DES OBJETS EN MILIEU PARALLELE
Ce travail s'inscrit dans le cadre du projet pvc/BOX dont le but est le développement d'un environnement orienté objet pour l'exploitation des machines parallèles distribuées. Le concepteur d'applications réparties est devant un double problème de conception. Il doit représenter les données manipulées par son application (ainsi que les procédures qui les manipulent), mais il doit aussi représenter les activités qui vont coopérer à la réalisation de l'application. Pour répondre à ce besoin, nous introduisons un modèle prenant en charge de manière uniforme ces deux aspects de la conception d'applications réparties. Ce modèle introduit explicitement des entités qualifiées de passives et appelées simplement objets et des entités qualifiées d'actives et appelées fragments. Les premières correspondent aux objets traditionnels des langages séquentiels à objets, mais elles pourront être ici utilisées en présence de flots d'exécution concurrents. Les deuxièmes correspondent à une approche objet de la représentation des activités d'une application répartie. Le modèle introduit aussi des possibilités multiples de coopération entre objets et fragments. Le langage BOX est un langage à objets pour applications distribuées. Il inclut des caractéristiques nouvelles, spécifiques pour ce type d'applications, mais reste un langage pleinement objet. Le langage implante le modèle précédent. L'environnement BOX offre un certain nombre d'outils permettant au concepteur de produire une application répartie à partir des classes du langage. Ces applications s'appuient sur la couche système pvc qui est un support d'exécution permettant l'utilisation des systèmes d'exploitation répartis existants. Face au problème de conception des applications réparties, nous présentons donc dans cette thèse un système complet facilitant cette conception.
SUR ORDINATEURS PARALLELES, LA TENDANCE ACTUELLE EST D'OFFRIR AUX UTILISATEURS DEVANT IMPLANTER DES APPLICATIONS, UN NIVEAU D'ABSTRACTION ADAPTE A LEURS BESOINS. CET OBJECTIF NE PEUT ETRE ATTEINT QU'UN CONSIDERANT LE DOMAINE DES ARCHITECTURES MATERIELLES, CELUI DES NOYAUX DE SYSTEME D'EXPLOITATION ET DES ENVIRONNEMENTS DE DEVELOPPEMENT. IL S'AGIT DE GUIDER LE CHOIX DE L'UTILISATEUR EN MATIERE DE SUPPORT MATERIEL ET DE NOYAU DE SYSTEME AFIN QU'IL OBTIENNE DANS L'ENVIRONNEMENT DE PROGRAMMATION LA VUE DU PARALLELISME QU'IL SOUHAITE. L'ESSENTIEL DE NOTRE CONTRIBUTION PORTE PRINCIPALEMENT SUR LES POINTS SUIVANTS: L'APPLICATION D'UN FORMALISME AU DOMAINE DES ARCHITECTURES MIMD, LA FORMATION DES FONCTIONNALITES D'UN NOYAU DE SYSTEME D'EXPLOITATION PARALLELE, LA PROPOSITION D'UNE DEMARCHE POUR LA SELECTION D'UN NIVEAU D'ABSTRACTION SELON DEUX APPROCHES ANTAGONISTES, L'APPLICATION DU SYSTEME D'EXPLOITATION PARALLELE HELIOS AU T.NODE, LA RESOLUTION DU PLACEMENT DE TACHES, SOUS HELIOS, L'IMPLANTATION DE L'INTERFACE X/OPEN SOUS HELIOS ET SOUS LE SYSTEME PAROS. L'ARCHITECTURE MATERIELLE D'UNE MACHINE PARALLELE FOURNIT A ELLE SEULE DES CONCEPTS INTELLIGENTS QUE NOUS NOUS SOMMES PROPOSES DE FORMALISER. LE SYSTEME D'EXPLOITATION SUR CE TYPE DE MACHINE PREND PLUSIEURS DIMENSIONS SUIVANT QU'IL FOURNIT UNIQUEMENT UN ACCES AUX FONCTIONNALITES MATERIELLES OU UN NIVEAU D'ABSTRACTION TEL QU'IL CACHE LE PARALLELISME SOUS-JACENT ; NOUS PRESENTONS NOS REALISATIONS AU NIVEAU DES DIFFERENTES COUCHES D'UN SYSTEME D'EXPLOITATION. AFIN DE FACILITER LE PORTAGE D'APPLICATIONS, LES INTERFACES DE PROGRAMMATION DOIVENT OFFRIR UN CERTAIN DEGRE DE COMPATIBILITE AVEC LES ARCHITECTURES TRADITIONNELLES, NOUS AVONS FAIT LE CHOIX D'IMPLANTER L'INTERFACE X/OPEN SUR MACHINE PARALLELE. LE PASSAGE ENTRE LA PREMIERE ET LA DEUXIEME GENERATION DE MACHINES PARALLELES DE TELMAT A PERMIS DE CONFORTER NOS CHOIX ET AINSI DE CONSTRUIRE DES SOLUTIONS A DES DOMAINES D'APPLICATIONS PLUS CIBLES
NOTRE ETUDE S'INSCRIT AU SEIN D'UN PROJET DE DEVELOPPEMENT D'UN ATELIER DE GENIE LOGICIEL ADAPTE AU CONTEXTE ROBOTIQUE COLLECTIF ET ACCESSIBLE A DES UTILISATEURS NON EXPERTS EN ROBOTIQUE ET EN INFORMATIQUE. LES APPLICATIONS DE ROBOTIQUE COLLECTIVE (ARC) REPRESENTENT UN NOUVEAU DOMAINE D'APPLICATION QUI SE SITUE A L'INTERSECTION DE LA ROBOTIQUE CLASSIQUE ET DE L'INTELLIGENCE ARTIFICIELLE DISTRIBUEE. AINSI, NOUS PROPOSONS DANS CE MEMOIRE, UNE METHODE DE CONCEPTION D'APPLICATIONS DE ROBOTIQUE COLLECTIVE : LA METHODE MINA. CELLE-CI CORRESPOND A UNE DEMARCHE DE GENIE LOGICIEL QUI COMPORTE TROIS PHASES ESSENTIELLES : ̱UNE PHASE DE SPECIFICATION QUI A POUR OBJECTIF DE PERMETTRE A UN UTILISATEUR DE DEFINIR UNE ARC ET QUI REPOSE SUR UN MODELE DE DECOMPOSITION SYSTEMATIQUE DE CELLE-CI. ̱UNE PHASE DE CONCEPTION PRELIMINAIRE QUI REPRESENTE UNE PREMIERE ETAPE DE CONCEPTION, INDEPENDANTE DU LANGAGE DE PROGRAMMATION. CETTE PHASE DEFINIT UNE ARCHITECTURE DE CONTROLE PERMETTANT LA REALISATION D'UNE ARC ISSUE DE LA PHASE DE SPECIFICATION. ̱UNE PHASE DE CONCEPTION DETAILLEE QUI PRESENTE L'IMPLEMENTATION DE L'ARCHITECTURE DE CONTROLE ISSUE DE LA PHASE DE CONCEPTION PRELIMINAIRE. UNE VALIDATION EXPERIMENTALE DE LA METHODE MINA EST REALISEE SUR LA PLATEFORME MICROB, PLATEFORME EXPERIMENTALE DEVELOPPEE AU LABORATOIRE ET DEDIEE A LA REALISATION D'APPLICATIONS DE ROBOTIQUE MOBILE COLLECTIVE.
LES SYSTEMES DE MEMOIRE DISTRIBUEE VIRTUELLEMENT PARTAGEE (MDVP) ESSAIENT DE COMBINER LES AVANTAGES DES MACHINES A MEMOIRE PARTAGEE ET DES MACHINES A MEMOIRE DISTRIBUEE. CETTE THESE PROPOSE UN NOUVEAU MODELE DE MDVP QUI S'APPUIE SUR UNE STRUCTURATION HIERARCHIQUE DE L'APPLICATION EN GROUPES DE PROCESSUS. ETENDANT ET GENERALISANT LA NOTION DE COPY SET, CE CONCEPT GARANTIT UNE BONNE EXTENSIBILITE AUX APPLICATIONS GRACE A UNE MINIMISATION DES COUTS DE GESTION ET PERMET DE S'ADAPTER AU PLUS PRES A LA STRUCTURE DES APPLICATIONS ET DES ARCHITECTURES-CIBLES. CE MODELE AMELIORE EGALEMENT LA DISPONIBILITE DES DONNEES ET REDUIT LES GOULOTS D'ETRANGLEMENT VIA LE DECOUPAGE ET LA GESTION REPARTIE D'OBJETS PARTAGES VOLUMINEUX, LA MISE EN OEUVRE DE PROTOCOLES DE COHERENCE RELACHES ET LE MELANGE DE PLUSIEURS MODELES DE PROGRAMMATION. CETTE THESE DECRIT AUSSI UN ENVIRONNEMENT DE PROGRAMMATION ORIGINAL BASE SUR LE SYSTEME DOSMOS : DISTRIBUTED OBJECTS SHARED MEMORY SYSTEM, C'EST A DIRE UN SYSTEME DE MEMOIRE PARTAGEE D'OBJETS DISTRIBUES, CONCU POUR DES EXECUTIONS SUR UNE VASTE GAMME D'ARCHITECTURES ALLANT DES SYSTEMES DISTRIBUES AUX MACHINES MASSIVEMENT PARALLELES. CE SYSTEME EST COMPLETE PAR UN ENVIRONNEMENT DE PROGRAMMATION PARALLELE INTEGRE QUI ASSISTE L'UTILISATEUR DANS TOUTES LES ETAPES DE LA PROGRAMMATION EN PROPOSANT UN ENSEMBLE D'OUTILS PUISSANTS (ANALYSEUR-OPTIMISEUR, GESTION DES PLATES-FORMES VIRTUELLES HETEROGENES, MONITORING ET EVALUATION DE PERFORMANCES...)
LA PROGRAMMATION PARALLELE COMPTE PARMI LES REALITES IMPORTANTES DE L'INFORMATIQUE ACTUELLE; DE SITUATION OU DE RESOLUTION, SON IMPORTANCE NE CESSE DE CROITRE. CE DOMAINE DEMEURE TOUTEFOIS MAL COMPRIS, ET LA DEFINITION D'UN SYSTEME PARALLELE RESTE UNE TACHE DIFFICILE. LE TRAVAIL PRESENTE ICI S'INSCRIT DANS CE CONTEXTE: NOTRE OBJECTIF VISE A FACILITER LA PROGRAMMATION D'APPLICATIONS PARALLELES. A CETTE FIN, NOTRE ETUDE PORTE SUR LES LANGAGES DE PROGRAMMATION PARALLELE. PLUS PRECISEMENT, NOUS NOUS SOMMES INTERESSES A UN STYLE ASYNCHRONE ET IMPERATIF. LA PROGRAMMATION A OBJETS CONSTITUE LA SECONDE COMPOSANTE DE CE MEMOIRE; IL SEMBLE QUE CE PARADIGME SOIT BENEFIQUE AU PROBLEME DU PARALLELISME. NOUS LE METTONS EN UVRE, TOUT EN NOUS ATTACHANT A DEGAGER PRECISEMENT SES APPORTS SPECIFIQUES. CETTE THESE DEVELOPPE PRINCIPALEMENT UN MODELE DE PROGRAMMATION PARALLELE ET UN LANGAGE LUI CORRESPONDANT; CE DERNIER EST UNE EXTENTION DU LANGAGE OBJET EIFFEL. L'IMPLEMENTATION REALISEE PERMET LA PROGRAMMATION D'UNE APPLICATION DISTRIBUE SUR UN RESEAU DE MACHINES. PARMI LES SOLUTIONS ORIGINALES PROPOSEES, CITONS: LE POLYMORPHISME ENTRE OBJETS ET PROCESSUS; LA COMMUNICATION EN TROIS PHASES (INTERRUPTION - RENDEZ-VOUS - ASYNCHRONISME); LA MODELISATION DES REQUETES; LA PROGRAMMATION DE BIBLIOTHEQUES DE SERVICES; LA PROGRAMMATION DE BIBLIOTHEQUES D'ABSTRACTIONS; L'ATTENTE PAR NECESSITE SYSTEMATIQUE; LA CONTINUATION AUTOMATIQUE. SI CE TRAVAIL PROPOSE UN MODELE PARTICULIER DE PROGRAMMATION PARALLELE, IL S'AGIT EGALEMENT D'UNE ANALYSE DETAILLEE DES DIFFERENTS CHOIX DE CONCEPTION ENVISAGEABLES. NOUS NOUS ATTACHONS A DEGAGER LES QUESTIONS FONDAMENTALES QUI SE POSENT LORS DE LA DEFINITION D'UN LANGAGE PARALLELE, AINSI QUE LES DIFFERENTES ALTERNATIVES POSSIBLES. POUR CHACUNE DES ORIENTATIONS, NOUS PRESENTONS SES AVANTAGES ET INCONVENIENTS RESPECTIFS, JUSTIFIANT AINSI LES CHOIX REALISES. GRACE A SES CARACTERISTIQUES, LE MODELE DE PROGRAMMATION DEVELOPPE AUTORISE, DANS LE CADRE DE LA PROGRAMMATION PARALLELE, LA REUTILISATION ET LA DERIVATION D'ELEMENTS LOGICIELS. CECI NOUS PERMET DE PROPOSER UNE METHODE DE CONCEPTION ET DE PROGRAMMATION PARALLELE. AFIN D'ILLUSTRER SA MISE EN UVRE, NOUS ETUDIONS DE NOMBREUX EXEMPLES CARACTERISTIQUES DES SYSTEMES PARALLELES. PAR AILLEURS, CETTE THESE ABORDE EGALEMENT LES PROBLEMES SPECIFIQUES A L'IMPLEMENTATION ET PRESENTE COMMENT LES ASSERTIONS D'UNE SPECIFICATION PRE-POST PEUVENT ETRE UTILISEES DANS LE CADRE DU MODELE DEVELOPPE
LA PROGRAMMATION PAR VARIABLES PARTAGEES EST UTILISEE DANS LES ARCHITECTURES PARALLELES SANS MEMOIRE COMMUNE GRACE A UNE COUCHE LOGICIELLE QUI SIMULE LA MEMOIRE PHYSIQUEMENT PARTAGEE. LE MAINTIEN DE L'ABSTRACTION PARFAITE D'UNE MEMOIRE UNIQUE NECESSITE UN GRAND NOMBRE D'OPERATIONS DE COHERENCE ET, PAR CONSEQUENT, UNE DEGRADATION IMPORTANTE DES PERFORMANCES. AFIN DE PALIER CETTE DEGRADATION, PLUSIEURS SYSTEMES SE SERVENT DES MODELES DE COHERENCE DE LA MEMOIRE PLUS RELACHES, QUI PERMETTENT UNE CONCURRENCE PLUS IMPORTANTE ENTRE LES ACCES MAIS COMPLIQUENT LE MODELE DE PROGRAMMATION. LE CHOIX D'UN MODELE DE COHERENCE EST DONC UN COMPROMIS ENTRE LES PERFORMANCES ET LA SIMPLICITE DE LA PROGRAMMATION. CES DEUX FACTEURS DEPENDENT DES ATTENTES DES UTILISATEURS ET DES CARACTERISTIQUES D'ACCES AUX DONNEES DE CHAQUE APPLICATIONS PARALLELE. CETTE THESE PRESENTE DIVA, UN SYSTEME A MEMOIRE VIRTUELLE PARTAGEE QUI SUPPORTE PLUSIEURS MODELES DE COHERENCE DE LA MEMOIRE. AVEC DIVA, L'UTILISATEUR PEUT CHOISIR LA SEMANTIQUE DE LA MEMOIRE PARTAGEE LA PLUS APPROPRIEE A L'EXECUTION CORRECTE ET PERFORMANTE DE SON APPLICATION. DE PLUS, DIVA OFFRE A L'UTILISATEUR LA POSSIBILITE DE DEFINIR SES PROPRES MODELES DE COHERENCE. L'EXISTENCE DES MODELES MULTIPLES A L'INTERIEUR DE DIVA A GUIDE LES CHOIX DE CONCEPTION DE PLUSIEURS AUTRES MECANISMES. AINSI, NOUS PROPOSONS UNE INTERFACE UNIQUE DE SYNCHRONISATION ET DES MECANISMES DE REMPLACEMENT ET PRECHARGEMENT DES PAGES ADAPTES A UN ENVIRONNEMENT A MODELES MULTIPLES. UN PROTOTYPE DE DIVA A ETE MIS EN UVRE SUR LA MACHINE PARALLELE INTEL/PARAGON. L'ANALYSE D'UNE APPLICATION QUI S'EXECUTE SUR DES DIFFERENTS MODELES DE COHERENCE NOUS A PERMIS DE MONTRER QUE LE CHOIX DU MODELE DE COHERENCE AFFECTE DIRECTEMENT LES PERFORMANCES D'UNE APPLICATION
La programmation par variables partagees est utilisee dans les architectures paralleles sans memoire commune grace a une couche logicielle qui simule la memoire physiquement partagee. Le maintien de l'abstraction parfaite d'une memoire unique necessite un grand nombre d'operations de coherence et, par consequent, une degradation importante des performances. Afin de palier cette degradation, plusieurs systemes se servent des modeles de coherence de la memoire plus relaches, qui permettent une concurrence plus importante entre les acces mais compliquent le modele de programmation. Le choix d'un modele de coherence est donc un compromis entre les performances et la simplicite de la programmation. Ces deux facteurs dependent des attentes des utilisateurs et des caracteristiques d'acces aux donnees de chaque applications parallele. Cette these presente diva, un systeme a memoire virtuelle partagee qui supporte plusieurs modeles de coherence de la memoire. Avec diva, l'utilisateur peut choisir la semantique de la memoire partagee la plus appropriee a l'execution correcte et performante de son application. De plus, diva offre a l'utilisateur la possibilite de definir ses propres modeles de coherence. L'existence des modeles multiples a l'interieur de diva a guide les choix de conception de plusieurs autres mecanismes. Ainsi, nous proposons une interface unique de synchronisation et des mecanismes de remplacement et prechargement des pages adaptes a un environnement a modeles multiples. Un prototype de diva a ete mis en uvre sur la machine parallele intel/paragon. L'analyse d'une application qui s'execute sur des differents modeles de coherence nous a permis de montrer que le choix du modele de coherence affecte directement les performances d'une application.
Cette étude au sein du projet PVC est une contribution à la définition et l'implantation de langages parallèles à objets sur machines MIMD. Pour la conception et la réalisation d'applications parallèles, nous proposons les Composants Actifs de Communication (Cac). Un Cac est une structure active mono-programmée qui répond naturellement aux problèmes rencontrés dans les applications parallèles que sont l'expression du parallélisme et les échanges entre processus distants. Ces composants évoluent dans des modules qui sont des entités de partage de code du modèle Cac. Le Cac est facilement réalisable au-dessus des systèmes d'exploitation. L'environnement sert de plate-forme au développement de langages parallèles à objets. Après un réexamen des langages parallèles à objets en privilégiant les critères suivants: le parallélisme, la synchronisation et les modèles de répartition des entités du langage, nous proposons plusieurs implantations d'environnement d'objets actifs au-dessus des Cac. Nous avons réalisé plusieurs représentations distribuées d'objets actifs multi-programmés construites en termes de Cacs. La proposition permet d'exploiter un réel parallélisme intra-objet ainsi qu'une fragmentation des objets