128
Cours Système d’exploitation Niveau : GL2 & IIA2 Enseignant : Mona LAROUSSI Bureau : 4 A8-28 E-mail: [email protected]

Cours système d’exploitation partie3

Embed Size (px)

Citation preview

Page 1: Cours système d’exploitation partie3

Cours Système d’exploitation

Niveau : GL2 & IIA2Enseignant : Mona LAROUSSIBureau : 4 A8-28E-mail: [email protected]

Page 2: Cours système d’exploitation partie3

Chapitre 6

Systèmes de fichiers

Page 3: Cours système d’exploitation partie3

Que c’est qu’un fichier

Collection nommée d’informations apparentées, enregistrée sur un stockage secondaire Nature permanente

Les données qui se trouvent sur un stockage secondaires doivent être dans un fichier

Différents types: Données (binaire, numérique, caractères….) Programmes

Page 4: Cours système d’exploitation partie3

Structures de fichiers

Aucune – séquences d’octets… Texte: Lignes, pages, docs formatés Source: classes, méthodes,

procédures… Etc.

Page 5: Cours système d’exploitation partie3

Attributs d’un fichierAttributs d’un fichier

Constituent les propriétés du fichiers et sont stockés dans un fichier spécial appelé répertoire (directory). Exemples d’attributs: Nom:

pour permet aux personnes d’accéder au fichier Identificateur:

Un nombre permettant au SE d’identifier le fichier Type:

Ex: binaire, ou texte; lorsque le SE supporte cela Position:

Indique le disque et l’adresse du fichier sur disque Taille:

En bytes ou en blocs Protection:

Détermine qui peut écrire, lire, exécuter… Date:

pour la dernière modification, ou dernière utilisation Autres…

Page 6: Cours système d’exploitation partie3

Opérations sur les fichiers: de base

Création Écriture

Pointeur d’écriture qui donne la position d’écriture

Lecture Pointeur de lecture

Positionnement dans un fichier (temps de recherche) Suppression d’un fichier

Libération d’espace

Troncature: remise de la taille à zéro tout en conservant les attributs

Page 7: Cours système d’exploitation partie3

Autres opérations Ajout d’infos Rénommage Copie

peut être faite par rénommage: deux noms pour un seul fichier

Ouverture d’un fichier: le fichier devient associé à un processus qui en garde les attributs, position, etc.

Fermeture Ouverture et fermeture peuvent être explicites (ops

open, close) ou implicites

Page 8: Cours système d’exploitation partie3

Types de fichiers

Page 9: Cours système d’exploitation partie3

9

Structure logique des fichiersStructure logique des fichiers

Le type d’un fichier spécifie sa structure Le SE peut alors supporter les différentes structures

correspondant aux types de fichiers Cela complexifie le SE mais simplifie les applications

Généralement, un fichier est un ensemble d’enregistrements (records) Chaque enregistrement est constitué d’un ensemble de

champs (fields) Un champ peut être numérique ou chaîne de chars.

Les enregistrements sont de longueur fixe ou variable (tout dépendant du type du fichier)

Mais pour Unix, MS-DOS et autres, un fichier est simplement une suite d’octets « byte stream » Donc ici, 1 enregistrement = 1 octet C’est l’application qui interprète le contenu et spécifie

une structure Plus versatile mais plus de travail pour le programmeur

Page 10: Cours système d’exploitation partie3

Organisation de répertoires

Efficacité: arriver rapidement à un enregistrement

Structure de noms: convenable pour usager deux usagers peuvent avoir le même noms pour

fichiers différents Le même fichier peut avoir différents noms

Groupement de fichiers par type: tous les programmes Java tous les programmes objet

Page 11: Cours système d’exploitation partie3

Listes et groupes d’accès - UNIX Modes d ’accès: R W E Trois classes d ’usager:

propriétaire groupe public

demander à l ’administrateur de créer un nouveau groupe avec un certain usager et un certain propriétaire

droit du propriétaire de régler les droits d ’accès et d ’ajouter des nouveaux usagers

Page 12: Cours système d’exploitation partie3

Listes et groupes d’accèsListes et groupes d’accès

Mode d’accès: read, write, execute Trois catégories d’usagers:

RWXa) owner access 7 1 1 1

RWXb) group access 6 1 1 0

RWXc) others access 1 0 0 1

Demander au gestionnaire de créer un groupe, disons G, et ajouter des usagers au groupe

Pour un fichier particulier, disons jeux, définir un accès approprié owner group public

chmod 761 jeux

Changer le groupe d’un fichierchgrp G jeux

Page 13: Cours système d’exploitation partie3

Chap 11 13

Méthodes d’accès

SéquentielleIndexée SéquentielleIndexéeDirecte

Page 14: Cours système d’exploitation partie3

Chap 11 14

Méthodes d’accès: 4 de base

Séquentiel (rubans ou disques): lecture ou écriture des enregistrements dans un ordre fixe

Indexé séquentiel (disques): accès séquentiel ou accès direct (aléatoire) par l’utilisation d’index

Indexée: multiplicité d’index selon les besoins, accès direct par l’index

Direct ou hachée: accès direct à travers tableau d’hachage

Pas tous les SE supportent les méthodes d’accès Quand le SE ne les supporte pas, c’est à l’application de

les supporter

Page 15: Cours système d’exploitation partie3

15

Méthodes d’accès aux fichiersMéthodes d’accès aux fichiers

La structure logique d’un fichier détermine sa méthode d’accès Les SE sur les « mainframe » fournissent généralement plusieurs

méthodes d’accès Car ils supportent plusieurs types de fichiers

Plusieurs SE modernes (Unix, Linux, MS-DOS…) fournissent une seule méthode d’accès (séquentielle) car les fichiers sont tous du même type (ex: séquence d’octets) Mais leur méthode d’allocation de fichiers (voir + loin) permet

habituellement aux applications d’accéder aux fichiers de différentes manières

Ex: les systèmes de gestions de bases de données (DBMS) requièrent des méthodes d’accès plus efficaces que juste séquentielle Un DBMS sur un « mainframe » peut utiliser une structure fournie

