• Aucun résultat trouvé

Systèmes d’Exploitation Implémentation des systèmes de fichiers Didier Verna

N/A
N/A
Protected

Academic year: 2022

Partager "Systèmes d’Exploitation Implémentation des systèmes de fichiers Didier Verna"

Copied!
18
0
0

Texte intégral

(1)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Systèmes d’Exploitation

Implémentation des systèmes de fichiers

Didier Verna

didier@lrde.epita.fr http://www.lrde.epita.fr/˜didier

(2)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Table des matières

1

Généralités

2

Méthodes d’allocation

3

Implémentation des répertoires

4

Implémentation du swap

5

Représentations de l’espace libre

6

Corruption des systèmes de fichiers

7

Performances des systèmes de fichiers

(3)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Fonctionnalités requises

Définir l’interface utilisateur : caractéristiques et attributs des fichiers, opérations sur les fichiers, structures des répertoires

etc.

Définir l’interface matérielle : structure de données, algorithmes, liaison entre système logique et dispositif de stockage en mémoire auxiliaire

Commandes génériques de lecture / écriture de

blocs physiques Traduction entre adresses

de bloc logiques et physiques

Gestion de l’espace libre Connaissance de la

structure de répertoires

Mécanismes de protection / sécurité

Système de fichiers logique Module d’organisation des fichiers Système de fichiers de base Contrôle des Entrées / Sorties

Prériphériques

Programmes

Drivers de périphériques

Handlers d’interruptions

(4)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Allocation et efficacité

Utiliser la mémoire auxiliaire le plus efficacement possible

Efficacité des entrées / sorties :

transferts de données par « blocs » (Cf. aussi le DMA).

=⇒

Allocation d’espace disque également par bloc plutôt que par octet. Compromis espace /

performance : blocs de 1K.

Accès direct :

par opposition aux périphériques à accès séquentiel (ex. bandes magnétiques).

=⇒

Implémentation des méthodes d’accès aux fichiers

facile.

(5)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Allocation contiguë

Exemple : IBM VM/CMS

Principe

I Fichiers stockés par blocs contigus sur le disque

I Temps de positionnement des têtes minimal

I Entrée de répertoire : adresse du premier bloc et longueur (en nombre de blocs)

I Accès direct et séquentiel faciles à implémenter : il suffit de mémoriser l’adresse du premier bloc

I Gestion de l’espace libre : Cf.∗-fit, fragmentation externe, compactageetc.

Problème majeur : fichiers de taille variable

I Trop d’espace :fragmentation interne

I Pas assez d’espace :déplacement (coûteux) du fichier. Pas toujours possible.

Utilisation actuelle : CD / DVD-ROM

(6)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Allocation chaînée

Principe

I Fichier = chaîne non contiguë de blocs disque

I Chaque bloc se termine par un pointeur sur le bloc suivant

I Une entrée de répertoire contient un pointeur sur le premier bloc

Avantages

I Pas de fragmentation externe

I Pas de limite de taille

Inconvénients

I Accès direct inefficace

I Fiabilité : perte de pointeur critique. Solutions : listes doublement chaînées, reproduction du nom de fichier et numéro de bloc dans chaque blocetc.Coûteux dans tous les cas.

(7)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

File Allocation Table (FAT)

Variante de l’allocation chaînée (MS-DOS, OS/2)

Principe

I Une FAT au début de chaque partition

I Table indexée par numéros de bloc

I Chaque entrée pointe sur le numéro de bloc suivant

I Une entrée de répertoire contient un pointeur sur le premier bloc

Avantages (à condition de mettre la FAT en mémoire)

I Moins de risque de corruption

I Accès séquentiel aussi rapide

I Accès direct (presque) aussi rapide que l’accès séquentiel

Inconvénients

I Taille de la FAT

Disque de 20G, blocs de 1Kb=⇒FAT de 80M

(8)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Allocation indexée (« i-nodes »)

Schéma analogue à la pagination

Principe

I Chaque fichier possède un bloc d’index (1er bloc)

I Une entrée de répertoire pointe sur le bloc d’index

I La ieentrée du bloc d’index pointe sur le iebloc de données du fichier

Avantages

I Implémentation efficace de l’accès direct

I Table des i-nodes de taille proportionnelle au nombre de fichiers (Cf. FAT : taille du disque)

Inconvénients

I Fragmentation interne plus grande qu’avec l’allocation chaînée

I Problème de la taille des index

(9)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Schémas d’indexation

Comment stocker des index sur plusieurs blocs ?

Schéma chaîné : réserver le dernier mot du bloc d’index pour un pointeur sur le bloc d’index suivant.

Index à multiniveaux : analogue à la pagination à plusieurs niveaux. Index pointant sur des index pointant . . . sur des blocs de données. Indexation à 2 niveaux

=⇒

Fichiers de l’ordre de 10 Go.

Schéma combiné : les premières entrées pointent sur

des blocs de données. Les suivantes pointent sur des

blocs d’index de différents niveaux.

(10)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Structure des i-node

Schéma combiné d’Unix (BSD, System V)

Droits UID / GID

Date Taille Nombre de liens

Bloc indirect (3) Bloc indirect (2) Bloc indirect (1) Bloc direct 10

...

Bloc direct 2 Bloc direct 1

Données Données

Données

Données

Données ...

Index

Index

Données

Données ...

Index

Données

Données ...

Index ...

(11)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Implémentation des répertoires

Liste linéaire : noms de fichiers / attributs / pointeurs sur des blocs de données, ou noms de fichiers / pointeurs sur des i-nodes.

