Chapitre 1

Présentation du projet

[Table des matières]

1 Problématique

La désignation symbolique des entités persistantes (segments ou fichiers) manipulées par le système d'exploitation, est un problème dont les concepts sous-jacents sont connus depuis la fin des années 60. Le système Multics [Org72] propose en effet un modèle d'organisation de l'espace de désignation des segments qui est à la base de la plupart des systèmes de désignation des systèmes d'exploitation, et notamment de celui d'Unix.

Les premiers systèmes répartis Brownbridge [Bro82] Popek [Pop85] qui font leur apparition au début des années 80, s'ils n'introduisent pas de concepts nouveaux pour ce qui est de la désignation symbolique, doivent cependant prendre en compte les nouveaux problèmes dûs à la répartition : résistance aux pannes, efficacité et hétérogénéité. Plusieurs systèmes comme NFS et AFS [How88] pour ne citer que ceux qui sont dans le domaine commercial, offrent des solutions plus ou moins complètes à ces problèmes.

Les progrès technologiques récents concernant tant les réseaux de communication, que les processeurs (architecture RISC, processeurs à 64 bits d'adresses) permettent d'envisager de nouvelles architectures de systèmes répartis pouvant fédérer un nombre potentiellement illimité de machines, regroupées en cellules au sein de réseaux locaux, ces cellules étant elles mêmes interconnectées par des réseaux internationaux. Ce type d'architecture va impliquer que les systèmes de désignation symbolique devront être capables de prendre en compte deux nouveaux types de problèmes : d'une part la taille des espaces de noms à manipuler et d'autre part l'extensibilité c'est-à-dire la possibilité d'ajouter à tout moment à l'espace de noms existant l'espace de noms d'une nouvelle cellule.

Plusieurs conceptions de services de désignation de grande taille ont été proposées (voir Lampson[Lam86], Birell[Bir82] et Dalal[Opp83]), mais la granularité des objets désignés n'est généralement pas assez fine pour pouvoir s'appliquer aux fichiers et aux objets de programmation. Ces systèmes se sont intéressés plus particulièrement à la désignation des machines et des utilisateurs.

Un système de grande taille peut contenir un nombre important de sous-systèmes qui évoluent en permanence, l'adjonction ou la réorganisation de ces sous-systèmes ne doit pas compromettre le fonctionnement du service de désignation. Si les modifications se traduisent par une restructuration de l'espace de noms. Il faut alors garantir que les changements effectués ne remettent pas en cause la validité des anciens noms.

Les composantes matérielles du système telles que les machines hôtes et les réseaux de communication peuvent tomber en panne. Le service de désignation étant un passage obligé pour accèder à un objet, il est donc essentiel d'assurer sa disponibilité.

Avec l'effet de l'extension, les opérations de résolution de noms deviennent de plus en plus coûteuses, de récentes études ont montré que ces opérations sont à l'origine d'une grande surcharge du système, il faut donc mettre en place une stratégie pour améliorer les performances K.W Shirrif[Shi92], permettant ainsi, le regroupement potentiel d'un plus grand nombre de sous-systèmes.

[Table des matières]

2 L'unité mixte Bull-IMAG/Systèmes

Notre travail a été effectué dans le cadre du projet Guide, qui est un projet mené en commun par le groupe Bull et l'institut IMAG au sein de l'unité mixte Bull-IMAG/Systèmes.

Le projet Guide (Grenoble University Integrated Distributed Environment) a commencé en 1986, la première phase s'est achevée par la réalisation d'un prototype expérimental Guide-1. La deuxième phase du projet est en cours, et consiste à mener à bien la réalisation d'un prototype pré-industriel Guide-2. Guide est une composante du projet ESPRIT COMANDOS (Construction and Management of Distributed Open Systems).

[Table des matières]

3 Le projet Guide

Le projet Guide a pour objectif la construction d'un système informatique permettant de développer, de mettre au point et d'exécuter des applications réparties sur un réseau local à haut débit interconnectant des postes de travail et des serveurs. Le système assure une gestion globale et intégrée des ressources matérielles et des informations. Il doit permettre de développer des applications coopératives (génie logiciel et gestion de documents), en utilisant des méthodes de structuration à base d'objets.

Des exemples typiques de telles applications sont:

Le système Guide-2 doit servir deux catégories d'utilisateurs : les développeurs et intégrateurs d'applications destinées à des usagers finals, qui programment en langage Guide, les usagers finals eux-mêmes qui utilisent ces applications et les services de base du système. Guide doit également servir à écrire des outils pour les développeurs d'applications.

[Table des matières]

4 Présentation du projet

Ce projet vise à étudier la conception d'un service de désignation pour un système réparti de grande taille. L'objectif est de réaliser, dans une première phase, l'étude des principes généraux de la désignation dans les systèmes répartis. Ensuite, d'identifier les problèmes introduits par l'extension sur les systèmes de grande taille, et de proposer des solutions à ces problèmes. L'étude accorde un intérêt particulier aux aspects suivants :

  1. Organisation de l'espace de noms dans un système de grande taille.
  2. Étude de l'architecture des services de désignation distribués, et des mécanismes d'interprétation des noms symboliques en noms internes.
  3. Étude des stratégies de tolérance aux pannes pour assurer la disponibilité du service de désignation.
  4. Étude des mécanismes d'amélioration des performances.
  5. Spécification d'un prototype de service de désignation basé sur une approche à objets.

Les résultats de cette étude débouchent sur une proposition d'un service de désignation extensible pour le système réparti à objets Guide-2.

[Table des matières]

5 Plan du rapport

Le rapport est organisé en cinq parties :

  1. Le chapitre I présente une introduction au problème de la désignation dans les systèmes répartis de grande taille, et le cadre de réalisation de ce projet.
  2. Le chapitre II présente une introduction aux notions de base de la désignation répartie, et traite les problèmes liés à l'organisation générale du service de désignation et à la structuration de l'espace de noms. Nous définissons les qualités requises pour la conception d'un service de désignation de grande taille. Nous présentons les différents modèles de distribution du service de désignation, ainsi que les techniques de résolution de noms. Une étude complémentaire de quelques systèmes ayant abordé les problèmes liés à la répartition et à l'extension sont donnés en exemple.
  3. Le chapitre III présente une étude de la tolérance aux pannes. Une stratégie basée sur la duplication et sur le placement des répertoires sur les supports de stockage du système est spécifiée. La deuxième partie du chapitre traite le problème de l'efficacité des mécanismes de résolution de noms par l'introduction des techniques de cache de noms.
  4. Une proposition pour le système Guide-2 basée sur une approche à objets est présentée dans le chapitre IV. L'architecture générale du service ainsi que les mécanismes utilisés pour sa conception y sont décrits en détail.
  5. Le chapitre V est une conclusion globale à ce projet.

Notes :

(1)

dans la suite du rapport e terme niveau inter-cellules sera équivalent au terme niveau global,

et le terme niveau intra-cellule équivalent au terme niveau local