par le SE pour accès efficace aux enregistrements. Un DBMS sur un SE qui ne fournit qu’un accès séquentiel doit donc

« ajouter » une structure aux fichiers de bases de données pour accès directs plus rapides.

Page 16: Cours système d’exploitation partie3

16

Fichiers à accès séquentiel (archétype: rubans)

bloc bloc

enregistrements

. . . . . .

La seule façon de retourner en arrière est de retourner au début (rébobiner, rewind)

En avant seulement, 1 seul enreg. à la fois

espace interbloc

. . .

Page 17: Cours système d’exploitation partie3

17

Lecture physique et lecture logique dans un fichier séquentiel

Un fichier séquentiel consiste en blocs d’octets enregistrés sur un support tel que ruban, disque…

La dimension de ces blocs est dictée par les caractéristiques du support Ces blocs sont lus (lecture physique) dans un tampon en mémoire Un bloc contient un certain nombre d’enregistrements (records) qui sont

des unités d’information logiques pour l’application (un étudiant, un client, un produit…) Souvent de longueur et contenu uniformes Triés par une clé, normalement un code (code d’étudiant, numéro

produit…) Une lecture dans un programme lit le prochain enregistrement Cette lecture peut être réalisée par

La simple mise à jour d’un pointeur si la lecture logique précédente ne s’était pas rendue à la fin du tampon

la lecture du proch. bloc (dans un tampon d’E/S en mémoire) si la lecture logique précédente s’était rendue à la fin du tampon Dans ce cas le pointeur est remis à 0

Page 18: Cours système d’exploitation partie3

Chap 11 18

Autres propriétés des fichiers séquentiels Pour l’écriture, la même idée: une instruction d’écriture

dans un programme cause l’ajout d’un enregistrement à un tampon, quand le tampon est plein il y a une écriture de bloc

Un fichier séquentiel qui a été ouvert en lecture ne peut pas être écrit et vice-versa (impossible de mélanger lectures et écritures)

Les fichiers séquentiels ne peuvent être lus ou écrits qu’un enregistrement à la fois et seulement dans la direction ‘en avant’

Page 19: Cours système d’exploitation partie3

Chap 11 19

Adressage Indexé séquentiel Adressage Indexé séquentiel (index sequential)(index sequential)

Un index permet d’arriver directement à l’enregistrement désiré, ou en sa proximité Chaque enregistrement contient un champ clé Un fichier index contient des repères (pointeurs) à

certain points importants dans le fichier principal (p.ex. début de la lettre S, début des Lalande, début des matricules qui commencent par 8)

Le fichier index pourra être organisé en niveaux (p.ex. dans l’index de S on trouve l’index de tous ceux qui commencent par S)

Le fichier index permet d’arriver au point de repère dans le fichier principal, puis la recherche est séquentielle

Page 20: Cours système d’exploitation partie3

Chap 11 20

Exemples d’index et fichiers relatifs

Pointe au début des Smiths (il y en aura plusieurs)

Le fichier index est à accès direct, le fichier relatif est à accès séquentielAccès direct: voir ci-dessous

Page 21: Cours système d’exploitation partie3

Chap 11 21

Index et fichier principal Index et fichier principal (Stallings)(Stallings)

(Relative file)

Dans cette figure, l’index est étendu à plusieurs niveaux, donc il y a un fichier index qui renvoie à un autre fichier index, n niveaux

Page 22: Cours système d’exploitation partie3

Chap 11 22

Pourquoi plusieurs niveaux d’index Un premier niveau d’index pourrait

conduire au début de la lettre S Un deuxième niveau au début des

Smith, etc. Donc dans le cas de fichiers volumineux

plusieurs niveaux pourraient être justifiés.

Page 23: Cours système d’exploitation partie3

Chap 11 23

Séquentiel et index séquentiel: comparaisonSéquentiel et index séquentiel: comparaison

P.ex. Un fichier contient 1 milliond’enregistrements

En moyenne, 500, 000 accès sont nécessaires pour trouver un enregistrement si l’accès est séquentiel!

Mais dans un séquentiel indexé, s’il y a un seul niveau d’indices avec 1000 entrées (et chaque entrée

pointe donc à 1000 autres),

En moyenne, ça prend 500 accès pour trouver le repère approprié dans le fichier index

Puis 500 accès pour trouver séquentiellement le bon enregistrement dans le fichier relatif

Page 24: Cours système d’exploitation partie3

Chap 11 24

Mais… besoin de fichier débordementMais… besoin de fichier débordement

Les nouveaux enregistrements seront ajoutés à un fichier débordement

Les enregistrements du fichier principal qui le précèdent dans l’ordre de tri seront mis à jour pour contenir un pointeur au nouveau enregistrement Donc accès additionnels au

fichiers débordement Périodiquement, le fichier

principal sera fusionné avec le fichier débordement

Page 25: Cours système d’exploitation partie3

Chap 11 25

Fichier indexéFichier indexé

Utilise des index multiples pour différentes clés, selon les différents besoins de consultation

Quelques uns pourraient être exhaustifs, quelques uns partiels, et organisés de façons différentes

Page 26: Cours système d’exploitation partie3

Chap 11 26

Indexed File (Stallings)Indexed File (Stallings)

Page 27: Cours système d’exploitation partie3

Chap 11 27

Accès directe (ou relatif)

Fichier est vu comme collection d’enregistrement logiques de grandeurs fixes Basé sur le modèle disque (composé de blocs) Spécifie numéro de bloc pour accédés données Numéro souvent relatif (du début du fichier)

Ce n’est pas tous les SEs qui offres les accès séquentiels et directes Facile de simuler l’accès séquentiel avec l’accès directe

Maintient un pointeur cp indiquant la position courante dans un fichier

L’inverse est très difficile

Page 28: Cours système d’exploitation partie3

28

Utilisation des 4 méthodesUtilisation des 4 méthodes

Séquentiel (rubans ou disques): lecture ou écriture des enregistrements dans un ordre fixe Pour travaux ‘par lots’: salaires, comptabilité périodique…

