6.2.2 Organisation des données et gestion des disques
Parmi les facteurs d'organisation, certains dépendent du jeu d'instructions, d'autres du système d'exploitation. Dans la suite, on fait référence au jeu d'instructions x86 et aux systèmes Unix, Linux et de Microsoft. La matière n'est pas parfaitement ordonnée, des notions comme le secteur seront utilisées avant que d'être expliquées. Le lecteur qui n'est tout de même pas un néophyte se reportera en tant que de besoin quelques alinéas au delà de sa lecture.
6.2.2.1 Des zones réservées
Un disque préparé pour un système x86 contient un premier secteur de 512 octets nommé enregistrement maître. Il est lu et écrit en mémoire par un programme nommé chargeur, «bootstrap» littéralement tire-botte, du BIOS résidant en mémoire morte ROM ou EPROM de l'ordinateur. L'enregistrement maître contient :
La table des partitions contient la description du découpage du disque physique en un ou plus quatre disques logiques. Ce découpage donne les possibilités suivantes :
![]() |
|
|
|
![]() |
Le lecteur familier avec le jeu d'instructions x86 comprendra aisément le fonctionnement du programme. Un autre lecteur peut se contenter des commentaires qui décrivent le travail fait à l'exécution.
L'enregistrement maîtren de 512 octets, est placé en cylindre 0, tête 0, secteur 0. Il est écit lors du formatage du disque et peut être rechargé par les systèmes d'exploitation, commade DOS Fdisk/mbr par exemple.
Au chargement, le BIOS résidant
en mémoire ROM, fait le test de mise sous tension, charge ce secteur
en mémoire à l'adresse 0000:7C00 et lance son exécution
par chargement du compteur ordinal.
Curieusement l'exécution
commence par recopier les 512 octets dansz une zone commençant en
0000:0600.
7C00 FA
CLI
7C01 33C0
XOR AX,AX ; mise à zéro du registre AX
7C03 8ED0
MOV SS,AX ; mise à zéro du registre SS
par copie du registre AX
7C05 BC007C
MOV SP,7C00 ; haut de la pile en 0000:7C00
7C08 8BF4
MOV SI,SP ; copie à partir d'ici...
7C0A 50
PUSH AX ; empile [AX]
7C0B 07
POP ES ; dépile dans ES
7C0C 50
PUSH AX ; empile [AX]
7C0D 1F
POP DS ; dépile en DS
7C0E FB
STI
7C0F FC
CLD
7C10 BF0006
MOV DI,0600 ; ...vers 0000:0600...
7C13 B90001
MOV CX,0100 ; de 256 mots de 16 bits soit 512 octets.
7C16 F2
REPNZ
7C17 A5
MOVSW
7C18 EA1D060000
JMP 0000:061D
À partir d'ici, l'exécution se poursuit aux nouvelles adresses commençant à 0000:0600.
Le programme va analyser le premier
octet de chaque ligne de la table.
Cet octet vaut 80 pour la partition
active, 00 pour les autres.
; recherche d'une adresse de partition chargeable
061D BEBE07
MOV SI,07BE ; met dans SI l'adresse du premier octet de la première
ligne
0620 B304
MOV BL,04
; pour 4 entrées au plus
0622 803C80
CMP BYTE PTR [SI],80 ; est ce la partition à charger ?
0625 740E
JZ 0635
; si oui aller à 0635
0627 803C00
CMP BYTE PTR [SI],00 ; est ce une partition non chargeable
062A 751C
JNZ 0648
; si non écriture du message table invalide
062C 83C610
ADD SI,+10
; si oui, analyse de l'entrée suivante
062F FECB
DEC BL
; mise à jour du compteur d'entrées
0631 75EF
JNZ 0622
; les 4 lignes ont elles été analysées ?
0633 CD18
INT 18
; si oui aucune des partitions n'est chargeable.
; si une partition chargeable
est trouvée, poursuite de l'analyse de la table pour vérifier
; que cette partition est la
seule
0635 8B14
MOV DX,[SI] ; sauvegarde en DX des deux premiers octets de l'entrée
active
0637 8B4C02
MOV CX,[SI+02] ; sauvegarde en CX des deux octets suivants
063A 8BEE
MOV BP,SI ; sauvegarde en BP des deux premiers octets de l'entrée
active
063C 83C610
ADD SI,+10 ; chargement de l'adresse de l'entrée suivante
063F FECB
DEC BL ; mise à jour du numéro
d'entrée
0641 741A
JZ 065D ; si c'est la dernière aller à
065D adresse du chargeur
0643 803C00
CMP BYTE PTR [SI],00 ; est-elle non chargeable ?
0646 74F4
JZ 063C ; si oui, passer à la suivante.
; La table n'est pas valide,
écriture d'un message d'erreur pointé par SI sous la forme
d'une
; chaîne ASCII terminée
par 00 et entrée en boucle infinie
0648 BE8B06
MOV SI,068B ; chargement de l'adresse du message «Invalid partition
table»
064B AC
LODSB ; charge dans AL l'octet pointé
par SI et incrémente SI
064C 3C00
CMP AL,00 ; est-ce la fin du message ?
064E 740B
JZ 065B ; si oui aller à 065B
0650 56
PUSH SI ; sauvegarder SI le temps que l'interruption
10 s'exécute
0651 BB0700
MOV BX,0007 ; paramètre de l'interruption 10
0654 B40E
MOV AH,0E ; paramètre de l'interruption 10
0656 CD10
INT 10 ; écriture à l'écran
du caractère dans AL
0658 5E
POP SI ; rechargement de SI
0659 EBF0
JMP 064B ; retour à 064B
065B EBFE
JMP 065B ; boucle infinie d'attente de rechargement
; La table est valide, une partition
à charger a été détectée.
; Les deux premiers mots de
la partition contiennent les numéros de lecteur/tête
; et de cylindre/secteur du
premier secteur de la partition.
; Ces données ont été
mises dans BX en 0635 et dans CX en 0637.
065D BF0500
MOV DI,0005 ; pour essayer 5 fois
0660 BB007C
MOV BX,7C00 ; chargement de l'adresse où l'amorce sera écrite
0663 B80102
MOV AX,0201 ; code de lecture d'un secteur pour l'interruption bios n°
13
0666 57
PUSH DI ; sauvegarde de DI pendant l'exécution
de l'interruption
0667 CD13
INT 13 ; lancement de l'interruption 13
0669 5F
POP DI ; restitution de DI
066A 730C
JNB 0678 ; saut si l'interruption s'est bien exécutée
066C 33C0
XOR AX,AX ; mise à zéro de AX
066E CD13
INT 13 ; ...relance
0670 4F
DEC DI ; mise à jour du compteur d'essais
0671 75ED
JNZ 0660 ; lancement du nouvel essai
0673 BEA306
MOV SI,06A3 ; choix du message «Error loading operating system»
0676 EBD3
JMP 064B ; lancement de l'écriture du message
à l'écran
; Le secteur d'amorce a été
mis en mémoire par l'interruption 13 en 0667,
; vérification de la
validité de la totalité des opérations en vérifiant
la signature AA55.
0678 BEC206
MOV SI,06C2
; chargement de l'adresse du message «Missing operating ; system»
067B BFFE7D
MOV DI,07FE
; chargement du dernier mot du secteur qui contient la signature
067E 813D55AA CMP
WORD PTR [DI],AA55 ; vérification de la signature
0682 75C7
JNZ 064B
; la signature est invalide, labcer l'émission du message
0684 8BF5
MOV SI,BP
; SI = BP = déplacement de l'entrée de la partition active
0686 EA007C0000 JMP 0000:7C00
; saut à l'adresse de début du secteur d'amorce
; les messages d'eereur
0680
49 6E 76 61 6C Inval
0690 69 64 20 70 61 72 74 69-74
69 6F 6E 20 74 61 62 id partition tab
06A0 6C 65 00 45 72 72 6F 72-20
6C 6F 61 64 69 6E 67 le Error loading
06B0 20 6F 70 65 72 61 74 69-6E
67 20 73 79 73 74 65 operating syste
06C0 6D 00 4D 69 73 73 69 6E-67
20 6F 70 65 72 61 74 m Missing operat
06D0 69 6E 67 20 73 79 73 74-65
6D 00
ing system
; exemple de table de partitions valide close par la signature AA55 :
07B0 80 01 ..
07C0 01 00 06 3F 3F C4 3F 00-00
00 81 1E 0C 00 00 00 ...??.?.........
07D0 01 C5 05 3F 7F 47 C0 1E-0C
00 40 0F 08 00 00 00 ...?.G....@.....
07E0 41 48 82 3F 7F 53 00 2E-14
00 00 BD 00 00 00 00 AH.?.S..........
07F0 41 54 83 3F BF 0F 00 EB-14
00 00 91 0B 00 55 AA AT.?..........U.
En résumé, ce tout premier secteur a la structure suivante :
Déplacement | Description | Taille |
000h | Code exécutable | |
1BEh | Entrée de la 1ère partition | 16 octets |
1CEh | Entrée de la 2ème partition | 16 octets |
1DEh | Entrée de la 3ème partition | 16 octets |
1EEh | Entrée de la 4ème partition | 16 octets |
1FEh | Signature AA55h | 2 octets |
Un enregistrement de partition
a la structure suivante :
Déplacement | Description | Taille |
00h | État courant 00h ou 80h | 1 octet |
01h | n° de tête du début de la partition | 1 octet |
02h | n° de cylindre et de secteur du début de la partition, dans un codage assez compliqué | 2 octets |
04h | type de la partition, une liste existe | 1 octet |
05h | n° de tête de fin de la partition | 1 octet |
06h | n° de cylindre et de secteur de fin de la partition, dans un codage assez compliqué | 2 octets |
08h | nombre
de secteurs entre le chargeur maître
et le premier secteur de la partition |
4 octets |
0Ch | nombre de secteurs dans la partition | 4 octets |
Dans la suite, on ne distinguera pas un disque physique d'un disque logique.
On donne ici la structure du début d'une partition de type FAT32 de Microsoft.
Le début est très
semblable à celui de l'enregistrement maître d'un disque.
Un secteur contient des données et
parfois un programme. S'il y
a un programme, il est exécuté en absolu, au moins dans son
début. Il fait le chargement en mémoire centrale du système
d'exploitation ou au moins de son début et lui passe la main. S'il
n'y a pas de programme, la partition n'est pas chargeable. Les données
sont des paramètres pour le système d'exploitation. Ce secteur
est suivi (immédiatement après ou non) par un secteur relatif
au système de fichiers.
Aperçu sur les données
du premier secteur d'une partition relative à système de
Microsoft.
Déplacement | Description | Taille en octets |
00h | saut à la zone de code + non opération |
|
03h | nom OEM du système installé |
|
0Bh | nombre d'octets par secteur |
|
0Dh | nombre de secteurs par granule |
|
0Eh | secteurs réservés |
|
10h | nombre de copies de la FAT |
|
11h | nombre maximum d'entrées dans le répertoire principal |
|
13h | nombre de secteurs pour les anciens systèmes (moins de 32Mo) |
|
15h | descripteur du médium F8h pour un disque fixe |
|
16h | nombre de secteurs par FAT (anciens systèmes) |
|
18h | nombre de secteurs par piste |
|
1Ah | nombre de têtes |
|
1Ch | nombre de secteurs cachés dans la partition |
|
20H | nombre de secteurs dans la partition |
|
24h | nombre de secteurs par FAT |
|
28h | drapeaux * |
|
2Ah | version de la FAT32, majeure ou mineure |
|
2Ch | numéro** du granule de début du répertoire racine |
|
30h | numéro** du secteur d'information sur le système de fichiers |
|
32h | numéro** du secteur de copie de réserve du secteur d'amorce |
|
34h | réservé |
|
40h | numéro logique de disque de la partition |
|
41h | inutilisé |
|
42h | signature : 29h |
|
43h | numéro de série de la partition |
|
47h | nom de volume de la partition |
|
52h | nom de FAT (FAT32) |
|
5Ah | code exécutable |
|
1FEh | signature : AA55h mentionnée plus haut |
|
Les zones utiles du disque, éventuellement logique, ainsi lancé sont définies par le système d'exploitation. Elles valent pour la totalité du disque logique, elles ont :
L'en-tête, propre à chaque système d'exploitation contient :
Exemple de structure physique d'une piste, système de Microsoft, codage MFM (modulation de fréquence modifiée), 17 secteurs par piste, repérage CHS cylindre-tête-secteur :La partie utile de la piste a un repère unique nommé index constitué de la fin de la piste et de son début :
Fonction | Nombre d'octets | Contenu
s'il est fixe |
Signification |
Début de piste postindex |
16
|
4Eh | attente |
Début de secteur |
13
|
00h | présynchronisation |
En-tête | 1 | A1h | synchronisation de l'en-tête |
../.. | 1 | FEh | début d'en-tête |
../.. | 2 | numéro de cylindre, (au plus 65536) | |
../.. | 1 | numéro de tête, (au plus 256) | |
../.. | 1 | numéro de secteur | |
../.. | 2 | CRC et fin d'en-tête | |
Séparateur | 3 | 00h | séparateur d'en-tête et de données |
Début des Données | 13 | 00h | présynchronisation |
../.. | 1 | A1h | synchronisation |
../.. | 1 | F8h | début du corps des données |
Données | 512 | données | |
../.. | 2 | CRC et fin du corps des données | |
Séparateur | 3 | 00h | récrits à chaque écriture |
Séparateur | 15 | 00h | espace entre secteurs |
Fin de piste préindex | 693 | 4Eh | fin de piste |
Un secteur occupe 571 octets
pour 512 octets utiles,
Une piste de 17 secteurs contient
10416
octets dont 8704 octets utiles.
Les octets de présynchronisation ont un rôle de remplissage. Par la rotation, ils fabriquent un délai. Ce délai est utilisé par le contrôleur pour la mise en état actif de ses circuits et la synchronisation de l'horloge de lecture par rapport à la vitesse de défilement de la piste (la vitesse de rotation est supposée fixe pendant le défilement d'un secteur).
La taille du secteur est un compromis entre :
6.2.2.2.2 La structure de machine symbolique ou structure englobante. Dans tous les systèmes on trouve des outils de repérage et de gestion intermédiaires entre les secteurs ou structure granulaire et les fichiers qui sont toujours considérés comme des suites de bits ou d'octets (on dit parfois des flots). Ces outils ont partout le même nom système de fichiers (file system). Il en est ici comme dans une mémoire segmentée gérée par pagination. Les segments ont des contenus homogènes, homologues des fichiers. La gestion des pages les applique sur la mémoire réelle ou virtuelle.
![]() |
l'homologue de la page de mémoire et aussi de l'incrément minimum de taille du segment de mémoire |
![]() |
![]() |
|
![]() |
On trouvera donc systématiquement, formant un enregistrement, souvent nommé entrée du répertoire :
.en liste unique, elle n'est
plus utilisée;
.en listes multiples selon les
utilisateurs (MVS d'IBM);
.en arbre, c'est la cas le plus
fréquent (les Unix, MSDOS, Windows, MacOs, etc.).
![]() |
l'homologue du descripteur du segment de mémoire |
![]() |
Exemple : L'identificateur dans les systèmes de Microsoft.
Un répertoire est un fichier constitué d'entrées de 32 octets chacune. Il sert à repérer des fichiers ou un autre répertoire. Au départ, un fichier était nommé à l'aide de 8+3 caractères. Les 32 octets contenaient le nom du fichier (11 octets), ses attributs ("D", "R", "H", "S", "A", sur 1 octet), sa taille en octets sur 4 octets, donc 32 bits, limitant la taille à 232 octets), sa date de création (2 octets), le n° du 1er granule sur 4 octets, ...
Des «noms longs» jusqu'à 255 caractères, utilisables à partir de Windows 95, ont nécessité une refonte des entrées compatible avec l'ancien système (sauf pour Windows NT qui utilise un autre système).
La structure d'une entrée de répertoire avant Windows 95 était :
Pour les noms longs, la structure est très différente, ils ont :
Zône Taille
en octetsRemarques Nom de fichier 8 Extension 3 Attributs 1 N° du bit Signification 0 lecture seule 1 fichier caché 2 fichier système 3 nom de volume 4 sous-répertoire 5 archive 6 réservé 7 réservé Reservé 10 Heure 2 Date 2 1er granule 2 Taille 4 Total 32
Une entrée de nom long contient donc au plus 5+6+2 = 13 caractères utiles.Les attributs du fichier sont portés par l'entrée de nom court. L'attribut des entrées de stockage du nom long sont toutes du type 4 derniers bits à 1, équivalent de volume, système, caché, lecture seule, soit 0x0F.
Données
nom longTaille
(octets)Remarques N° d'entrée 1 Nom de fichier 10 UNICODE=5 caractères Attributs 1 toujours 0x0F Checksum 2 Suite du nom 12 UNICODE=6 caractères Réservé 2 Suite du nom 4 UNICODE=2 caractères Total 32
ATTENTION, il ne faut surtout pas utiliser un outil de tri de noms de fichiers dans un répertoire comme l'ancien DS pour «directory sort» des utilitaires de Norton. Un tel tri rendra le répertoire inutilisable.
Enfin, alors que le nom court est en code ANSI, le nom long est codé en UNICODE à 16 bits (2 octets par caractère).
Le 1er octet d'une entrée de nom long contient son n° d'ordre, 0x01, 0x02, ..., celui de la dernière entrée a le bit 6 forcé à 1.
Application au nom de fichier : «Une nouvelle organisation de la société sera.txt»
48 caractères au total, le point et les espaces compris. Il faudra 4 entrées de nom long, 52=4x13 étant l'entier multiple de 13 immédiatement supérieur à 48.
Windows a déterminé comme nom court : "UNENOU~1.TXT"
Dans le répertoire contenant ce fichier, on trouve ceci :
00000100 44 73 00 65 00 72 00 61 00 2E 00 0F 00 8C 74 00 Ds.e.r.a......t. 00000110 78 00 74 00 00 00 00 00 00 00 00 00 FF FF FF FF .x.t..............
00000120 03 64 00 65 00 20 00 6C 00 61 00 0F 00 8C 73 00 .d.e. .l.a....s. 00000130 6F 00 63 00 69 00 82 00 74 00 00 00 82 00 20 00 o.c.i.é.t...é. .
00000140 02 6F 00 72 00 67 00 61 00 6E 00 0F 00 8C 69 00 .o.r.g.a.n....i. 00000150 73 00 61 00 74 00 69 00 6F 00 00 00 6E 00 20 00 s.a.t.i.o...n. .
00000160 01 55 00 6E 00 65 00 20 00 6E 00 0F 00 8C 6F 00 .U.n.e. .n....o. 00000170 75 00 76 00 65 00 6C 00 6C 00 00 00 65 00 20 00 u.v.e.l.l...e. .
00000180 55 4E 45 4E 4F 55 7E 21 54 58 54 20 00 27 25 8C UNENOU~1TXT .'%.
00000190 26 2A 26 2A 00 00 45 8C 26 2A FC 0A 33 00 00 00 &*&*..E.&*..3...
Il y a 4 entrées
pour le nom long et une entrée pour le nom court.
En 0x0100, la 4ème
et dernière entrée de nom long :
puisque dernière
elle est repérée par le 1er octet égal à 0x40
auquel on ajoute 4 pour quatrième
étant une entrée
de nom long, son attribut en 0x10B vaut 0x0F
texte en unicode «sera.txt»
En 0x0120, la 3ème
entrée de nom long :
est repérée
par le 1er octet égal à 0x03 pour troisième
étant une entrée
de nom long, son attribut en 0x10B vaut 0x0F
texte en unicode «de
la société »
En 0x0140, la 2ème
entrée de nom long :
est repérée
par le 1er octet égal à 0x02 pour deuxième
étant une entrée
de nom long, son attribut en 0x10B vaut 0x0F
texte en unicode «organisation
»
En 0x0160, la 1ère
entrée de nom long :
est repérée
par le 1er octet égal à 0x01 pour première
étant une entrée
de nom long, son attribut en 0x10B vaut 0x0F
texte en unicode "Une
nouvelle "
En 0x0180, l'entrée
principale du nom court :
contient le texte ANSI
«UNENOU~1.TXT»
nous avons mis son attribut
à archive 0x20
le point séparateur
n'est pas écrit dans un nom court.
Belle complexité !
Le second groupe lie les fichiers aux granules ou aux secteurs. Il s'agit de trouver dans l'ordre qui reconstitue la suite de bits ou flot, tous les granules d'un même fichier. Les techniques sont :
On présente ci-dessous deux grands types de structures symboliques, celui de MSDOS et de ses successeurs et celui d'Unix. Ce choix couvre une très grande partie de l'existant.
Les granules du disque sont repérés dans une table nommée FAT (file allocation table) expression toujours traduite de façon fautive parCette zone contient, exemple
pris dans la FAT16 :
- soit une parmi trois valeurs
particulières pour indiquer que le granule :
.est libre, 0000H,- soit le numéro du granule suivant du même fichier.
.contient un ou plusieurs secteurs inutilisables, FFF7H,
.est le dernier d'un fichier, FFF8H ou FFFFH;
Si le granule était nommé page, la table d'allocation serait dite table des pages.
La FAT12, zone de 12 bits, repère au plus 4092 granules, soit pour des granules de 4 secteurs ou 2 ko, 8 Mo au plus. Ce format est utilisé pour les disquettes. Il était le seul format du très ancien DOS1.
La FAT16, zone de 16 bits,
repère au plus 65531 granules, soit :
sans granules, 32 Mo au plus;
pour des granules de 4 secteurs,
2 ko, 128 Mo au plus;
pour des granules de 8 secteurs,
4 ko, 256 Mo au plus;
pour des granules de 16 secteurs,
8 ko, 1 Go au plus;
pour des granules de 32 secteurs,
16 ko, 2 Go au plus.
La FAT32, zone de 32 bits,
repère au plus 4 milliards de granules.
La table ci-dessous fait la
comparaison entre les volumes de disques et la taille des granules par
défaut dans Windows.
Taille du disque | Taille du granule FAT16 | Taille du granule FAT32 | Taille du granule NTFS |
7Mo – 16Mo | 2Ko | Non géré | 512 bytes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![]() |
l'homologue de la table des pages de mémoire |
![]() |
Remarque : L'efficacité demande que la FAT réside en mémoire.
Les répertoires organisés en arborescence, contiennent les enregistrements relatifs aux fichiers. Ils sont une description minimale du fichier accompagnée d'informations de service :
.nom du fichier;
.longueur en octets;
.numéro du premier granule
utilisé, (les suivants sont trouvés dans la table FAT);
.date et heure de dernière
mise à jour;
.attributs : lecture ou lecture-écriture,
visible ou caché, archive ou non, etc..
.éventuellement une extension
du nom.
On peut très utilement remarquer ici que :
Un disque comme la mémoire centrale ou tout autre support a une structure propre, celle de la machine physique. Il est destiné à recevoir des contenus dont la structure est définie dans la machine symbolique.
Il faut donc traiter séparément :
.la gestion des éléments
physiques du disque, secteurs ou granules;
.la gestion des contenus ou
fichiers ou programmes;
.l'organisation en secteurs
de longueur fixe, indépendants des contenus est proche de la pagination
d'une
mémoire,;structure
englobante des mots de mémoire;
.l'organisation des contenus,
fichiers de longueur quelconque et dont le contenu est homogène
et toujours supposé
parfaitement ordonné,
est proche de la segmentation de la mémoire.
Le ou les répertoires contiennent des entrées, enregistrements de taille fixe contenant les renseignements nécessaires à la gestion d'un fichier. La correspondance avec les segments en mémoire centrale est forte. Tout d'abord le fichier est une suite de données non structurées commençant à 0. L'entrée du répertoire est attachée à un fichier comme le descripteur est attaché de segment.
.le super bloc qui contient le
nombre de blocs, le nombre de nœuds d'index ou i-nodes (i pour index, node
pour nœud), une table de i-nodes libres et le début de la structure
de chaînage des blocs libres;
.le fichier des i-nodes;
.le fichier de données,
fichier régulier, répertoire, etc.
Un fichier de données est décrit par :
.l'identificateur du propriétaire;
.le type du fichier, régulier,
répertoire, caractères, spécial, tube;
.un jeu de 9 bits (rwx)p(rwx)g(rwx)a
de droits d'accès en lecture (r), écriture
(w), exécution (x), respectivement
du propriétaire p, du groupe g,
des autres a;
.un jeu de dernières dates
d'accès au fichier;
.la dernière date de
modification de l'i-node;
.un compteur de références
qui compte le nombre de fois où ce fichier est lié à
un nom symbolique dans un répertoire;
.la taille;
.la table du contenu ou table
d'index ou nœud, qui donne son nom «index node» en abrégé
i-node à la totalité du descripteur.
Le fichier est manipulé en utilisant son numéro d'i-node et non pas le nom symbolique donné par l'utilisateur. La correspondance est faite dans un tableau qui a le rôle de répertoire. Il contient la suite de triplets :
(taille de l'entrée, n° d'i-node, nom symbolique relatif)
Le vrai repère est le numéro d'i-node, le nom symbolique est attaché à un seul i-node mais le même i-node peut avoir plusieurs noms symboliques qui ne sont que des noms externes.
Un système de fichiers est un disque virtuel créé par le responsable du système. Un disque peut être partitionné en plusieurs systèmes. Un système de fichiers peut être réparti sur plusieurs disques (pas toujours). L'utilisateur ne voit donc que ces disques virtuels.
Le super bloc contient des informations sur l'espace utilisé dans le disque, la liste des i-nodes utilisés, noms internes des fichiers sous la forme d'entiers et des informations sur les fichiers réguliers.
À chaque i-node correspond une table de granules et, si besoin est, une suite de tables dont l'accès est fait par adressage indirect (pointeur).
6.2.3 Résumé des caractéristiques des supports de mémoire (supports spatiaux)
O() est mis pour «de l'ordre de» et UGM pour unité de gestion de la mémoire.
Type/propriétés | Registre | Cache L1 | cache L2 | Mémoire
«centrale» |
Cache
du disque |
Disque |
Emplacement | interne au
processeur |
interne au processeur | entre processeur
et mémoire |
contrôleur | ||
Technique | bascules | SRAM | SRAM | DRAM | DRAM | magnétique |
Capacité | O(octet) | O(10 ko) | O(1 Mo) | O(10 Mo) | O(Mo) | O(Go) |
Taille du granule | bit/octet/mot | O(10 o) | O(100 o) | O( ko) | O(10ko) | O(10 ko) |
Temps d'accès | O(ns) | ~5ns | ~25 ns | ~100 ns | ~200 ns | O(ms) |
Débit | O(Go/s) | O(Go/s) | O(Go/s) | O(100) Mo/s | O(100 Mo/s) | O(1 Mo/s) |
Gestionnaire | programme | matériel | matériel | UGM/système | matériel | système |
Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 6
Mémoires de masse
Année 2002-2003