- Introduction - Emergence et volution des systmes dexploitation - Systme de chiers : FAT - NTFS - Ordonnancement
FAT
FAT = File Allocation Table
Systme de chiers de DOS (driv de CP/M unix), reconnu par dautres OS : Windows et linux . . .
document : 1. Hardware White Paper : "FAT : General Overview of On-Disk Format" 2. ISO/IEC 9293 :1994
FAT - allocation
allocation de lespace par blocs avec index
- CLUSTERS (blocs) - FAT File Allocation Table (index) . FAT12 (12 bits) . FAT16/vfat (16 bits) . FAT32 (28/32 bits)
FAT - Structure
structure dune partition FAT
mtadonnes et donnes du systme de chiers
- boot sector : mtadonnes du systme de chiers - FAT : index - rpertoire racine (FAT16) - clusters : blocs des chiers et rpertoires
FAT - clusters
taille des clusters
taille dun cluster : dnie au formatage 1 cluster = n secteurs (512 bytes), n=puissance de 2 :
il est important de distinguer - les limites dues au format - les limites dues lutilisation
FAT - table
taille des partitions
TAB . 2: Tailles maximum thoriques
Nom bits max clusters max taille 2 exp 16 2 exp 28 4Gb 16Tb FAT16 16 FAT32 28(32)
FAT - table
FAT = index
- contient une entre par cluster de la partition - dcrit le chanage des clusters des chiers - chaque entre contient le numro du cluster suivant au sein du chier
FAT - table
FAT : valeurs rserves (FAT12,FAT16) : - 0 - cluster disponible - (F)FF0H (F)FF6H (65520 - 65526) - cluster reserv MS-DOS - (F)FF7H - cluster dfectueux - (F)FF8H (F)FFFH - (-1) - dernier cluster du chier -> 2-65519 : clusters utilisables (non rservs) -> 2-65526 : plage dadresses des clusters pouvant tre chans dans la FAT
FAT - tailles
16 ou 32 ?
- la taille maximum thorique dun volume FAT32 est 16Tb - la taille maximim thorique dun volume FAT16 est 4GB -> taille des clusters ?
FAT - tailles
taille de la table FAT
comment calculer la taille de la table FAT (index) nombre entres FAT = taille partition / taille clusters taille FAT = nombre entres FAT * taille entre FAT - la taille de la FAT pour un volume FAT32 de 500Gb et des clusters de taille 4Kb est 500 Mb ! - avec des clusters de 16Kb on rduit 125Mb
FAT - tailles
la taille maximum dune table FAT16 est 128Kb
la taille dune table FAT32 peut devenir trs grosse charge en RAM au dmarrage du systme ! !
FAT
il existe des restrictions supplmentaires :
- outils mal programms ... - table des partitions dun disque MBR - adressage des secteurs du disque - ...
FAT - exercices
calculer : - taille maximum dune table FAT 16 ? - taille maximum dune partition FAT 16 ? - que peut-on dire de la fragmentation interne ? - taille minimum de clusters pour 2 Tb en FAT 32(28) ? - taille de la table FAT dans ce cas ? - taille de la table FAT avec clusters de 4Kb pour 32 Gb en FAT 32(28) ?
FAT - Structure
structure dune partition FAT
mtadonnes et donnes du systme de chiers
- boot sector et zone rserve (1 secteur pour FAT 12-16, 32 secteurs pour FAT32) - zone FAT - zone du rpertoire racine (FAT 12-16) - zone pour les chiers et rpertoires
FAT - exemple
FAT - rpertoires
rpertoire
- chier particulier - contient les mtadonnes des chiers - descripteurs de 32 bytes (un par chier/sous-rpertoire) - chier denregistrements - a au moins deux sous-rpertoires : dot, dotdot(sauf la racine)
FAT - localiser
FAT - rpertoires
entre de rpertoire
tout chier/rpertoire est dcrit dans son rpertoire parent (mais est-ce bien vrai ?)
FAT- rpertoires
attributs :
- ARCHIVE - READ_ONLY - HIDDEN - SYSTEM - DIRECTORY - VOLUME_ID - 2 bits 0
FAT- rpertoires
nom et extension : 11 bytes (8+3) - nom DOS premier byte du nom : valeurs particulires - 0x00 : premire entre libre - 0xF5 : chier supprim - 0x05 : vaut 0xF5 :-) - ... noms longs depuis vfat
FAT- rpertoires
- en cas de nom long on occupe plusieurs entres rpertoire - chaque nouvelle entre permet dtendre le nom de 13 caractres - lentre est marque grce lattribut ATTR_LONG_NAME
- ATTR_LONG_NAME = READ_ONLY + HIDDEN + SYSTEM + VOLUME_ID
la combinaison datributs est ignore par DOS ce choix assurait la compatibilit ascendante pour DOS
FAT- rpertoires
heure-date en FAT16 : dernier accs en criture une heure et une date (2 bytes chacun)
- heure : (heure : 5 bits, minutes : 6 bits, secondes : 5 bits) -> max secondes 32 (30) prcision 2 secondes ! ! - date : (jour : 5 bits, mois : 4 bits, anne : 7 bits) -> max anne = 127 ans (1980+127 = 2107)
FAT- rpertoires
heure-date en FAT32
un byte dans la partie rserve permet dobtenir une prcision plus ne : 0-199 centimes de secondes (= 2 secondes) gre galement la date du dernier accs (lecture ou criture)
FAT- rpertoires
numro du premier bloc : 2 bytes le premier cluster du chier
FAT32 utilise 4 bytes pour ce champ (deux bytes supplmentaires dans la partie rserve)
FAT- rpertoires
taille du chier : 4 bytes (taille logique) -> le plus grand chier sur une partition FAT : 4Gb
FAT - racine
rpertoire racine
particularits du rpertoire racine : aucun autre rpertoire ne le dcrit nom ? premier cluster ? longueur ? sa position est calculable son contenu, comme celui des autres rpertoires, est une suite de descripteurs de chiers/rpertoires de 32 bytes : un par entre sa longueur : une mtadonne du systme de chiers
FAT - racine
en FAT12-16 - le rpertoire racine a un emplacement xe calculable - sa taille est limite ! - son allocation contigu en FAT32 - racine = chane de clusters, le premier est connu (souvent le 2) la zone rserve en dbut de partition contient : - le ndu premier cluster, les suivants sont chans - le nombre dentres du rpertoire racine (4bytes)
FAT - localiser
localisation
- quel numro de cluster F du chier contient le byte N du chier ? - quel numro de cluster disque correspond au cluster F du chier ? - quel est le numro de secteur contenant le byte N du chier ? - quelle est la position du byte N dans ce secteur ?
FAT - localiser
numrotation des clusters
les clusters sont numrots depuis le n2
- pour une FAT16 le cluster 2 suit le rpertoire racine - pour une FAT32 le cluster 2 suit les tables FAT
la position dun cluster est calcule sur base des mtadonnes du systme de chiers
FAT - localiser
exemple : Soit une partition FAT16 avec le chier et le rpertoire : \rep\fich Le chier contient 1030 caractres a La taille des clusters est 1Kb (1024 bytes) Le rpertoire rep est dcrit dans le cluster 268 Le chier ch occupe les clusters 1000 et 1024 essayons de dessiner la structure du systme de chiers FAT correspondant comment fait le systme pour accder aux donnes du chier \rep\fich ?
FAT - localiser
- localiser \ - lire les enregistrements successifs du chier \ jusque au descripteur de "rep" et obtenir sa position - lire les enregistrements successifs du chier rep jusque au descripteur de "ch" (en parcourant les clusters chans) - obtenir la position de ch - lire les donnes du chier ch (en parcourant les clusters chans) comment le Systme dexploitation sait-il que le cluster 1024 ne contient que 6 a ?
FAT - localiser
FAT - questions
- que doit faire le systme quand la taille dun chier augmente et que le dernier cluster du chier est plein ? - que doit faire le systme pour crer un nouveau chier vide ? - que doit faire le systme pour lire un chier entirement ? - que doit faire le systme pour crer un nouveau rpertoire ? - pourquoi le premier cluster dun nouveau rpertoire ne vaut pas 0 ?
FAT - exercices
servez-vous des informations du secteur de boot pour : - calculer le nombre de secteurs occups par le rpertoire racine en FAT16 - calculer la position du cluster N peut-on saturer un systme de chiers FAT16 de 2Gb , - avec +/- 2 exp 30 chiers de 1 byte ? - avec +/- 2 exp 16 chiers de 1 byte ? - avec +/- 30 chiers de 1 byte ? - pourquoi ?
FAT - Questions
- les clusters dune FAT ont tous la mme taille [V-F] - en FAT, il y a perte despace disque par fragmentation interne [V-F] - un rpertoire quelconque en FAT tient sur maximum un cluster [V-F] - la File Allocation Table sert trouver le premier cluster dun chier[V-F]
en prcisant que cest lappel systme open que lon souhaite Informations changes avec lappel systme Open 1. le nom de chier doit tre fourni 2. aprs lappel Systme, il faut pouvoir rcuprer le n dentre dans la table des processus Pourquoi faut-il un ndentre ?
Exercices
- Dtailler le fonctionnement de lappel systme write. - Dtailler le fonctionnement de lappel systme seek.
FAT - abilit
incohrences des incohrences peuvent survenir suite une panne de courant lors dajout ou suppression dun cluster dun chier ajout dun cluster : - le cluster libre pointe vers le clusters suivant du chier ou la n du chier - le cluster qui prcde le nouveau pointe vers le nouveau cluster
FAT - abilit
suppression dun cluster : - le cluster qui prcde celui supprimer pointe vers le clusters suivant - le cluster supprimer est marqu libre
Dans les deux cas, si une panne de courant survient entre les deux mises jour, la FAT sur disque reste dans un tat incohrent
FAT - abilit
exemple dans le cas dajout :
FAT - abilit
Une incohrence peut survenir dans une information redondante - un cluster libre chan ? - un cluster non chan, non libre ? la redondance permet de "rparer" lincohrence
FAT - abilit
la commande chkdsk utilise cette redondance : 1. parcourt la FAT la recherche des clusters chains : ceux qui apartiennent un chier 2. cherche les clusters libres : ceux qui ont un 0 en FAT en thorie un cluster "normal" doit soit tre libre soit tre chan La comparaison entre ces deux rsultats permet disoler des "chaines de clusters perdues" Ces dernires sont rcupres sous forme de chiers nomms FILE0000.CHK, FILE0001.CHK dans le rpertoire racine
FAT - abilit
Cluster dfectueux ? cluster dfectueux dans un chier -> perte dune partie de donnes cluster dfectueux dans la FAT -> le systme de chiers risque dtre fortement compromis -> la copie de la FAT peut tre maintenue pour garantir une plus grande abilit si le cluster dfectueux est au niveau dun chier utilisateur cest moins grave
FAT - conclusions
- (++)FAT systme de chiers simple et connu par plusieurs systmes dexploitation - (-)taille des chiers limite 4Gb - (-)pas de gestion dattributs pour la protection daccs - (-)non adapt aux grandes partitions, ni un environnement multiutilisateur - (-)souffre de la fragmentation des chiers
NB. la fragmentation de chiers est due notamment la manire dallouer les nouveaux blocs aux chiers (en dbut de volume)
FAT - conclusions
Table FAT charge en RAM et mise jour en mme temps en RAM et sur le disque - (-)taille FAT imposante pour grandes partitions et clusters petits - (-)chargement de la FAT en RAM : ralentit le dmarrage du systme
FAT16/32 - conclusions
- (+)FAT32 utilise lespace plus efcacement que FAT16 - (-)FAT32 +lent au chargement car grosse table FAT
Les cls usb ou disques externes actuels sont souvent formats en FAT
FAT - VRAI-FAUX
- Lappel systme open fait des lectures sur le disque - Dtaillez ce que fait lappel systme open