Indexé séquentiel (disques): accès séquentiel ou accès direct par l’utilisation d’index Pour fichiers qui doivent être consultés parfois de façon séquentielle,

parfois de façon directe (p.ex. par nom d’étudiant) Indexée: multiplicité d’index selon les besoins, accès direct par

l’index Pour fichiers qui doivent être consultés de façon directe selon des

critères différents (p.ex. pouvoir accéder aux infos concernant les étudiants par la côte du cours auquel ils sont inscrits)

Direct ou hachée: accès direct à travers tableau d’hachage Pour fichiers qui doivent être consultés de façon directe par une clé

uniforme (p.ex. accès aux information des étudiants par No. de matricule)

Page 29: Cours système d’exploitation partie3

29

Répertoires

Page 30: Cours système d’exploitation partie3

Chap 11 30

Structures de répertoires (directories) Une collection de structures de données contenant infos

sur les fichiers.

F 1 F 2F 3

F 4

F n

Répertoires

Fichiers

Tant les répertoires, que les fichiers, sont sur disques À l’exception d’un rép. racine en mém. centrale

Page 31: Cours système d’exploitation partie3

Chap 11 31

Organisation typique de système de fichiers

Page 32: Cours système d’exploitation partie3

Chap 11 32

Information dans un répertoire

Nom du fichier Type Adresse sur disque,... Longueur courante Longueur maximale Date de dernier accès Date de dernière mise à jour Propriétaire Protection

Page 33: Cours système d’exploitation partie3

Chap 11 33

Opérations sur répertoires

Recherche de fichier Création de fichier Suppression de fichier Lister un répertoire Rénommer un fichier Traverser un système de fichier

Page 34: Cours système d’exploitation partie3

Chap 11 34

Organisation de répertoires

Efficacité: arriver rapidement à un enregistrement

Structure de noms: convenable pour usager deux usagers peuvent avoir le même noms

pour fichiers différents Le même fichier peut avoir différents noms

Groupement de fichiers par type: tous les programmes Java tous les programmes objet

Page 35: Cours système d’exploitation partie3

Chap 11 35

Structure à un niveau

Un seul rép. pour tous les usagers Ambiguïté de noms Problèmes de groupement Primitif, pas pratique

Page 36: Cours système d’exploitation partie3

Chap 11 36

Répertoires à deux niveaux

Rép. séparé pour chaque usager `path name`, nom de chemin même nom de fichier pour usagers différents est

permis recherche efficace Pas de groupements

Page 37: Cours système d’exploitation partie3

Chap 11 37

Répertoires à arbres (normal aujourd’hui)

Page 38: Cours système d’exploitation partie3

Chap 11 38

Caractéristiques des répertoires à arbres Recherche efficace Possibilité de grouper Repertoire courant (working directory)

cd /spell/mail/prog

Page 39: Cours système d’exploitation partie3

Chap 11 39

Graphes sans cycles: permettent de partager fichiers

Unix: un symbolic link donne un chemin à un fichier ou sous-répertoire

Page 40: Cours système d’exploitation partie3

Chap 11 40

Références multiples dans graphes acycliques

Un nœud peut avoir deux noms différents

Si dict supprime list donc pointeur vers fichier inexistant (danglingpointer). Solutions: Pointeurs en arrière, effacent

tous les pointeurs Compteurs de références (s’il y

a encore des refs au fichier, ilne sera pas effacé)

Ni Unix ni Microsoft n’implémentent ces politiques, donc messages d’erreur

Solutions impossibles à gérer dans un système fortement reparti (ex: www)

Page 41: Cours système d’exploitation partie3

Chap 11 41

Graphes avec cycles (structure générale)

• Presque inévitables quand il est permis de pointer à un noeud arbitraire de la structure• Pourraient être détectés avec des contrôles appropriés au moment de la création d ’un nouveau pointeur•Contrôles qui ne sont pas faits dans les SE courants

Page 42: Cours système d’exploitation partie3

Chap 11 42

Considérations dans le cas de cycles

En traversant le graphe, il est nécessaire de savoir si on retombe sur un noeud déjà visité

Un noeud peut avoir compteur de ref != 0 en se trouvant dans une boucle de noeuds qui n ’est pas accessible!

Des algorithmes existent pour permettre de traiter ces cas, cependant ils sont compliqués et ont des temps d ’exécution non-négligeables, ce qui fait qu’ ils ne sont pas toujours employés Ramasse-miettes = garbage collection

root Un sous-arbre qui n’est pas accessible à partir de la racine mais il ne peut pas être effacé en utilisant le critère ref=0 car il fait ref à lui-meme!

Page 43: Cours système d’exploitation partie3

Chap 11 43

Combiner plusieurs systèmes de fichier

Le système de fichier

Répertoire qui réside dans une partition/appareil spécifique

Pourquoi combiner?

Plusieurs partitions de disques rigides, disquettes, CDROM, disques réseau.

Vision et accès uniforme

Comment?

Attacher un système de fichier à un nœud particuler dans la hiérarchie du répertoire.

Windows: système à 2 niveaux – attaché à des lettres d’appareils

Unix: opération d’attachement explicit (mount), peut attacher un système de fichier n’importe où dans le répertoire.

Page 44: Cours système d’exploitation partie3

Chap 11 44

Attachement du système de fichier

Un système de fichier doit être attaché (mounted) avant d’être accédé

Un système de fichier est attacher à un point d’attachement (mount point)

Page 45: Cours système d’exploitation partie3

Chap 11 45

(a) Existant. (b) Partition non-attachée

Page 46: Cours système d’exploitation partie3

Chap 11 46

Point d’attachement (mount point)

Page 47: Cours système d’exploitation partie3

Chap 11 47

Partage de fichiers

Désirable sur les réseaux

Nécessite de protection

Page 48: Cours système d’exploitation partie3

Chap 11 48

Protection

Types d ’accès permis lecture écriture exécution append (annexation) effacement listage: lister les noms et les attributs d ’un

fichier

Par qui

Page 49: Cours système d’exploitation partie3

