Vous êtes sur la page 1sur 59

Plan du cours

- Introduction - Emergence et volution des systmes dexploitation - Systme de chiers : FAT - NTFS - Ordonnancement

Systmes dexploitation 1re anne p. 1

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

Systmes dexploitation 1re anne p. 2

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)

Systmes dexploitation 1re anne p. 3

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

les clusters ne sont pas aligns sur le dbut de la partition

Systmes dexploitation 1re anne p. 4

FAT - clusters
taille des clusters
taille dun cluster : dnie 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

Systmes dexploitation 1re anne p. 5

FAT - quelles limites ?


certaines versions de windows limitent les clusters 32Kb ...

il est important de distinguer - les limites dues au format - les limites dues lutilisation

-> on parlera plutt des limites dues au format (thoriques)

Systmes dexploitation 1re anne p. 6

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)

Systmes dexploitation 1re anne p. 7

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

des valeurs particulires indiquent la n de chiers

Systmes dexploitation 1re anne p. 8

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

Systmes dexploitation 1re anne p. 9

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 ?

Systmes dexploitation 1re anne p. 10

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

Systmes dexploitation 1re anne p. 11

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 ! !

-> un grand volume FAT ralentit le dmarrage du systme

Systmes dexploitation 1re anne p. 12

FAT - valeurs dfaut


taille partition type de FAT < 2 Gb FAT16 2 Gb - 32 Gb FAT32 > 32 Gb NTFS

Systmes dexploitation 1re anne p. 13

FAT
il existe des restrictions supplmentaires :

- outils mal programms ... - table des partitions dun disque MBR - adressage des secteurs du disque - ...

Systmes dexploitation 1re anne p. 14

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) ?

Systmes dexploitation 1re anne p. 15

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

Systmes dexploitation 1re anne p. 16

FAT - secteur de Boot


le Boot sector et Bios Parameter Block mtadonnes du systme de chiers :
- (3b) instruction de saut au chargeur du systme (plus loin) - ... - (2b) taille dun secteur (512) - (1b) nombre de secteurs par cluster - (2b) taille zone rserve (1-32) - (1b) nombre de FAT (2) - (2b) nombre dentres de 32 bytes dans le rpertoire racine en FAT16 (512, 0 pour FAT32 et 4 bytes ailleurs) - (2b) nombre de secteurs dans le volume FAT (4b pour FAT32) - ... - code du chargeur du systme avec restrictions dusage car les outils nen ont pas toujours tenu compte :-(

Systmes dexploitation 1re anne p. 17

FAT - secteur de Boot


nombre dentres rpertoire racine pour une FAT 16 le nombre dentrs du rpertoire racine est limit : 512 - 1 (utilis pour pour le Volume-id)

infrieur dans le cas dutilisation de noms longs !

Systmes dexploitation 1re anne p. 18

FAT - exemple

- reconstituons entirement A et B partir du numro de leur premier cluster

Systmes dexploitation 1re anne p. 19

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)

Systmes dexploitation 1re anne p. 20

FAT - localiser

Systmes dexploitation 1re anne p. 21

FAT - rpertoires
entre de rpertoire
tout chier/rpertoire est dcrit dans son rpertoire parent (mais est-ce bien vrai ?)

les 32 bytes dune entre de rpertoire en FAT16

Systmes dexploitation 1re anne p. 22

FAT- rpertoires
attributs :
- ARCHIVE - READ_ONLY - HIDDEN - SYSTEM - DIRECTORY - VOLUME_ID - 2 bits 0

Systmes dexploitation 1re anne p. 23

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

Systmes dexploitation 1re anne p. 24

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

Systmes dexploitation 1re anne p. 25

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)

et si on reprsentait 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 prcision !

Systmes dexploitation 1re anne p. 26

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)

Systmes dexploitation 1re anne p. 27

FAT- rpertoires
numro du premier bloc : 2 bytes le premier cluster du chier

pour un chier vide ce premier cluster vaut 0

FAT32 utilise 4 bytes pour ce champ (deux bytes supplmentaires dans la partie rserve)

Systmes dexploitation 1re anne p. 28

FAT- rpertoires
taille du chier : 4 bytes (taille logique) -> le plus grand chier sur une partition FAT : 4Gb

Systmes dexploitation 1re anne p. 29

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

Systmes dexploitation 1re anne p. 30

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)

Systmes dexploitation 1re anne p. 31

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 ?

Systmes dexploitation 1re anne p. 32

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

Systmes dexploitation 1re anne p. 33

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 ?

Systmes dexploitation 1re anne p. 34

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 ?

Systmes dexploitation 1re anne p. 35

FAT - localiser

Systmes dexploitation 1re anne p. 36

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 ?

Systmes dexploitation 1re anne p. 37

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 ?

Systmes dexploitation 1re anne p. 38

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]

Systmes dexploitation 1re anne p. 39

FAT - appels systme


A ce stade, le SE dispose dune description dun Systme de chiers appel FAT Le programmeur systme peut crire les diffrents services qui permettront de manipuler ce FS Ces diffrents services seront crits sous forme dappels systme. Quelques cas . . .

Systmes dexploitation 1re anne p. 40

FAT - appels systme


les appels systme ... les chiers sont lus en plusieurs oprations successives -> stocker localisation et position courante dans une Table des descripteurs de chiers ouverts en RAM - open soccupe de localiser le chier - read - write - seek - close libre lentre de la table - ...

Systmes dexploitation 1re anne p. 41

FAT - appels systme


Appel de lappel systme open A laide de linstruction INT.

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 ?

Systmes dexploitation 1re anne p. 42

FAT - appels systme


Pour ouvrir le chier \windows\desktop\image.jpg, le programme doit : - Complter le registre 1 avec le nom de chier - Complter le registre 2 avec le nde lappel systme correspondant open - INT - ... - Lorsque le processus est dbloqu et nouvellement lu : lire le nde lentre du chier dans un registre 3 rcupr de la table des processus.

Systmes dexploitation 1re anne p. 43

FAT - appels systme


Appel systme open 1. sauvegarder le contexte du processus appelant. 2. parcourir le F.S. pour trouver le ndu premier cluster du chier. 3. ouvrir une entre dans la table en mmoire qui mmorise nde premier cluster et position courante dans ce chier (0 au dpart) 4. mmoriser ce ndentre dans la table des processus (registres) pourque le processus puisse en disposer 5. effectuer un branchement lordonnanceur. Que pensez-vous du point 2 ?

Systmes dexploitation 1re anne p. 44

FAT - appels systme


Appel de lappel systme read laide de linstruction INT cet appel utilise les informations suivantes : - nde chier - adresse o placer le rsultat de la lecture - nombre de bytes lire lappel systme fournit galement une information : - Le nombre de bytes rellement lus A quoi peut servir ce nombre ?

Systmes dexploitation 1re anne p. 45

FAT - appels systme


Pour lire 271 bytes du chier n7, le programme doit : - Complter le registre 1 avec le numro du chier, soit 7. - Complter le registre 2 avec ladresse de la mmoire o les 271 bytes seront crits, soit un nom de variable. - Complter le registre 3 avec le nombre de bytes lire, soit 271. - INT - ... - Une fois rlu : lire le nombre de bytes rellement lus dans un registre 4.

Systmes dexploitation 1re anne p. 46

FAT - appels systme


Appel systme read read va donc : - sauvegarder le contexte du processus appelant. - commander le priphriue - demander au D.M.A. de transfrer du disque vers la mmoire (do ? o ?, combien ?). - mmoriser qui est le processus qui demande le transfert D.M.A. - mettre ltat du processu appelant bloqu. - effectuer un branchement lordonnanceur.

Systmes dexploitation 1re anne p. 47

FAT - INT externe D.M.A.


- sauvegarder le contexte du processus en cours(->prt). - Debloquer le processus qui avait demand le transfert D.M.A. - inscrire dans la table des chiers ouverts en mmoire la nouvelle position courante dans ce chier. - effectuer un branchement lordonnanceur.

Systmes dexploitation 1re anne p. 48

Exercices
- Dtailler le fonctionnement de lappel systme write. - Dtailler le fonctionnement de lappel systme seek.

Systmes dexploitation 1re anne p. 49

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

Systmes dexploitation 1re anne p. 50

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

Systmes dexploitation 1re anne p. 51

FAT - abilit
exemple dans le cas dajout :

Systmes dexploitation 1re anne p. 52

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

o est la redondance dans ce cas ?

Systmes dexploitation 1re anne p. 53

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

Systmes dexploitation 1re anne p. 54

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

Systmes dexploitation 1re anne p. 55

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)

Systmes dexploitation 1re anne p. 56

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

Systmes dexploitation 1re anne p. 57

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

Systmes dexploitation 1re anne p. 58

FAT - VRAI-FAUX
- Lappel systme open fait des lectures sur le disque - Dtaillez ce que fait lappel systme open

Systmes dexploitation 1re anne p. 59