HAL Id: tel-00005083
https://tel.archives-ouvertes.fr/tel-00005083
Submitted on 25 Feb 2004
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
application a Guide
Pierre-Yves Chevalier
To cite this version:
Pierre-Yves Chevalier. Persistance et disponibilite dans les systemes repartis : application a Guide.
Réseaux et télécommunications [cs.NI]. Université Joseph-Fourier - Grenoble I, 1994. Français. �tel- 00005083�
Persistance et disponibilité dans les systèmes répartis :
application à Guide
présentée par
Pierre−Yves Chevalier
pour obtenir le titre de
Docteur de l’Université Joseph Fourier − Grenoble I
(arrêté ministériel du 23 novembre 1988)
Spécialité :
Informatique
Thèse Soutenue devant la commission d’examen le : 14 Octobre 1994
J.−P. Verjus Président
X. Rousset de Pina Directeur de thèse
M. Banâtre Rapporteur
P. Valduriez Rapporteur
G. Bogo Examinateur
A. Giacalone Examinateur
S. Krakowiak Examinateur
Thèse préparée au sein du Laboratoire Bull−IMAG/Systèmes
leur encouragements, ont contribué à l’aboutissement de ce travail :
Jean−Pierre Verjus, Professeur à l’Institut National Polytechnique de Grenoble (ENSIMAG), pour m’avoir fait l’honneur d’accepter de présider le jury de cette thèse.
Michel Banâtre, Directeur de Recherche à l’Institut Recherche en Informatique et Systèmes Aléatoires de Rennes, et Patrick Valduriez, Directeur de Recherche à l’Institut National de la Recherche en Informatique et Automatique de Rocquencourt, qui ont accepté de consacrer une partie de leur temps pour juger ce travail.
Xavier Rousset de Pina, Professeur à l’Institut National Polytechnique de Grenoble (ENSERG), mon directeur de thèse, pour m’avoir fait confiance depuis le début et pour les innombrables discussions que nous avons eues. Sa rigueur intellectuelle et morale est pour moi plus qu’un exemple à suivre, un modèle.
Sacha Krakowiak et Roland Balter, Professeurs à l’Université Joseph Fourier et directeurs de l’Unité Mixte Bull−IMAG/Systèmes, pour l’honneur qu’ils m’ont fait en m’accueillant dans le projet Guide.
Gilles Bogo, Directeur de l’équipe DOM du centre de recherche Bull à Gières, qui m’a fait l’honneur d’accepter de faire partie du jury et dont la compagnie a financé mon travail.
Alessandro Giacalone, Directeur de l’European Computer−Industry Research Centre à Munich, qui m’a fait l’honneur d’accepter de faire partie du jury et qui m’a permis de terminer la rédaction de cette thèse à mon arrivée dans son équipe.
L’ensemble des participants au projet Guide et plus particulièrement les membres fondateurs de l’Eliott Task Force à savoir : Jacques Cayuela, André Freyssinet, Serge Lacourte et Daniel Hagimont, qui ont permis à ce petit dragon vert de s’envoler au dessus de contrées hostiles et lointaines.
Philippe Bernadat et Eric Paire, ingénieurs à l’Open Software Foundation, pour leur assistance et, surtout, pour avoir eu la patience et la gentillesse de répondre à mes nombreuses questions sur Mach.
Pascal Dechamboux, Stéphane Bressan, Philippe Bonnet et Francis Kaner pour leur aide et les nombreuses discussions que nous avons eues et qui visaient à comparer et rapprocher nos champs de recherche respectifs.
Je tiens à remercier spécialement l’ensemble du personnel de Bull−IMAG pour l’ambiance exceptionnelle et le cadre de travail que j’y ai trouvé. La sympathie et l’amitié qui ont régné entre nous ne sont pas étrangères aux résultats d’ensemble du laboratoire.
L’objectif de cette thèse est d’étudier les mécanismes que doit offrir une plate−forme répartie pour permettre l’implantation efficace des objets persistants, et d’appliquer les résultats de cette étude au système Guide. Ce travail s’est plus particulièrement inscrit dans la phase de conception et de réalisation de la seconde version de ce système, appelée Guide−2. Dans ce cadre, un accent particulier a porté sur la modularité de la réalisation, sur l’ouverture de la plate−forme, sur l’utilisation des nouvelles architectures de systèmes telle que la technologie micro−noyau, ainsi que sur la fiabilité générale du système. Notre proposition intègre de manière cohérente et efficace un ensemble de mécanismes nécessaire à la mise en œuvre de la persistance et assurant la fiabilité de ce support en présence de panne.
The goal of this thesis is to study the underlying mechanism that must be provided by a plateform to efficiently support distributed persistent objects. This work was conducted for the design and the development of the second version of the Guide system. In this framework, the main concerns was to define a modular and open architecture, to improve the overall reliability of the system and to make use of advanced micro−kernel technology. Our proposal coherently integrates a set of basic mechanisms used to provide persistency in the Guide distributed system while enhancing the availability of this support in face of failures.
Chapitre I Introduction
I.1 Support de la persistance ............................................ 4 I.2 Stockage fiable...................................................... 5 I.3 Organisation du mémoire............................................ 7
i
Chapitre II
Support de la persistance
II.1 La persistance dans les systèmes de gestion de fichiers .................. 12
II.2 Modèle de persistance .............................................. 13
II.3 Support d’un modèle de mémoire persistante.......................... 15
II.3.1 La désignation................................................ 15
II.3.2 Le partage................................................... 16
II.3.3 Le stockage.................................................. 18
II.3.4 La protection................................................. 20
II.4 Présentation de différents systèmes................................... 21
II.4.1 Le système Clouds............................................ 22
II.4.2 Le Distributed Shared Repository................................ 26
II.4.3 Le gestionnaire de persistance Cricket............................ 29
II.4.4 Le système O2................................................ 32
II.4.5 Tableau récapitulatif.......................................... 35
II.5 Conclusion........................................................ 36
ii
Chapitre III L’environnement Guide
III.1 Introduction au système Guide...................................... 39
III.1.1 La machine virtuelle Guide.................................... 39
III.1.2 Le modèle de données......................................... 40
III.1.3 Le modèle d’exécution........................................ 41
III.1.4 Le modèle de mémoire ........................................ 42
III.1.5 Protection et sécurité......................................... 44
III.1.6 Les services du système Guide ................................. 44
III.2 Architecture générale.............................................. 45
III.2.1 Machine à objets............................................. 46
III.2.2 Machine à segments.......................................... 46
III.2.3 Machine à grappes............................................ 46
III.2.4 Service de stockage........................................... 47
III.2.5 Machine d’exécution ......................................... 47
III.3 Quelques caractéristiques de Mach 3.0............................... 47
III.3.1 Les tâches et les flots de contrôles .............................. 48
III.3.2 Les communications.......................................... 48
III.3.3 La gestion de la mémoire virtuelle............................... 49
III.4 Conclusion........................................................ 51
iii
Chapitre IV
Le support de la persistance dans Guide
IV.1 Architecture générale.............................................. 54
IV.1.1 Gestion de grappes en mémoire d’exécution....................... 55
IV.1.1.1 Organisation générale ................................. 55
IV.1.1.2 Désignation et localisation des grappes en mémoire d’exécution.......................................... 58
IV.1.1.3 Protection........................................... 59
IV.1.1.4 Partage............................................. 61
IV.1.1.5 Gestion dynamique de la taille des grappes................ 66
IV.1.1.6 Interface............................................ 69
IV.1.2 Gestion de grappes en mémoire de stockage....................... 70
IV.1.2.1 Organisation générale ................................. 70
IV.1.2.2 Concepts............................................ 72
IV.1.2.3 Désignation et localisation.............................. 73
IV.1.2.4 Conservation et intégrité............................... 74
IV.1.2.5 Interface............................................ 76
IV.2 Mise en œuvre.................................................... 77
IV.2.1 Architecture ................................................ 78
IV.2.2 Gestion de la pagination....................................... 80
IV.2.3 La journalisation............................................. 82
IV.2.3.1 Algorithme .......................................... 83
IV.2.3.2 Limitations .......................................... 86
IV.2.3.3 Élimination des anciens journaux ........................ 86
IV.3 Conclusion........................................................ 87
iv