Chap 11 49

Listes et groupes d’accès - UNIX

Modes d ’accès: R W E Trois classes d ’usager:

propriétaire groupe public

demander à l ’administrateur de créer un nouveau groupe avec un certain usager et un certain propriétaire

droit du propriétaire de régler les droits d ’accès et d ’ajouter des nouveaux

Page 50: Cours système d’exploitation partie3

Listes et groupes d’accèsListes et groupes d’accès Mode d’accès: read, write, execute Trois catégories d’usagers:

RWXa) owner access 7 1 1 1

RWXb) group access 6 1 1 0

RWXc) others access 1 0 0 1

Demander au gestionnaire de créer un groupe, disons G, et ajouter des usagers au groupe

Pour un fichier particulier, disons jeux, définir un accèsapproprié

owner group public

chmod 761 jeux

Changer le groupe d’un fichierchgrp G jeux

Page 51: Cours système d’exploitation partie3

Méthodes d’allocation

Page 52: Cours système d’exploitation partie3

Structures de systèmes de fichiers

Structure de fichiers: deux façons de voir un fichier: unité d’allocation espace collection d ’informations reliées

Le système de fichiers réside dans la mémoire secondaire: disques, rubans...

File control block: structure de données contenant de l ’info sur un fichier

Page 53: Cours système d’exploitation partie3

Trois méthodes d’allocation de fichiers

Allocation contiguëAllocation enchaînéeAllocation indexée

Page 54: Cours système d’exploitation partie3

Allocation contiguë sur disquerépertoire

Page 55: Cours système d’exploitation partie3

Allocation contiguë

Chaque fichier occupe un ensemble de blocs contigu sur disque

Simple: nous n’avons besoin que d’adresses de début et longueur

Supporte tant l’accès séquentiel, que l’accès direct

Moins pratique pour les autres méthodes

Page 56: Cours système d’exploitation partie3

Allocation contiguë

Application des problèmes et méthodes vus dans le chapitre de l’alloc de mémoire contiguë

Les fichiers ne peuvent pas grandir Impossible d’ajouter au milieu Exécution périodique d’une compression

(compaction) pour récupérer l’espace libre

Page 57: Cours système d’exploitation partie3

Allocation enchaînée

Le répertoire contient l ’adresse du premier et dernier bloc, possibl. le nombre de blocs

Chaque bloc contient un pointeur à l’adresse du prochain bloc:

pointeurbloc =

Page 58: Cours système d’exploitation partie3

Allocation enchaînéerépertoire

Page 59: Cours système d’exploitation partie3

Tableau d’allocation de fichiers

Page 60: Cours système d’exploitation partie3

Avantages - inconvénients

Pas de fragmentation externe - allocation de mémoire simple, pas besoin de compression

L ’accès à l ’intérieur d ’un fichier ne peut être que séquentiel Pas façon de trouver directement le 4ème

enregistrement... N’utilise pas la localité car les enregistrements

seront éparpillés L ’intégrité des pointeurs est essentielle Les pointeurs gaspillent un peu d ’espace

Page 61: Cours système d’exploitation partie3

Allocation indexée: semblable à la pagination

Tous les pointeurs sont regroupés dans un tableau (index block)

index table

Page 62: Cours système d’exploitation partie3

Allocation indexée

-1: pointeur nul

Page 63: Cours système d’exploitation partie3

Allocation indexée

À la création d ’un fichier, tous les pointeurs dans le tableau sont nil (-1)

Chaque fois qu’un nouveau bloc doit être alloué, on trouve de l ’espace disponible et on ajoute un pointeur avec son adresse

Page 64: Cours système d’exploitation partie3

Allocation indexée

Pas de fragmentation externe, mais les index prennent de l’espace

Permet accès direct (aléatoire) Taille de fichiers limitée par la taille de

l’index block Mais nous pouvons avoir plusieurs niveaux

d’index: Unix Index block peut utiliser beaucoup de

mémoire

Page 65: Cours système d’exploitation partie3

UNIX BSD: indexé à niveaux (config. possible)

12 blocs disque de 4K chaque

1024 blocs de 4K chaque

1024x1024 blocs de 4K

Bloc de 4K contient 1024 pointeurs

Ce répertoire est en mémoire, tous les autres sont sur disque

Page 66: Cours système d’exploitation partie3

Gestion de l’espace libre

Page 67: Cours système d’exploitation partie3

Gestion d’espace libre Solution 1: vecteur de bits (solution Macintosh, Windows 2000)

…0 1 2 n-1

bit[i] =

0 block[i] libre

1 block[i] occupé

Exemple d’un vecteur de bits où les blocs 3, 4, 5, 9, 10, 15, 16 sont occupés: 00011100011000011…

L’adresse du premier bloc libre peut être trouvée par un simple calcul

Page 68: Cours système d’exploitation partie3

Gestion d’espace libreSolution 2: Liste liée de mémoire libre (MS-DOS, Windows 9x)

Tous les blocs de mémoire libre sont liés ensemble par des pointeurs

Page 69: Cours système d’exploitation partie3

Table d'allocation des fichiers

Une variation de l'allocation liée est d'utiliser une table d'allocation des fichiers (FAT).

- Utilisé par MS-DOS et OS/2.- Une partie du disque est réservée pour stocker la table qui

contient les pointeurs vers tous les fichiers de la partition.- Chaque entrée dans la FAT correspond à un bloc sur le

disque. Chaque entrée contient le pointeur vers le bloc suivant du fichier.

- Une valeur spéciale indique la fin du fichier.- Une entrée nulle signifie un bloc inutilisé.

Page 70: Cours système d’exploitation partie3

Table d'allocation (2)

Les FATs sont stockées en mémoire tant que le SE est actif

Page 71: Cours système d’exploitation partie3

Utilisé pour gérer les problèmes liés aux deux autres méthodes.

Similaire à l'allocation liée mais tous les pointeurs sont stockés ensembles dans un bloc spécial (index block)

Allocation indexée

Page 72: Cours système d’exploitation partie3

Exemple

