Skip to content
Snippets Groups Projects
Commit ec93b1fb authored by Guillaume Chanel's avatar Guillaume Chanel
Browse files

WIP: advancing second part of filesystems

parent 5f71a8de
Branches
No related tags found
No related merge requests found
...@@ -237,42 +237,49 @@ Métriques principales: ...@@ -237,42 +237,49 @@ Métriques principales:
<div style="font-size:0.8em"> <div style="font-size:0.8em">
Soit le FS de type FAT suivant : Soit le FS de type FAT suivant : <!-- .element: style="text-align:left;margin:0px" -->
- Le FS comporte 1'000 blocs de données - Le FS comporte 1'000 blocs de données
- Taille des blocs de données : 4 KB - Taille des blocs de données : 4 KB
- Chaque entrée dans la FAT est codée sur 16 bits - Chaque entrée dans la FAT est codée sur 16 bits (une valeur est réservée pour représenter la EOC - *End Of Chain*)
- une valeur est réservée pour représenter la EOC (*End Of Chain*)
</div> </div>
**Questions** **Questions**
1. Quelle est la taille de la FAT en bytes pour ce FS ? \ 1. Quelle est la taille de la FAT en bytes pour ce FS ?
`$1000*(16 bits) = 2000$` bytes <!-- .element: class="fragment" data-fragment-index="0" --> `$1000*(16 bits) = 2000$ bytes` <!-- .element: class="fragment" data-fragment-index="1" -->
1. Quelle est la taille de fichier maximum supportée pour ce FS (en bytes, KB et MB) ? \ 1. Quelle est la taille de fichier maximum supportée pour ce FS (en bytes, KB et MB) ? \
`$1000*4096 = 4096000$` bytes, `$4000$` KB, `$3.9`$ MB <!-- .element: class="fragment" data-fragment-index="0" --> `$1000*4096 = 4096000$ bytes, $4000$ KB, $3.9$ MB` <!-- .element: class="fragment" data-fragment-index="2" -->
1. Combien de blocs de données cette FAT pourrait-elle gérer au maximum théoriquement ? \ 1. Combien de blocs de données cette FAT pourrait-elle gérer au maximum théoriquement ? \
`$(2^{16})-1$ = 65535` <!-- .element: class="fragment" data-fragment-index="0" --> `$(2^{16})-1 = 65535$ blocs` <!-- .element: class="fragment" data-fragment-index="3" -->
-- --
## 2.b. Allocation par FAT : synthèse ## 2.b. Allocation par FAT : synthèse
- \textbf{\textcolor{mygreen}{Avantages}} <fieldset class="OK">
- relativement facile à implémenter <legend>Avantages</legend>
- les fichiers peuvent facilement grandir (tant qu'il y a de l'espace dans la FAT)
- accès aléatoire rapide
- pas de fragmentation externe
- \textbf{\textcolor{myred}{Inconvénients}} - relativement facile à implémenter
- accès séquentiel lent si les blocs ne sont pas contigus (HDD uniquement) - les fichiers peuvent facilement grandir (tant qu'il y a de l'espace dans la FAT)
- *overhead* important pour le stockage de la FAT (disque et RAM), en particulier avec un grand nombre de clusters - accès aléatoire rapide
- la FAT doit être chargée en RAM (sinon performances catastrophiques) - pas de fragmentation externe
- fragmentation interne lorsque taille fichier < taille bloc
</fieldset>
<p></p>
<fieldset class="warning fragment">
<legend>Inconvénients</legend>
- accès séquentiel lent si les blocs ne sont pas contigus (HDD uniquement)
- *overhead* important pour le stockage de la FAT (disque et RAM), en particulier avec un grand nombre de clusters
- la FAT doit être chargée en RAM (sinon performances catastrophiques)
- fragmentation interne lorsque taille fichier < taille bloc
</fieldset>
-- --
...@@ -283,47 +290,39 @@ Soit le FS de type FAT suivant : ...@@ -283,47 +290,39 @@ Soit le FS de type FAT suivant :
- les métadonnées du fichier - les métadonnées du fichier
- la liste des pointeurs vers les blocs de données - la liste des pointeurs vers les blocs de données
\vspace{.3cm} ![](images/indexed_alloc.png) <!-- .element width="45%" -->
\centering
![](images/indexed_alloc.png){ width=50% }
-- --
## 3.b. Allocation indexée multi-niveau ## 3.b. Allocation indexée multi-niveau
\small
- L'inode stocke pointeurs directs, indirects, doublement indirects, etc. - L'inode stocke pointeurs directs, indirects, doublement indirects, etc.
- Utilisé par tous les FS dans les systèmes UNIX : minix-fs, ext2, ext3, etc. - Utilisé par tous les FS dans les systèmes UNIX : minix-fs, ext2, ext3, etc.
\centering ![](images/multi_indexed_alloc.png) <!-- .element width="85%" -->
![](images/multi_indexed_alloc.png){ width=90% }
-- --
## 3.b Allocation indexée multi-niveau : exemple ## 3.b. Alloc. indexée multi-niv. : exemple
\small <div style="font-size:0.8em">
Soit le FS de type indexé multi-niveau suivant : Soit le FS de type indexé multi-niveau suivant : <!-- .element: style="text-align:left;margin:0px" -->
- Un inode fait 64 bytes - Un inode fait 64 bytes
- Un inode contient 8 pointeurs directs, 2 pointeurs indirects et 1 pointeur doublement indirect - Un inode contient 8 pointeurs directs, 2 pointeurs indirects et 1 pointeur doublement indirect
- Un pointeur de bloc est stocké sur 16 bits - Un pointeur de bloc est stocké sur 16 bits
- Taille des blocs de données : 1 KB (1024 bytes) - Taille des blocs de données : 1 KB (1024 bytes)
::: incremental </div>
**Questions** **Questions**
1. Combien peut-on stocker de pointeurs par bloc\ ? 1. Combien peut-on stocker de pointeurs par bloc ? \
- \footnotesize \textcolor{mygreen}{$1024/2$ = 512} `$1024/2 = 512$` <!-- .element: class="fragment" -->
1. Quelle est la taille de fichier maximum supportée pour ce FS (en bytes, KB et MB)\ ?
- \footnotesize \textcolor{mygreen}{$8*1024 + (512*1024)*2 + (512^2)*1024$ = 269492224 bytes, 263176 KB, 257 MB }
::: 2. Quelle est la taille de fichier maximum supportée pour ce FS (en bytes, KB et MB) ? \
`$8*1024 + (512*1024)*2 + (512^2)*1024 = 269492224$ bytes, $263176$ KB, $257$ MB` <!-- .element: class="fragment" -->
<!-- <!--
1. Combien peut-on stocker d'inodes par bloc\ ? 1. Combien peut-on stocker d'inodes par bloc\ ?
...@@ -334,17 +333,25 @@ Soit le FS de type indexé multi-niveau suivant : ...@@ -334,17 +333,25 @@ Soit le FS de type indexé multi-niveau suivant :
## 3.b. Allocation indexée : synthèse ## 3.b. Allocation indexée : synthèse
- \textbf{\textcolor{mygreen}{Avantages}} <fieldset class="OK">
- relativement facile à implémenter <legend>Avantages</legend>
- les fichiers peuvent facilement grandir (tant qu'il y a des pointeurs libres)
- accès aléatoire rapide
- pas de fragmentation externe
- \textbf{\textcolor{myred}{Inconvénients}} - relativement facile à implémenter
- *overhead* de stockage pour les pointeurs - les fichiers peuvent facilement grandir (tant qu'il y a des pointeurs libres)
- l'accès rapide nécessite l'allocation de blocs contigus (HDD uniquement) - accès aléatoire rapide
- sinon, accès potentiellement lent - pas de fragmentation externe
- fragmentation interne lorsque taille fichier < taille bloc
</fieldset>
<p></p>
<fieldset class="warning fragment">
<legend>Inconvénients</legend>
- *overhead* de stockage pour les pointeurs
- l'accès rapide nécessite l'allocation de blocs contigus (HDD uniquement)
- sinon, accès potentiellement lent
- fragmentation interne lorsque taille fichier < taille bloc
</fieldset>
-- --
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment