From 5d2a71cdf4c20241deb6acda9a514e03745054c6 Mon Sep 17 00:00:00 2001 From: Guillaume Chanel <Guillaume.Chanel@unige.ch> Date: Wed, 4 Sep 2024 10:41:45 +0200 Subject: [PATCH] Updates after first reading --- 9.filesystems/01_Systemes_fichiers_intro.md | 24 +++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/9.filesystems/01_Systemes_fichiers_intro.md b/9.filesystems/01_Systemes_fichiers_intro.md index 33d535c..847679f 100644 --- a/9.filesystems/01_Systemes_fichiers_intro.md +++ b/9.filesystems/01_Systemes_fichiers_intro.md @@ -6,10 +6,10 @@ ## Historique <div class="cols"> -<small> +<div style="font-size: 0.7em"> - Les systèmes de fichiers ont été conçu pour accéder, avec une interface simple, à des périphériques de stockage de masse (persistents) -- Premiers périphériques de stockage de masse étaient basé sur des disques magnétiques appelés *Hard Disk Drive* +- Les premiers périphériques de stockage de masse étaient basés sur des disques magnétiques appelés *Hard Disk Drive* - La plus petite unité de lecture/écriture adressable est le secteur - Adressable par le triplet CHS :\ { Cylinder, Head, Sector } @@ -21,7 +21,7 @@ D. Cylindre = coupe transversale des plateaux \ E. Pistes = groupe de secteurs contigüs \ F. Secteur angulaire -</small> +</div> <div>  <!-- .element width="90%" --> @@ -69,12 +69,16 @@ Premier disque dur conçu en 1956 pour le super-computer IBM 305 Ramac - la plupart des périphiques de stockage à base de flash sont similaires (clés USB, cartes SD, etc.) +Notes: +SSD -> solid state drive +Les disque dure SSD utilisent des "floating gates transistors", transistor à grille flottante, qui matiennent l'état. On parle de cellule mémoire. + -- ## Structure d'un disque - Un disque est divisé en unités de taille identique appelées **secteurs** -- La taille typique d'un secteur est 512 bytes, mais il existe des secteurs plus grands (2KB, 4KB, etc.) +- La taille d'un secteur dépend du support: **512 bytes**, 2KB, **4KB**, etc. - Un secteur est la plus petite unité physique pouvant être lue ou écrite - La lecture ou l'écriture d'un secteur est une opération **atomique** @@ -85,18 +89,19 @@ Premier disque dur conçu en 1956 pour le super-computer IBM 305 Ramac ## UNIX et blocs -- Dans un OS de type UNIX, on parle de blocs plutôt que de secteurs +- Dans un OS de type UNIX, on parle de blocs plutôt<sup>1</sup> que de secteurs - **But : s'abstraire du type de périphérique** - Tout périphérique dont on peut lire/écrire les données par unités de 512, 1024, etc. bytes est géré par le module noyau de gestion de lecture/écriture par blocs +- La taille d'un bloc est potentiellement plus grande que la taille d'un secteur - Permet d'être indépendant du type de périphérique $\rightarrow$ généricité +<small>1: Microsoft appelle un bloc un *cluster*</small> -- ## Secteurs, blocs et clusters -- L'unité d'allocation de base des systèmes de fichiers n'est pas le secteur, mais une unité plus grande (ou égale) appelée **bloc**<sup>1</sup> - **Un bloc est une collection contiguë de secteurs** - Un système de fichiers (FS) divise l'espace disque en blocs de taille égale - Généralement, un bloc fait entre 1KB et 8KB @@ -105,9 +110,6 @@ gestion de lecture/écriture par blocs <!-- .element width="80%" --> -<small>1: Microsoft appelle un bloc un *cluster*</small> - - -- ## Interface périphérique bloc @@ -143,9 +145,9 @@ Exemple : périphérique de 10MB (1024 * 1024 * 10 bytes), taille de bloc de 102 - Quelle est l'intervalle des offsets des bytes du bloc numéro 17 ? \ `$[1024*17,1024*(17+1)-1] = [17408,18431]$` <!-- .element: class="fragment" data-fragment-index="0" --> - Dans quel bloc se trouve le byte localisé à l'offset 7000 du périphérique ? \ - `$7000/1024 = 6.8359375 = 6$` <!-- .element: class="fragment" data-fragment-index="1" --> + `$\lfloor{7000/1024}\rfloor = \lfloor{6.8359375}\rfloor = 6$` <!-- .element: class="fragment" data-fragment-index="1" --> - À quel offset du bloc est localisé le byte se trouvant à l'offset 7000 du périphérique ? \ - `$7000 \% 1024 = 856$` <!-- .element: class="fragment" data-fragment-index="2" --> + `$7000 - 6 * 1024 = 856 = 7000 \% 1024$` <!-- .element: class="fragment" data-fragment-index="2" --> <!-- .element width="70%" --> -- GitLab