Page 73: Cours système d’exploitation partie3

Inodes Une structure qui contient la description

du fichier : Type Droits d'accès Possesseurs Dates de modifications Taille Pointeurs vers les blocs de données

Les inodes sont stockés en mémoire tant que le fichier est ouvert

Page 74: Cours système d’exploitation partie3

Inodes (2)

inode

infos

Blocs directs Indirection simple

Indirection double

Page 75: Cours système d’exploitation partie3

Répertoires Structurés dans/par l'arborescence Chaque répertoire peut contenir des fichiers et

des répertoires Un répertoire est juste un fichier de type

spécial Fonctions spéciales pour accéder à un

répertoire Chaque entrée de répertoire contient le nom du

fichier et son inode Le noyau recherche l'arborescence pour convertir

le nom de fichier en un numéro d'inode.

Page 76: Cours système d’exploitation partie3

Directory diagram

Table des inodes

i1 Fichier1i2 Fichier2i3 Fichier3i4 fichier4

Répertoire

Page 77: Cours système d’exploitation partie3

La cohérence

Un système de fichiers est cohérent s’il est capable de restituer à l’utilisateur ses fichiers et ses répertoires dans l’état où il les a laissés.

Parmi les utilitaires d’un système d’exploitation, on trouve un utilitaire de vérification et de correction des erreurs au niveau du système de fichiers tel que scandisk pour Windows.

Du point de vue pratique, ces utilitaires examinent les SDD du système d’exploitation et corrigent les erreurs qu’il peuvent y trouver.

La vérification concerne les blocs appartenant aux fichiers ou libres, et l’état des répertoires.

Les tableaux qui suivent illustrent un cas d’incohérence obtenu avec un utilitaire d’Unix qui compte le nombre de fois où un bloc est trouvé libre ou occupé :

Page 78: Cours système d’exploitation partie3

Numéros des blocs0123456789101112131415Tableau des blocs libres1101021110011100Tableau des blocs utilisés0000200001100011Quand le SGF est cohérent, chaque bloc apparaît une fois au maximum soit dans le premier tableau soit dans le second.

Le second utilitaire vérifie les I-Nodes. Son rôle consiste à parcourir tous les répertoires en partant de la racine et à construire un tableau où le contenu d’une case est le nombre de fois où un I-Node est référencé.

Lorsqu’un fichier est partagé par un lien physique son numéro d’I-Node apparaît dans un autre répertoire.

Pour vérifier la cohérence, on compare la valeur obtenue avec le compteur de liens dans chaque I-Node.

Page 79: Cours système d’exploitation partie3

79

Enregistrements logiques et physiquesUn enregistrement logique est un ensemble de données ayant unsens pour l’utilisateur. Un fichier est une suite d’enregistrementslogiques.Un enregistrement physique, aussi appelé bloc, est l’unité destockage manipulée par le système. Avec les disques, cette unité destockage est un secteur ou un multiple de cette taille. On l’appelleunité d’allocation, parfois Cluster.Les blocs peuvent être plus grands ou plus petits que les enre-gistrements logiques décidés par le programmeur. Le système peutenregistrer plusieurs enregistrements logiques de petite taille dans unseul bloc, ou peut avoir besoin de plusieurs blocs pour enregistrer degrands enregistrements logiques.

Gestion de fichiers

Page 80: Cours système d’exploitation partie3

80

Les blocs physiques sont numérotés par le système et formentla base de toute structure de fichier.Le caractère (octet, byte) est la plus petite quantité d’informationmanipulée par le système. Un fichier, vu par le système, est doncun ensemble de blocs de taille fixe, chacun étant constitué d’unesuite de caractères.

Gestion de fichiers

Page 81: Cours système d’exploitation partie3

81

Le système doit connaître l’emplacement sur disque (numéro decylindre, piste et secteur) de chaque bloc.La première idée qui vient à l’esprit est de placer le fichier dansdes blocs consécutifs. Cette approche n’est pas réaliste comptetenu de l’accroissement et des modifications des fichiers.On peut gagner en flexibilité en adoptant une structure de blocsdans laquelle chaque bloc contient un pointeur indiquant l’empla-cement du bloc suivant. Cette approche facilite les modificationset l’accroissement, mais alourdit la recherche d’un enregistre-ment, qui devient séquentielle.

Gestion des ressources disques

Page 82: Cours système d’exploitation partie3

82

Une possibilité est d’utiliser une table de pointeurs contenantles indications nécessaires pour déterminer l’emplacement d’unbloc cherché.Il y a deux stratégies possibles : une table par unité de disque,ou une table par fichier. Dans le premier cas, il faut charger enmémoire la table contenant les pointeurs de tous les fichiers dudisque. Dans le second, on ne garde en mémoire que la tabledes fichiers ouverts.Un autre problème est celui de l’allocation de l’espace disque.Le système tient à jour des tables facilitant la recherche desecteurs disponibles. Deux possibilités sont courammentutilisées : une table d’allocation, ou un bitmap.

Gestion des ressources disques

Page 83: Cours système d’exploitation partie3

83

Table d’allocation

Piste Secteur Nombre de secteursallouables consécutivement

0 0 50 10 31 3 52 0 32 7 6… … ...

Gestion des ressources disques

Page 84: Cours système d’exploitation partie3

84

Bitmap

Gestion des ressources disques

0 1 2 3 4 5 6 7 8 9 10 11 120 0 0 0 0 0 1 1 1 1 1 0 0 01 1 1 1 0 0 0 0 0 1 1 1 1 12 0 0 0 1 1 1 1 0 0 0 0 0 03 0 0 0 0 1 1 1 1 0 0 1 1 14 1 1 0 0 1 1 0 0 0 0 1 0 05 1 1 1 1 0 0 0 0 0 0 0 1 1

PistesSecteurs

0 = libre, 1 = occupé

Page 85: Cours système d’exploitation partie3

85

Le lien entre le nom d’un fichier et sa localisation sur disque estréalisé à l’aide d’une table de correspondance appelée répertoire(directory).On peut concevoir des répertoires à un seul niveau, i.e.contenant le nom de tous les fichiers du disque, ou à plusieursniveaux, permettant à chaque utilisateur d’organiser ses fichiersde façon hiérarchique au moyen de sous-répertoires.

Répertoires

Page 86: Cours système d’exploitation partie3

86

Structure d ’un disque souple

Piste0

Secteur 123456789

10 11 12 13 14 15 16 17 18

BOOTFAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT2 FAT2 FAT2 FAT2 FAT2 FAT2 FAT2 FAT2

1FAT2DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR

u.a. 2 u.a. 3 u.a. 4

2u.a. 5

678....

Débu t des données del'utilisateur

Page 87: Cours système d’exploitation partie3

87

ExtensionAttribut

RéservéNom(en ASCII)Statut

Réservé Heure DateNo. dela1eu.a.

Tailledu fichier

0 7 9 15

16 21 23 25 27 31

AttributsŹ:1 = Lecture seulement2 = Fichier cachˇ4 = Fichier syst¸ me8 = Nom du volume16 = Sous-rˇ pertoire32 = Archive

Page 88: Cours système d’exploitation partie3

88

Table d’allocation de fichiers (FAT)

FF FF

Type dedisque

No.de l'u.a.suivante dufichier ou:000=libreFF8-FFF=dernière u.a. d'un fichierFF7=non lisible

0 1 2 3 4 5 6 7 8 9U.a. No.

Dans la FAT originale de DOS, on n’avait que 12 bits par entrée. Ceci limitait la taille du disque à 4095 u.a.Par exemple, 4096 u.a. de 512 octets = 2 Mo.

Page 89: Cours système d’exploitation partie3

89

On peut grossir la taille des unités d’allocation, mais la perted’espace par fichier augmente en conséquence. En moyenne,cette perte est de 1/2 u.a. par fichier.

Depuis ce temps, on a eu la FAT16, avec 16 bits par entrée, etsur les disques durs on utilise aujourd’hui la FAT32 avec 32 bitspar entrée.Windows NT et Windows 2000 utilisent un nouveau système defichiers beaucoup plus performant appelé NTFS.

Page 90: Cours système d’exploitation partie3

90

Unix a été développé par Bell Laboratories à partir de 1970 parKen Thompson et Dennis Ritchie. Ce système a été missuccessivement sur PDP-7, 9 et 11, puis sur VAX, et enfin surdes machines à base de microprocesseur MC68000. Aujourd’hui,il fonctionne sur les stations de travail avec des micro-processeurs RISC.

En l979, on en est rendu à la version 7, la mieux connue. En1982 apparaît le SYSTEM III, puis en 1983 le SYSTEM V suivantla politique de distribution commerciale de AT&T.

Exemple : UNIX

Page 91: Cours système d’exploitation partie3

91

Depuis 1991, le phénomène Linux a fait son apparition. Il s'agitd'un UNIX de domaine public pour micro-ordinateur initialementécrit par un étudiant en informatique finlandais, Linus Torvalds.

Il a été porté sur plusieurs plates-formes, notamment : Intel80x86, PowerPC, Alpha, Amiga, etc. Sa conception est moderneet c'est elle que nous examinerons ici.

Exemple : UNIX

Page 92: Cours système d’exploitation partie3

92

Sous Unix, un fichier est une séquence linéaire de mots de 8bits, de 1 octet à 1000 Mo. L'usager visualise le fichier commeune séquence linéaire et peut atteindre n'importe quel octet dufichier soit de façon absolue, soit en spécifiant une positionrelative par rapport à la position courante, ou encore par rapportà la fin du fichier.

À partir d'une position quelconque, on peut lire un nombrequelconque d'octets.

Exemple : UNIX

Page 93: Cours système d’exploitation partie3

93

Exemple : UNIXUnité d'allocation : bloc de 512 octets 1024 octets pour le SYSTEM V et le système 4.1 de Berkeley. 4096 octets pour la version 4.2,

1 Ko à 4 Ko pour Linux.

Page 94: Cours système d’exploitation partie3

94

À chaque fichier (y compris les répertoires qui sont égalementdes fichiers et les périphériques, que Unix considère comme desfichiers spéciaux) on associe un inode (i-node ou index-node)dans lequel on peut trouver les informations suivantes :- le propriétaire (user ID, group ID)- les protections (code de 16 bits)- les dates (création, dernièremodification)- les liens vers d'autres nœuds-i(nombre de répertoires qui contiennent ce fichier)- le type de fichier (données,répertoire, périphérique)- les adresses disques des blocs dedonnées (13)- la longueur du fichier en octets.

Exemple : UNIX

Page 95: Cours système d’exploitation partie3

95

Exemple : UNIX

0 Type et permissions Utilisateur (UID) Taille du fi chier8 Heure et da te d 'accès Heure et da te de création

16 Heure et da te de modification Heure et da te d 'effacement24 Groupe (GID) Compteur de liens Nb. de blocs32 Attributs du fichier Réservé40 1e bloc 2e bloc48 3e bloc 4e bloc56 5e bloc 6e bloc64 7e bloc 8e bloc72 9e bloc 10e bloc80 11e bloc 12e bloc88 Bloc de 1e indirection Bloc de 2e indirection96 Bloc de 3e indirection Version du fichier

104 ACL du fichier ACL du répertoire112 Adresse de fragment Réservé120 Réservé

AC L = Ac cess Control List, pas enco re implémenté

Page 96: Cours système d’exploitation partie3

96

Exemple : UNIX

Dans Linux, la taille d’un inode est de 128 octets.

Dans le système de fichiers Ext2 adopté par la plupart dessystèmes Linux, le disque est divisé en groupes de blocs.Chaque groupe de blocs contient un superbloc, des descripteursde groupe, un bitmap de blocs, un bitmap d'inodes, une tabled'inodes et des blocs de données. Les bitmaps occupent chacun1 bloc ou u.a. Ceci limite donc la taille des groupes à 8 192blocs pour des blocs de 1 Ko. ou 32 768 blocs pour des blocs de4 Ko. Les inodes sont répartis également parmi les groupes deblocs. Le nombre d'inodes par groupe ne peut non plus dépasserles nombres ci-dessus.

