Université Pierre et Marie Curie

Systèmes d'exploitation des ordinateurs

Chapitre 1. Les systèmes d'exploitation
Chapitre 2. Mécanismes d'exécution et de communication
Chapitre 3. Gestion des activités parallèles
Chapitre 4. Gestion des fichiers
4.1. Principes de la gestion de l'information
4.1.1. Objets et liaisons
4.1.2. Protections
4.2. Systèmes de fichiers
4.3. Organisation sur un support physique
4.4. Système de fichiers sous Unix
4.5. Fonctions d'accès élémentaires
Chapitre 5. Partage des ressources
Chapitre 6. Au-dessus du système d'exploitation
Chapitre 7. Notions sur les communications
Chapitre 8. Notions sur la sécurité
Bibliographie
Chapitre 9. Exercices et TPs
Examens
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

4.1.1. Objets et liaisons

Processus et objets

Tout processus, et en particulier ceux qui contribuent au fonctionnement du système d'exploitation, décrivent un ensemble d'objets et leurs relations ainsi que les opérations qui y sont associées.

Chaque objet est défini par une représentation concrète qui est constituée par un ensemble d'informations située dans la mémoire de l'ordinateur et sur les périphériques (disques, bandes magnétiques...). Le processeur accède aux objets, c'est à dire à leur représentation, par leur localisation en mémoire centrale ou périphérique grâce à leur adresse de rangement. On peut aussi dire qu'un processus manipule des entités structurées (variables, tableaux en mémoire, fichiers, autres processus...). Il connaît leurs adresses et sait comment ils sont structurés en mémoire ou sur un disque.

Pour pouvoir manipuler ces objets il faut imaginer des mécanismes auxquels les processus manipulateurs ont accès pour établir une correspondance entre les identificateurs des objets (leur nom) et l'adresse en mémoire de leur représentation. Cette correspondance est désignée sous le terme général de liaison. Le procédé qui met en relation l'objet et sa représentation s'appelle la chaîne d'accès.

Nous nous intéresserons dans ce chapitre à des objets extérieurs aux processus qui sont en cours d'exécution dans la mémoire de l'ordinateur. Ces objets sont créés, modifiés et conservés indépendamment des processus, même si ce sont des processus particuliers qui les génèrent et les détruisent. Ils peuvent être créés et détruits dynamiquement mais leur durée de vie peut être indépendante de celle des processus qui les mettent en œuvre. Les fichiers sont un exemple de ce type d'objets mais les notions que nous allons expliquer sont bien plus générales. L'étude des fichiers et de leur manipulation n'est donc qu'une illustration d'une notion beaucoup plus large.

Chaînes d'accès

On peut résumer les différents modèles de chaînes d'accès entre un objet et sa représentation au moyen des deux schémas suivants.

Soit X l'identificateur de l'objet, R sa représentation et a son adresse. En absence de liaison il n'y a aucune relation entre l'objet R et son identificateur X (fig. 4.1).



Objet inexistant

figure 4.1 : Objet inexistant


En pratique l'objet n'existe pas puisqu'il n'y a aucun moyen d'accéder à sa représentation à partir de son identificateur. Pour faire disparaître un fichier il suffit donc de détruire la liaison entre son identificateur (son nom) et sa représentation (les informations qu'il contient). C'est ainsi qu'on procède, dans tous les systèmes d'exploitation : on se limite à couper le lien et l'objet, non accessible, devient inexistant. Les utilitaires de récupération de fichiers ne font que tenter de rétablir, avec plus ou moins de succès, ces liaisons car l'information continue à exister sur le disque, tant que l'espace correspondant n'est pas réutilisé.