I Avantage :implémentation simple

I Inconvénient :recherche linéaire dans la liste

Caching des répertoires fréquemment utilisés. Triage de la liste (arbre binaire chaîné, recherche dichotomique etc.)

Table de hachage : transformation des noms de fichiers en index de tableau (fonction de hachage).

I Avantage :temps de recherche plus court

I Inconvénient :tables de taille fixe, fonction de hachage dépendante de la taille de la table

(12)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Implémentation du swap

Utilisation

I Stockage des images mémoires des processus

I Stockage des pages supprimées de la mémoire

Emplacement

I Système de fichiers(Windows). Utilisation des primitives standard de création, destruction, allocation d’espace. Implémentation facile. Inconvénient : lenteur.

I Partition distinctePas de système de fichiers. Plus de fragmentation interne, mais accès plus efficace.

Inconvénient : réservation de l’espace au moment du formattage disque.

Remarque : certains systèmes (ex. Solaris 2)

permettent l’existence de plusieurs espaces de swap,

en partition ou en fichiers.

(13)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Représentation de l’espace libre

Vecteur binaire : (Mac OS) représentation de chaque bloc dans l’ordre par un bit d’occupation. Instructions matérielles facilitant la manipulation (i386, 68030).

Efficace à condition que le vecteur en entier soit maintenu en mémoire vive.

Liste chaînée : un pointeur sur le premier bloc libre.

Chaque bloc libre pointe sur le suivant. Inefficace en cas de besoin de plus d’un bloc.

Groupement : stockage des adresses de blocs libres dans autant de blocs libres que nécessaire. Efficace grâce au principe de lecture par bloc.

Compactage : en général, plusieurs blocs libres se

suivent. Stockage d’une adresse de bloc et du nombre

de blocs libres contigus. Liste plus courte que dans les

(14)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Corruption des systèmes de fichiers

Profiter de la redondance . . .

Vérification de blocs : parcours de tous les i-nodes et calcul de deux compteurs par blocs : présence dans des fichiers et dans l’espace libre. Chaque bloc ne devrait être présent qu’une fois : en libre ou en fichier.

Vérification de fichiers : parcours de tous les

répertoires et calcul d’un compteur de références par

fichier. Comparaison avec le compteur de référence de

l’i-node.

(15)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

RAM = O(ns), disque = O(ms)

Caching : Cf. algorithmes de pagination (L

RUetc.).

Mais attention aux blocs critiques pour la cohérence du système de fichiers : sauvegarder immédiatement tous les blocs structurels, ou simplement tous les blocs (« write-through cache »).

Read-ahead : lire à l’avance plus d’un bloc. Analogue à la prépagination. Intéressant pour l’accès séquentiel.

Organisation physique : profiter de blocs libres

contigüs, maintenir une proximité entre les i-nodes et

les blocs de données correspondants.

(16)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Structure des disques

Têtes Axe

Plateau Cylindre

Secteur Piste

(17)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Délai de réception d’une E/S

Temps de positionnement : déplacement des têtes sur la piste (le cylindre) considéré(e).

Temps de latence : passage du bloc sous la tête par rotation des plateaux.

Temps de transfert : temps effectif de transfert des

données vers (ou depuis) la mémoire.

(18)

Systèmes d’Exploitation

Didier Verna EPITA

Généralités Allocation Répertoires Swap Espace libre Corruption Performance

Algorithmes d’ordonnancement des disques

F

CFS

: servir la requête arrivée en premier.

Implémentation simple. Intrinsèquement juste. Risque de déplacement « sauvage » des têtes.

S

STF

: servir la requête la plus proche de la position actuelle. Basé sur l’écart entre pistes. Analogue au S

JF

. Risque de famine. Non optimal (contrairement au S

JF

).

S

CAN

: balayage avant / arrière perpétuel des pistes.

Service des requêtes en fonction de la position des têtes. Aussi appelé « ascenseur » ou « chasse-neige ».

C-S

CAN

: S

CAN

circulaire. En fin de disque, retour au début sans traiter aucune requête.

[C-]L

OOK

: [C-]S

CAN

avec retour quand plus aucune

requête n’existe dans la direction courante. Le plus

Références

Documents relatifs

Chemin de fichier exprimé depuis un autre répertoire que la racine du système de fichiers (généralement par rapport au répertoire de travail, voir plus loin). Exemple

Nous venons de voir qu’un système est une association de constituants dont le rôle est de réaliser tout ou partie des actions du processus de la valeur ajoutée. Ces actions

Dans le système d’exploitation, les pro- grammes présents en mémoire sont répertoriés dans une table des processus, qui contient leur état (actif, prêt, bloqué), et les

Rappels sur les matrices R´ eduction des matrices Algorithme, complexit´ e Syst` emes lin´ eaires, d´ efinitions Norme de vecteurs et de matrices Conditionnement.. Notion de

Implémentation des appels système sous Linux – 177 phys() , de numéro 52, permet à un processus de spécifier une adresse physique (et non une adresse virtuelle) ; sa fonction de

I reli´ e ` a un circuit int´ egr´ e sp´ ecialis´ e, charg´ e de r´ epartir les informations entre processeur, m´ emoire, carte vid´ eo et les autres composants, via le pont

Il se peut ´egalement que l’une des deux machines, le serveur par exemple, soit persuad´e qu’il y a congestion, alors qu’en fait le client ignore d´elib´er´ement les

• Mémoire: code machine, données, pile, tas, adressages, représentation de l’information.. INF3135 Construction et maintenance