Page 97: Cours système d’exploitation partie3

97

Exemple : UNIXBloc 0

Blocd’amorce

Groupe de blocs 0 Groupe de blocs 1 … Groupe de blocs n

Chaque groupe de blocs contient une copie du superbloc, des inodes et des blocs de données :

Super-bloc

Descripteursde groupe

Bitmapde blocs

Bitmapd'inodes

Tabled'inodes

Blocs de données

Page 98: Cours système d’exploitation partie3

98

Exemple : UNIX

Le superbloc contient le nombre d'inodes et le nombre de blocsdans le système de fichiers. Il contient aussi de l'information surle nombre d'inodes et de blocs par groupe de blocs.

Le descripteur de groupe est une structure de 32 octets donnantle nombre de blocs dans le bitmap d'inodes, dans le bitmap deblocs et dans la table d'inodes, le nombre d'inodes libres, lenombre de blocs libres et le nombre de répertoires. Cettedernière information est utile au système qui tente répartir lesrépertoires parmi les différents groupes de blocs. Il allouera doncun nouveau répertoire dans le groupe qui en a le moins.

Cette organisation permet aux inodes d'être voisines des blocsauxquels elles font référence, et aux inodes d'être voisines deleur inode de répertoire, ce qui permet un accès plus rapide.

Page 99: Cours système d’exploitation partie3

99

Exemple : UNIX

Dans chaque inode, on trouve 15 adresses disque en termes deno de blocs. Les 12 premières adresses d'une inode permettentd'atteindre un espace données de :

12 1024 octets = 12 288 octets.

La 13e adresse disque pointe vers un autre bloc de 1024 octetsqui contient 256 adresses disque (4 octets par adresse), soit :

256 1024 octets = 262144 octets.

La 14e adresse disque pointe vers 256 blocs indirects(indirection d'ordre 2) qui pointent à leur tour chacun vers 256adresses disques :

256 256 1024 octets = 67108 864 octets.

Page 100: Cours système d’exploitation partie3

100

Exemple : UNIX

La 15e adresse disque est une indirection d'ordre 3, ce quipermet aux fichiers Linux d'atteindre des tailles avoisinant

256 256 256 1024 octets = 17 179 869 184 octets.

La taille maximale d'un tel fichier sera donc :

17 179 869 184 + 67 108 864 + 262 144 + 12 288 Go.

Cette implantation privilégie, du point de vue accès, les fichiersde petite taille (12 Ko). À l'ouverture, le premier descripteur dufichier (inode) est copié en mémoire. Lorsqu'on franchit le cap de12 288 octets, le système d'exploitation copie le premier blocindirect, et ainsi de suite.

Page 101: Cours système d’exploitation partie3

101

Exemple : UNIXPour savoir où se trouve l'octet n d'un fichier,:° si n < 12 288, il se trouve dans le bloc direct n / 1024 à l'offset

n mod 1024.° si n >12 288 et n ≤ 262 144, il se trouve dans le bloc donné par

la table de première indirection (n - 12 288) / 1024 à l'offset : (n - 12 288) mod 1024,

° etc.

Page 102: Cours système d’exploitation partie3

102

Exemple : UNIX

Ext2 tente de minimiser la fragmentation des fichiers lors del'allocation des blocs. Il cherche des blocs libres autour d'un bloccible. Si ce dernier est libre, il est alloué. Sinon, on cherche unbloc libre dans les 32 entourant le bloc cible. Si on en trouve un,il est alloué. Sinon, on cherche un bloc libre qui soit au moinsdans le même groupe de blocs que le bloc cible. Il y a plusieursheuristiques pour la définition du bloc cible. L'un d'entre eux estde prendre le premier bloc libre dans le groupe de blocs où setrouve l'inode du fichier.

Lorsqu'un bloc libre est trouvé, on réserve les 8 blocs suivants,s'ils sont libres. Quand le fichier sera fermé, les blocs réservésrestants seront libérés.

Page 103: Cours système d’exploitation partie3

103

Exemple : UNIXRépertoires

Les entrées d'un répertoire Linux sont de longueur variable parce queles noms de fichier peuvent aller de 1 caractère à 255 caractères. Ils'agit en fait d'une liste chaînée, puisque le champ longueur de l'entrée(rec_len), toujours arrondi vers le haut à un multiple de 4, donne en faitla position de l'entrée suivante.

Octets 4 2 2 1 à 255rec_len name_len Nom du fichier

No. d'inode longueur longueur

de l'entrée du nom

Page 104: Cours système d’exploitation partie3

104

Exemple : UNIX

inode rec_len name_len Entrée

3 12 1 . Pointeur vers lui-même2 12 2 .. Pointeur vers son parent11 20 9 Fichier 1

2017 12 4 Toto

… … … …… … … …

123 1 . 2120

12 2 ..24

2011 9 Fichier 144

122017 4 Toto56

Page 105: Cours système d’exploitation partie3

105

Exemple : UNIXRépertoires

Chaque répertoire ne peut avoir qu'un parent. Le répertoireracine n'a pas de parent et son pointeur “parent” contient lui-même, c.-à-d. le #2.

Lorsqu'un fichier est effacé, le numéro d'inode de l'entrée derépertoire est mis à 0 et l'entrée est éliminée de la liste chaînéeen augmentant le champ rec_len de l'entrée précédente pourqu'elle pointe à l'entrée suivante.

Page 106: Cours système d’exploitation partie3

2) le SGF d’UNIX (1/3)

* Structure hiérarchique

* 4 types de fichiers:ordinaires: suite octetscatalogues: nœuds de l’arbre de cette structureliens: pointent vers fichierspéciaux: accès aux périphériques

Page 107: Cours système d’exploitation partie3

2) le SGF d’UNIX (2/3)

Fichier et structure inode:

1) Type (parmi les 4)2) Taille3) Date4) Permission5) Propriétaire6) Localisation des données

Page 108: Cours système d’exploitation partie3

