93-these-jamrozik
151 pages
Français

93-these-jamrozik

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
151 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

THESEprésentée parHervé Jamrozikpour obtenir le titre deDocteur de l’Université Joseph Fourier − Grenoble1(arrêté ministériel du 5 juillet 1984 et du 30 mars 1992)INFORMATIQUESpécialité : Aide à la Mise au Point des ApplicationsParallèles et Répartiesà base d’Objets PersistantsThèse soutenue devant la commission d’examen le :25 mai 1993Jacques Mossiere PrésidentGuy Bernard RapporteurClaude BétournéSacha Krakowiak Directeur de thèseRoland Balter ExaminateurMiguel SantanaThèse préparée au sein du Laboratoire Unité Mixte Bull−IMAG Aide à la Mise au Point des ApplicationsParallèles et Réparties à base d’Objets Persistants RésuméL’objectif de ce travail est d’offrir une aide à la mise au point des applications parallèles etréparties, à base d’objets persistants, permettant une mise au point cyclique et offrant uneobservation de l’exécution d’un haut niveau d’abstraction.Le non−déterminisme et la sensibilité à toute perturbation de ce type d’exécution rendenttrès difficile la correction des erreurs liées aux conditions d’exécution. Les limitations del’analyse statique des programmes et des approches dynamiques fondées sur une exécutioncourante nous conduisent à préconiser la mise en œuvre de méthodes basées sur lareproduction d’une exécution qui apportent une solution au non−déterminisme en fixant uneexécution. La mise au point s’effectue alors dans un contexte particulier où le comportementde l’exécution à corriger est déjà connu ...

Informations

Publié par
Nombre de lectures 72
Langue Français

Extrait

THESE
présentée par
Hervé Jamrozik
pour obtenir le titre de
Docteur de l’Université
Joseph Fourier − Grenoble1
(arrêté ministériel du 5 juillet 1984 et du 30 mars 1992)
INFORMATIQUESpécialité :
Aide à la Mise au Point
des Applications
Parallèles et Réparties
à base d’Objets Persistants
Thèse soutenue devant la commission d’examen le :
25 mai 1993
Jacques Mossiere Président
Guy Bernard Rapporteur
Claude Bétourné
Sacha Krakowiak Directeur de thèse
Roland Balter Examinateur
Miguel Santana
Thèse préparée au sein du Laboratoire Unité Mixte Bull−IMAG


Aide à la Mise au Point des Applications
Parallèles et Réparties à base d’Objets Persistants


Résumé
L’objectif de ce travail est d’offrir une aide à la mise au point des applications parallèles et
réparties, à base d’objets persistants, permettant une mise au point cyclique et offrant une
observation de l’exécution d’un haut niveau d’abstraction.
Le non−déterminisme et la sensibilité à toute perturbation de ce type d’exécution rendent
très difficile la correction des erreurs liées aux conditions d’exécution. Les limitations de
l’analyse statique des programmes et des approches dynamiques fondées sur une exécution
courante nous conduisent à préconiser la mise en œuvre de méthodes basées sur la
reproduction d’une exécution qui apportent une solution au non−déterminisme en fixant une
exécution. La mise au point s’effectue alors dans un contexte particulier où le comportement
de l’exécution à corriger est déjà connu et peut être observé à l’aide de vues de l’exécution
adaptées aux particularités de l’environnement d’exécution.
Nous définissons, dans le contexte des systèmes à objets, un système de mise au point basé
sur la reproduction (dirigée par le contrôle) d’une exécution, permettant une mise au point
cyclique et une observation de l’exécution au niveau des objets. Nous spécifions le service de
réexécution, le service d’observation, et proposons une architecture modulaire pour
l’assemblage des composants logiciels réalisant ces services.
Nous présentons ensuite l’application concrète des propositions précédentes au système
Guide. Nous avons réalisé un noyau de réexécution, structuré en objets Guide, qui se charge
de manière automatique de l’enregistrement et de la reproduction d’une exécution Guide.

Mots−clés
Mise au point, système à objets, concurrence, exécution déterministe, observation, trace,
reproduction d’une exécution


Assistance on Debugging Parallel and Distributed
Applications based on Persistent Objects


Abstract
Our goal is to provide a debugging assistance for parallel and distributed applications based
on persistent objects which allows cyclical debugging and offers a high level of abstraction
for the observation of an execution.
The nondeterminism and the probe effect of this kind of execution make bugs caused by
race conditions difficult to correct. The limitations of both static analysis and dynamic
approaches based on a current execution justify the choice of a debugging methodology
based on replay, which solves the problem of nondeterminism by recording an execution. In
this case the behavior of an incorrect execution is well known and can be visualised in
specific views according to the particularities of the execution environment.
In the context of object−oriented systems, we define a debugging record/replay (control
driven) system based on the objects which allows cyclical debugging and object execution
observation. The reexecution and the observation services are designed and integrated in a
modular architecture.
These concepts have been applied to the Guide system. A reexecuting kernel has been
implemented using Guide objects, which automatically records and replays an execution.

Key words
Debugging, object−oriented system, concurrency, deterministic execution, observation,
trace, execution replay.


Je tiens à remercier


Jacques Mossière, Professeur à l’Ecole Nationale Supérieure d’Informatique et de
Mathématiques Appliquées de Grenoble, de me faire l’honneur de présider le jury de cette
thèse.

Guy Bernard, Professeur à l’Institut National des Télécommunications, et Claude
Bétourné, Professeur à l’Université Paul Sabatier de Toulouse, de l’attention qu’ils ont
accordé à mon travail et de leur évaluation.

Sacha Krakowiak, Professeur à l’Université Joseph Fourier de Grenoble, de m’avoir
accueilli au sein de l’équipe qu’il dirige, et de m’avoir donné la possibilité de mener à bien
cette thèse.

Roland Balter, Docteur ès Sciences et Directeur de l’Unité Mixte Bull−IMAG de son
constant soutien et de ses encouragements.

Miguel Santana, Docteur de l’Université Joseph Fourier de Grenoble et Ingénieur Bull de
m’avoir encadré tout au long de ce travail. Je le remercie tout particulièrement pour ses
encouragements, ses conseils et son amitié. Je lui dois la réussite de cette thèse.

Je tiens aussi à remercier toutes les personnes du laboratoire Bull−IMAG qui, par leurs
conseils, leurs encouragements ou leur aide, ont contribué à l’aboutissement de ce travail. Je
remercie tout particulièrement Fabienne et Annie, mes charmantes collègues de bureau,
pour m’avoir supporté au quotidien, André, Dominique et Jean−Yves pour leur participation à
la réalisation de Thésée, Miguel, Serge et Xavier pour la correction de la première version de
cette thèse, Jacques et Michel pour leur lecture finale.


Je tiens aussi à remercier

Adrianaalainalexandraalfredoanaandrzejandréandréaanneanniearnaudbabethbichabéatr-
icebernardbozbrigittebroutchbrunocatherinecécilecharlottechristianchristineclaudiacloco-
rinnecrevettedamousedanieldenisdidierdominiqueelianeelizabethevelineextasefabiennefab-
ricefelipeflorencefrançoisfrançoisefrédéricgédéongérardhankhervéirèneisabellejacquesje-
anlouisjeanyvesjoëljoëllejuankarinekatchalaurencelaurentleonlepatronlesuisselouisalucm-
alcolmmarcmarcelmariemarienoëllemichelmiguelmoimêmemauricionabilnathalienickyolivi-
erpascalpascalepaulpépéphilippepierrepierreyvesraymonderémirémyriquetritonrobertrolan-
dsachasamersboubserchiosergeslimstéphanesylviethierryvalérievincentvirginiaxavier.
I
Chapitre I
Introduction
Depuis la nuit des temps, l’homme cherche à améliorer sa condition. Le développeur
d’applications informatiques n’échappe pas à cette aspiration et est demandeur, depuis les
débuts de l’informatique, d’une aide qui guide son travail et simplifie sa tâche. La motivation
des environnements de développement est de répondre à ces besoins, par le biais d’outils qui
assistent le développeur durant chacune des phases du développement d’une application.
Cette demande d’aide se fait d’autant plus pressante que les difficultés rencontrées dans
le développement des programmes augmentent. C’est le cas actuellement, et le besoin de
nouveaux outils offrant une assistance plus grande est largement reconnu. En particulier, les
outils doivent prendre en considération les différents facteurs d’évolution des applications :
croissance de leur taille, utilisation de nouveaux services d’affichage (interfaces graphi-
ques), exécution parallèle et répartie, etc.
La mise au point est l’une des tâches intervenant dans le développement d’une appli-
cation. L’objectif de cette phase est de localiser et corriger les erreurs contenues dans
l’application développée. De l’avis de tous ceux qui ont une expérience de la programmation,
cette tâche est l’une des plus délicates du développement des applications. C’est en effet
une tâche pour laquelle le programmeur ne dispose pas d’une aide suffisante, ce qui lui
demande un savoir−faire important pour arriver à ses fins.
L’aide la plus complète que l’on puisse offrir au programmeur consisterait en une mise au
point automatique, qui trouverait la cause d’un comportement erroné sans qu’il ait à inter-
venir. Une telle mise au point n’est pas actuellement envisageable, au regard des difficultés
rencontrées par les approches telles que l’analyse statique et la mise au point
semi−automatique, limitées à la détection de certains cas d’erreurs. A l’opposé, la mise au
point dynamique est fondée sur l’exploitation des informations liées à une exécution. Elle a
pour objectif de donner la plus grande liberté au programmeur pour contrôler et observer

  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents