Plan du cours

- Introduction - Emergence et évolution des systèmes d’exploitation - Système de fichiers : FAT - NTFS - Ordonnancement

– Systèmes d’exploitation 1ère année – – p. 1

FAT
FAT = File Allocation Table
Système de fichiers de DOS (dérivé de CP/M unix), reconnu par d’autres OS : Windows et linux . . .

documenté : 1. Hardware White Paper : "FAT : General Overview of On-Disk Format" 2. ISO/IEC 9293 :1994

– Systèmes d’exploitation 1ère année – – p. 2

FAT - allocation
allocation de l’espace par blocs avec index
- CLUSTERS (blocs) - FAT File Allocation Table (index) . FAT12 (12 bits) . FAT16/vfat (16 bits) . FAT32 (28/32 bits)

– Systèmes d’exploitation 1ère année – – p. 3

FAT - Structure
structure d’une partition FAT
métadonnées et données du système de fichiers

- boot sector : métadonnées du système de fichiers - FAT : index - répertoire racine (FAT16) - clusters : blocs des fichiers et répertoires

les clusters ne sont pas alignés sur le début de la partition

– Systèmes d’exploitation 1ère année – – p. 4

FAT - clusters
taille des clusters
taille d’un cluster : définie au formatage 1 cluster = n secteurs (512 bytes), n=puissance de 2 :

TAB . 1: Tailles des clusters
n taille cluster 1 2 4 ... 64 128 512b 1Kb 2Kb . . . 32Kb 64Kb

– Systèmes d’exploitation 1ère année – – p. 5

les limites dues à l’utilisation -> on parlera plutôt des limites dues au format (théoriques) – Systèmes d’exploitation 1ère année – – p.FAT .quelles limites ? certaines versions de windows limitent les clusters à 32Kb .les limites dues au format ... il est important de distinguer . 6 .

FAT . 7 . 2: Tailles maximum théoriques Nom bits max clusters max taille 2 exp 16 2 exp 28 4Gb 16Tb FAT16 16 FAT32 28(32) – Systèmes d’exploitation 1ère année – – p.table taille des partitions TAB .

décrit le chaînage des clusters des fichiers .table FAT = index .contient une entrée par cluster de la partition . 8 .chaque entrée contient le numéro du cluster suivant au sein du fichier des valeurs particulières indiquent la fin de fichiers – Systèmes d’exploitation 1ère année – – p.FAT .

cluster défectueux .table FAT : valeurs réservées (FAT12.(-1) .65526) .0 .(F)FF0H à (F)FF6H (65520 .FAT16) : .cluster reservé MS-DOS .(F)FF7H .cluster disponible .(F)FF8H à (F)FFFH .FAT . 9 .dernier cluster du fichier -> 2-65519 : clusters utilisables (non réservés) -> 2-65526 : plage d’adresses des clusters pouvant être chaînés dans la FAT – Systèmes d’exploitation 1ère année – – p.

FAT . 10 .la taille maximum théorique d’un volume FAT32 est 16Tb .tailles 16 ou 32 ? .la taille maximim théorique d’un volume FAT16 est 4GB -> taille des clusters ? – Systèmes d’exploitation 1ère année – – p.

avec des clusters de 16Kb on réduit à 125Mb – Systèmes d’exploitation 1ère année – – p.la taille de la FAT pour un volume FAT32 de 500Gb et des clusters de taille 4Kb est 500 Mb ! .tailles taille de la table FAT comment calculer la taille de la table FAT (index) nombre entrées FAT = taille partition / taille clusters taille FAT = nombre entrées FAT * taille entrée FAT . 11 .FAT .

tailles la taille maximum d’une table FAT16 est 128Kb la taille d’une table FAT32 peut devenir très grosse chargée en RAM au démarrage du système ! ! -> un grand volume FAT ralentit le démarrage du système – Systèmes d’exploitation 1ère année – – p.FAT . 12 .

32 Gb FAT32 > 32 Gb NTFS – Systèmes d’exploitation 1ère année – – p.FAT . 13 .valeurs défaut taille partition type de FAT < 2 Gb FAT16 2 Gb .

. 14 .table des partitions d’un disque MBR ... ..adressage des secteurs du disque ..FAT il existe des restrictions supplémentaires : .outils mal programmés . – Systèmes d’exploitation 1ère année – – p.

15 .exercices calculer : .taille minimum de clusters pour 2 Tb en FAT 32(28) ? .FAT .taille maximum d’une partition FAT 16 ? .taille de la table FAT avec clusters de 4Kb pour 32 Gb en FAT 32(28) ? – Systèmes d’exploitation 1ère année – – p.que peut-on dire de la fragmentation interne ? .taille maximum d’une table FAT 16 ? .taille de la table FAT dans ce cas ? .

32 secteurs pour FAT32) .Structure structure d’une partition FAT métadonnées et données du système de fichiers .zone FAT .FAT .zone pour les fichiers et répertoires – Systèmes d’exploitation 1ère année – – p. 16 .zone du répertoire racine (FAT 12-16) .boot sector et zone réservée (1 secteur pour FAT 12-16.

0 pour FAT32 et 4 bytes ailleurs) ..(1b) nombre de FAT (2) . 17 .(3b) instruction de saut au chargeur du système (plus loin) ..secteur de Boot le Boot sector et Bios Parameter Block métadonnées du système de fichiers : . . ....code du chargeur du système avec restrictions d’usage car les outils n’en ont pas toujours tenu compte :-( – Systèmes d’exploitation 1ère année – – p.FAT .(2b) nombre d’entrées de 32 bytes dans le répertoire racine en FAT16 (512.(2b) nombre de secteurs dans le volume FAT (4b pour FAT32) ..(2b) taille zone réservée (1-32) .(1b) nombre de secteurs par cluster .(2b) taille d’un secteur (512) .

FAT . 18 .secteur de Boot nombre d’entrées répertoire racine pour une FAT 16 le nombre d’entrés du répertoire racine est limité : 512 .1 (utilisé pour pour le Volume-id) inférieur dans le cas d’utilisation de noms longs ! – Systèmes d’exploitation 1ère année – – p.

exemple .FAT . 19 .reconstituons entièrement A et B à partir du numéro de leur premier cluster – Systèmes d’exploitation 1ère année – – p.

fichier d’enregistrements .contient les métadonnées des fichiers .descripteurs de 32 bytes (un par fichier/sous-répertoire) . 20 . dotdot(sauf la racine) – Systèmes d’exploitation 1ère année – – p.fichier particulier .a au moins deux sous-répertoires : dot.répertoires répertoire .FAT .

localiser – Systèmes d’exploitation 1ère année – – p.FAT . 21 .

22 .FAT .répertoires entrée de répertoire tout fichier/répertoire est décrit dans son répertoire parent (mais est-ce bien vrai ?) les 32 bytes d’une entrée de répertoire en FAT16 – Systèmes d’exploitation 1ère année – – p.

SYSTEM .HIDDEN .ARCHIVE . 23 .répertoires attributs : .2 bits à 0 – Systèmes d’exploitation 1ère année – – p.DIRECTORY .FAT.VOLUME_ID .READ_ONLY .

.FAT.nom DOS premier byte du nom : valeurs particulières .répertoires nom et extension : 11 bytes (8+3) .0xF5 : fichier supprimé ... noms longs depuis vfat – Systèmes d’exploitation 1ère année – – p.0x00 : première entrée libre .0x05 : vaut 0xF5 :-) . 24 .

répertoires .chaque nouvelle entrée permet d’étendre le nom de 13 caractères .l’entrée est marquée grâce à l’attribut ATTR_LONG_NAME . 25 .FAT.ATTR_LONG_NAME = READ_ONLY + HIDDEN + SYSTEM + VOLUME_ID la combinaison d’atributs est ignorée par DOS ce choix assurait la compatibilité ascendante pour DOS – Systèmes d’exploitation 1ère année – – p.en cas de nom long on occupe plusieurs entrées répertoire .

heure : (heure : 5 bits.répertoires heure-date en FAT16 : dernier accès en écriture une heure et une date (2 bytes chacun) . 26 . mois : 4 bits. année : 7 bits) -> max année = 127 ans (1980+127 = 2107) et si on représentait date par un nombre de secondes sur 32 bits ? (2exp32 sec)/(1 jour =86400 sec) / 365 = 136 ans (1980+136 = 2116) -> 9 ans de plus avec 1 seconde comme précision ! – Systèmes d’exploitation 1ère année – – p. secondes : 5 bits) -> max secondes 32 (30) précision 2 secondes ! ! .date : (jour : 5 bits.FAT. minutes : 6 bits.

27 .répertoires heure-date en FAT32 un byte dans la partie réservée permet d’obtenir une précision plus fine : 0-199 centièmes de secondes (= 2 secondes) gère également la date du dernier accès (lecture ou écriture) – Systèmes d’exploitation 1ère année – – p.FAT.

28 .répertoires numéro du premier bloc : 2 bytes le premier cluster du fichier pour un fichier vide ce premier cluster vaut 0 FAT32 utilise 4 bytes pour ce champ (deux bytes supplémentaires dans la partie réservée) – Systèmes d’exploitation 1ère année – – p.FAT.

29 .répertoires taille du fichier : 4 bytes (taille logique) -> le plus grand fichier sur une partition FAT : 4Gb – Systèmes d’exploitation 1ère année – – p.FAT.

est une suite de descripteurs de fichiers/répertoires de 32 bytes : un par entrée sa longueur : une métadonnée du système de fichiers – Systèmes d’exploitation 1ère année – – p. 30 .racine répertoire racine particularités du répertoire racine : aucun autre répertoire ne le décrit nom ? premier cluster ? longueur ? sa position est calculable son contenu. comme celui des autres répertoires.FAT .

les suivants sont chaînés .le n°du premier cluster.racine en FAT12-16 .le nombre d’entrées du répertoire racine (4bytes) – Systèmes d’exploitation 1ère année – – p. le premier est connu (souvent le 2) la zone réservée en début de partition contient : .sa taille est limitée ! . 31 .son allocation contiguë en FAT32 .le répertoire racine a un emplacement fixe calculable .racine = chaîne de clusters.FAT .

32 .quel est le numéro de secteur contenant le byte N du fichier ? .quel numéro de cluster F du fichier contient le byte N du fichier ? .quel numéro de cluster disque correspond au cluster F du fichier ? .localiser localisation .quelle est la position du byte N dans ce secteur ? – Systèmes d’exploitation 1ère année – – p.FAT .

pour une FAT16 le cluster 2 suit le répertoire racine .localiser numérotation des clusters les clusters sont numérotés depuis le n°2 .pour une FAT32 le cluster 2 suit les tables FAT la position d’un cluster est calculée sur base des métadonnées du système de fichiers – Systèmes d’exploitation 1ère année – – p. 33 .FAT .

localiser exemple : Soit une partition FAT16 avec le fichier et le répertoire : \rep\fich Le fichier contient 1030 caractères ’a’ La taille des clusters est 1Kb (1024 bytes) Le répertoire rep est décrit dans le cluster 268 Le fichier fich occupe les clusters 1000 et 1024 essayons de dessiner la structure du système de fichiers FAT correspondant comment fait le système pour accéder aux données du fichier \rep\fich ? – Systèmes d’exploitation 1ère année – – p. 34 .FAT .

localiser \ .lire les enregistrements successifs du fichier \ jusque au descripteur de "rep" et obtenir sa position .obtenir la position de fich .FAT .lire les enregistrements successifs du fichier rep jusque au descripteur de "fich" (en parcourant les clusters chaînés) .localiser . 35 .lire les données du fichier fich (en parcourant les clusters chaînés) comment le Système d’exploitation sait-il que le cluster 1024 ne contient que 6 ’a’ ? – Systèmes d’exploitation 1ère année – – p.

FAT .localiser – Systèmes d’exploitation 1ère année – – p. 36 .

FAT .pourquoi le premier cluster d’un nouveau répertoire ne vaut pas 0 ? – Systèmes d’exploitation 1ère année – – p.que doit faire le système quand la taille d’un fichier augmente et que le dernier cluster du fichier est plein ? . 37 .que doit faire le système pour créer un nouveau répertoire ? .questions .que doit faire le système pour créer un nouveau fichier vide ? .que doit faire le système pour lire un fichier entièrement ? .

exercices servez-vous des informations du secteur de boot pour : .avec +/. 38 .30 fichiers de 1 byte ? .avec +/.calculer le nombre de secteurs occupés par le répertoire racine en FAT16 .avec +/.calculer la position du cluster N peut-on saturer un système de fichiers FAT16 de 2Gb . .2 exp 16 fichiers de 1 byte ? .2 exp 30 fichiers de 1 byte ? .pourquoi ? – Systèmes d’exploitation 1ère année – – p.FAT .

la File Allocation Table sert à trouver le premier cluster d’un fichier[V-F] – Systèmes d’exploitation 1ère année – – p.en FAT.un répertoire quelconque en FAT tient sur maximum un cluster [V-F] . 39 .Questions .les clusters d’une FAT ont tous la même taille [V-F] .FAT . il y a perte d’espace disque par fragmentation interne [V-F] .

le SE dispose d’une description d’un Système de fichiers appelé FAT Le programmeur système peut écrire les différents services qui permettront de manipuler ce FS Ces différents services seront écrits sous forme d’appels système. – Systèmes d’exploitation 1ère année – – p. 40 .FAT . . Quelques cas . .appels système A ce stade.

FAT .seek . 41 .write ..close libère l’entrée de la table ..... – Systèmes d’exploitation 1ère année – – p.appels système les appels système .read . les fichiers sont lus en plusieurs opérations successives -> stocker localisation et position courante dans une Table des descripteurs de fichiers ouverts en RAM .open s’occupe de localiser le fichier .

il faut pouvoir récupérer le n° d’entrée dans la table des processus Pourquoi faut-il un n°d’entrée ? – Systèmes d’exploitation 1ère année – – p. après l’appel Système. en précisant que c’est l’appel système open que l’on souhaite Informations échangées avec l’appel système Open 1.appels système Appel de l’appel système open A l’aide de l’instruction INT. 42 .FAT . le nom de fichier doit être fourni 2.

appels système Pour ouvrir le fichier \windows\desktop\image.Compléter le registre 2 avec le n°de l’appel système correspondant à open . – Systèmes d’exploitation 1ère année – – p.. le programme doit : .jpg. .FAT . 43 .Compléter le registre 1 avec le nom de fichier ..Lorsque le processus est débloqué et nouvellement élu : lire le n°de l’entrée du fichier dans un registre 3 récupéré de la table des processus..INT .

3. ouvrir une entrée dans la table en mémoire qui mémorise n°de premier cluster et position courante dans ce fichier (0 au départ) 4. pour trouver le n°du premier cluster du fichier.S. Que pensez-vous du point 2 ? – Systèmes d’exploitation 1ère année – – p. mémoriser ce n°d’entrée dans la table des processus (registres) pourque le processus puisse en disposer 5. 2.appels système Appel système open 1. 44 .FAT . parcourir le F. sauvegarder le contexte du processus appelant. effectuer un branchement à l’ordonnanceur.

FAT . 45 .n°de fichier .adresse où placer le résultat de la lecture .appels système Appel de l’appel système read à l’aide de l’instruction INT cet appel utilise les informations suivantes : .Le nombre de bytes réellement lus A quoi peut servir ce nombre ? – Systèmes d’exploitation 1ère année – – p.nombre de bytes à lire l’appel système fournit également une information : .

Compléter le registre 2 avec l’adresse de la mémoire où les 271 bytes seront écrits.Une fois réélu : lire le nombre de bytes réellement lus dans un registre 4.appels système Pour lire 271 bytes du fichier n°7..INT . soit 7. . le programme doit : . soit un nom de variable.Compléter le registre 1 avec le numéro du fichier. .Compléter le registre 3 avec le nombre de bytes à lire. 46 ..FAT . – Systèmes d’exploitation 1ère année – – p. . .. soit 271.

– Systèmes d’exploitation 1ère année – – p.M.effectuer un branchement à l’ordonnanceur.M. .sauvegarder le contexte du processus appelant. .FAT . .mettre l’état du processu appelant à bloqué. de transférer du disque vers la mémoire (d’où ? où ?.A.demander au D. 47 .commander le périphériue .A.appels système Appel système read read va donc : . .mémoriser qui est le processus qui demande le transfert D. combien ?).

– Systèmes d’exploitation 1ère année – – p.M. .sauvegarder le contexte du processus en cours(->prêt).M.effectuer un branchement à l’ordonnanceur. .A.inscrire dans la table des fichiers ouverts en mémoire la nouvelle position courante dans ce fichier.Debloquer le processus qui avait demandé le transfert D. .INT externe D.A.FAT . 48 . .

.Détailler le fonctionnement de l’appel système write.Exercices . – Systèmes d’exploitation 1ère année – – p.Détailler le fonctionnement de l’appel système seek. 49 .

le cluster qui précède le nouveau pointe vers le nouveau cluster – Systèmes d’exploitation 1ère année – – p.le cluster libre pointe vers le clusters suivant du fichier ou la fin du fichier .FAT .fiabilité incohérences des incohérences peuvent survenir suite à une panne de courant lors d’ajout ou suppression d’un cluster d’un fichier ajout d’un cluster : . 50 .

FAT .le cluster qui précède celui à supprimer pointe vers le clusters suivant . la FAT sur disque reste dans un état incohérent – Systèmes d’exploitation 1ère année – – p.fiabilité suppression d’un cluster : . si une panne de courant survient entre les deux mises à jour.le cluster à supprimer est marqué libre Dans les deux cas. 51 .

fiabilité exemple dans le cas d’ajout : – Systèmes d’exploitation 1ère année – – p. 52 .FAT .

un cluster libre chaîné ? .fiabilité Une incohérence peut survenir dans une information redondante .un cluster non chaîné.FAT . 53 . non libre ? la redondance permet de "réparer" l’incohérence où est la redondance dans ce cas ? – Systèmes d’exploitation 1ère année – – p.

CHK.FAT . parcourt la FAT à la recherche des clusters chainés : ceux qui apartiennent à un fichier 2. 54 .fiabilité la commande chkdsk utilise cette redondance : 1.CHK dans le répertoire racine – Systèmes d’exploitation 1ère année – – p. cherche les clusters libres : ceux qui ont un 0 en FAT en théorie un cluster "normal" doit soit être libre soit être chaîné La comparaison entre ces deux résultats permet d’isoler des "chaines de clusters perdues" Ces dernières sont récupérées sous forme de fichiers nommés FILE0000. FILE0001.

FAT .fiabilité Cluster défectueux ? cluster défectueux dans un fichier -> perte d’une partie de données cluster défectueux dans la FAT -> le système de fichiers risque d’être fortement compromis -> la copie de la FAT peut être maintenue pour garantir une plus grande fiabilité si le cluster défectueux est au niveau d’un fichier utilisateur c’est moins grave – Systèmes d’exploitation 1ère année – – p. 55 .

(++)FAT système de fichiers simple et connu par plusieurs systèmes d’exploitation .(-)pas de gestion d’attributs pour la protection d’accès .(-)taille des fichiers limitée à 4Gb . la fragmentation de fichiers est due notamment à la manière d’allouer les nouveaux blocs aux fichiers (en début de volume) – Systèmes d’exploitation 1ère année – – p.FAT .(-)souffre de la fragmentation des fichiers NB.(-)non adapté aux grandes partitions. ni à un environnement multiutilisateur . 56 .conclusions .

57 .FAT .(-)taille FAT imposante pour grandes partitions et clusters petits .conclusions Table FAT chargée en RAM et mise à jour en même temps en RAM et sur le disque .(-)chargement de la FAT en RAM : ralentit le démarrage du système – Systèmes d’exploitation 1ère année – – p.

(+)FAT32 utilise l’espace plus efficacement que FAT16 .(-)FAT32 +lent au chargement car grosse table FAT Les clés usb ou disques externes actuels sont souvent formatés en FAT – Systèmes d’exploitation 1ère année – – p. 58 .FAT16/32 .conclusions .

FAT .VRAI-FAUX .Détaillez ce que fait l’appel système open – Systèmes d’exploitation 1ère année – – p.L’appel système open fait des lectures sur le disque . 59 .