Micro$oft en 1988…

* Mieux que la FAT du Dos/Windows

* Mieux que HPFS de OS/2

New Technology File System (NTFS)

le SGF de Windows NT

* Logical Cluster Numbers (LCN)* Virtual Cluster Number (VCN)

Page 109: Cours système d’exploitation partie3

Master File Table...

le SGF de Windows NT

Page 110: Cours système d’exploitation partie3

File Record ...

le SGF de Windows NT

* Resident* Non Resident

* Attribute header* Attribute value

Page 111: Cours système d’exploitation partie3

File Record Sample...

3) le SGF de Windows NT (4/5)

Page 112: Cours système d’exploitation partie3

MFT in action !

Mais elle ressemble à quoi cette

MST ? MFT ?

Page 113: Cours système d’exploitation partie3

La comparaison...

Page 114: Cours système d’exploitation partie3

Feature XFS UFS VxFS NTFS

Max FS Size 18 million TB 1 TB 1 TB 2 TB

Max File Size 9 million TB 1 TB 1 TB 2 TB

File SpaceAllocation

Extents Blocks Extents Extents

Max. Extent Size 4 GB NA 64 MB Undoc’d

Free SpaceMgmt

Free extentsorganized by

B+ trees

Bitmap percylinder grp

Bitmap perallocation unit

Single bitmap

Variable BlockSize?

512 bytes to 64KB

4KB or 8KB 512 bytes to64KB (4KB w/compression)

Sparse FileSupport?

Yes Yes No NT 5.0

DirectoryOrganization

B+ Tree Linear Hashed B+ tree

Inode allocation Dynamic Static Dynamic Dynamic

Crash Recovery Asynch.Journal

Fsck* Synch. Journal Synch. Journal

MaximumPerformance

7GB/sec

4GB/sec (singlefile)

Not Available 1GB/sec Not Available

Page 115: Cours système d’exploitation partie3

chapitre dernier (résumé)

Structure de mémoire de masse (disques)

Page 116: Cours système d’exploitation partie3

Disques magnétiques

Plats rigides couverts de matériaux d ’enregistrement magnétique surface du disque divisée en pistes (tracks)

qui sont divisées en secteurs le contrôleur disque détermine l`interaction

logique entre l ’unité et l ’ordinateur

Page 117: Cours système d’exploitation partie3

Ordonnancement disques

Problème: utilisation optimale du matériel

Réduction du temps total de lecture disque étant donné une file de requêtes de lecture

disque, dans quel ordre les exécuter?

Page 118: Cours système d’exploitation partie3

Paramètres à prendre en considération

Temps de positionnement (seek time): le temps pris par l`unité disque pour

se positionner sur le cylindre désiré Temps de latence de rotation

le temps pris par l ’unité de disque qui est sur le bon cylindre pour se positionner sur le secteur désirée

Temps de lecture temps nécessaire pour lire la piste

Le temps de positionnement est normalement le plus important, donc il est celui que nous chercherons à minimiser

Page 119: Cours système d’exploitation partie3

File d’attente disque

Dans un système multiprogrammé avec mémoire virtuelle, il y aura normalement une file d’attente pour l ’unité disque

Dans quel ordre choisir les requêtes d ’opérations disques de façon à minimiser les temps de recherche totaux

Nous étudierons différents méthodes par rapport à une file d ’attente arbitraire:

98, 183, 37, 122, 14, 124, 65, 67 Chaque chiffre est un numéro séquentiel de cylindre Il faut aussi prendre en considération le cylindre de départ: 53 Dans quel ordre exécuter les requêtes de lecture de façon à

minimiser les temps totaux de positionnement cylindre Hypothèse simpliste: un déplacement d`1 cylindre coûte 1 unité

de temps

Page 120: Cours système d’exploitation partie3

Premier entré, premier sorti: FIFO

Mouvement total: 640 cylindres = (98-53) + (183-98)+...En moyenne: 640/8 = 80

axe de rotation45

85

14685

108

11059

2

Page 121: Cours système d’exploitation partie3

SSTF: Shortest Seek Time FirstPlus court d’abord

À chaque moment, choisir la requête avec le temps de recherche le plus court à partir du cylindre courant

Clairement meilleur que le précédentMais pas nécessairement optimal! (v.

manuel) Peut causer famine

Page 122: Cours système d’exploitation partie3

SSTF: Plus court servi

Mouvement total: 236 cylindres (680 pour le précédent)

En moyenne: 236/8 = 29.5 (80 pour le précédent)

Page 123: Cours système d’exploitation partie3

SCAN: l’algorithme de l’ascenseur La tête balaye le disque dans une

direction, puis dans la direction opposée, etc., en desservant les requêtes quand il passe sur le cylindre désiré Pas de famine

Page 124: Cours système d’exploitation partie3

SCAN: l ’ascenseur

Mouvement total: 208 cylindresEn moyenne: 208/8 = 26 (29.5 pour SSTF)

direction

Page 125: Cours système d’exploitation partie3

Problèmes du SCAN

Peu de travail à faire après le renversement de direction

Les requêtes seront plus denses à l’autre extrémité

Arrive inutilement jusqu’à 0

Page 126: Cours système d’exploitation partie3

C-SCAN

Retour rapide au début (cylindre 0) du disque au lieu de renverser la direction

Hypothèse: le mécanisme de retour est beaucoup plus rapide que le temps de visiter les cylindres Comme si les disques étaient en forme de cercle!

CC--LOOKLOOK La même idée, mais au lieu de retourner au

cylindre 0, retourner au premier cylindre qui a une requête

Page 127: Cours système d’exploitation partie3

C-LOOK

153 sans considérer le retour (19.1 en moyenne) (26 pour SCAN)MAIS 322 avec retour (40.25 en moyenne)Normalement le retour sera rapide donc le coût réel sera entre les deux

retour: 169 (??)

direction

Page 128: Cours système d’exploitation partie3

C-LOOK avec direction initiale opposée

direction

Résultats très semblables:157 sans considérer le retour, 326 avec le retour

Retour 169