Ces utilitaires ne peuvent pas être efficaces avec des systèmes multi-utilisateurs comme Unix : les nombreux processus qui coexistent dans la mémoire récupèrent rapidement une partie de l'espace rendu disponible donc effacent définitivement une part de l'information. Supprimer un lien pour supprimer un fichier est une méthode rapide mais ne permet pas d'assurer une très grande confidentialité.  Ceci explique comment on peut souvent, sinon retrouver une information sur un disque, du moins en trouver des traces. On tente, au moyen d'outils appropriés, de rétablir les liaisons qui permettaient de voir l'information. L'utilisateur moyen croit assurer la confidentialité de certaines informations en les effaçant mais ceci n'est pas suffisant vis-à-vis d'un spécialiste.

Dans les systèmes sécurisés on efface un fichier en réinitialisant l'espace qu'il occupait. Cette méthode est efficace mais beaucoup plus lente et donc réservée à des situations particulières comme les dispositifs de haute sécurité militaires.

Imaginons maintenant une méthode un peu plus efficace dans laquelle une table (fig. 4.2) contient la liste de tous les identificateurs des objets. Un même objet peut apparaître plusieurs fois, avec des identificateurs différents : ainsi dans Unix comme Windows permettent d'établir plusieurs liens vers le même fichier. Celui-ci est unique mais peut apparaître dans différents répertoires. Cela s'appelle un lien symbolique sous Unix, un raccourci sous Windows.

Liaison par substitution

Figure 4.2 : Liaison par substitution

Nous allons évoquer comment établir la liaison indispensable à l'existence d'un objet.

  1. On peut la réaliser par substitution. Avant ou au cours du processus qui le nécessite, on substitue tous les identificateurs {a} de l'objet X par son adresse a (fig. 4.2). Cette méthode est efficace car l'objet R est accédé rapidement mais elle a le défaut de ne pas être modifiable sans avoir à parcourir à nouveau toute la table pour recommencer la substitution. Lorsqu'on déplace l'objet R à une nouvelle adresse, toute la table doit être parcourue pour que chaque occurence de l'objet puisse être mise à jour. La liaison ne peut pas être modifiée dynamiquement puisque le processus de substitution se déroule avant usage de l'objet.
  2. L'autre méthode est de procéder par chaînage. Toutes les occurrences de l'identificateur X de l'objet pointent sur un objet intermédiaire r dans lequel est inscrite l'adresse a de sa représentation R (fig. 4.3). Lorsqu'on déplace l'objet seul a doit être mis à jour. Cette façon de faire est donc beaucoup plus souple mais elle nécessite deux lectures au lieu d'une pour établir le lien.
xx

Figure 4.3 : Liaison par chaînage 

On peut même imaginer un chaînage avec plusieurs objets relais r en cascade. Ce chemin d'accès est aisément modifiable car il suffit de changer l'adresse a dans l'objet r pour établir une liaison avec un nouvel objet R': R' est alors accédé, de l'extérieur, avec l'identificateur X. Le processus qui manipule les représentations R et R' peut gérer dynamiquement la liaison au cours de son activité puisqu'il suffit de modifier r sans toucher à la table des identificateurs X. Par contre cette méthode de liaison est beaucoup moins rapide que la précédente car il faut parcourir toute la chaîne d'accès : la table des identificateurs ne mène à la représentation qu'au terme de plusieurs indirections. C'est ainsi que procède Unix comme nous le verrons au paragraphe 6. Pour diminuer le nombre d'opérations sur disque qui ralentit considérablement l'accès aux fichiers, Unix travaille sur une copie en mémoire. Nous y reviendrons.

On comprend aussi comment un disque peut être "cassé" bien que la plus grande partie de sa surface soit en bon état : il suffit que une ou plusieurs tables d'indexation soient endommagées pour que la liaison entre l'objet et sa représentation soit rompue, ce qui revient à dire, comme nous l'avons expliqué, que l'objet, c'est à dire le fichier, n'existe plus. Il existe des utilitaires de récupération mais leur efficacité est aléatoire et le service proposé par de nombreuses sociétés ne vaut pas, le plus souvent, son coût !


Copyright Yves Epelboin, université P.M. Curie, 2000, MAJ 30 janvier, 2006

Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante