Aller au contenu principal

Systèmes d'exploitation · L3 · Section 3/6

Systèmes de fichiers

Progression

Points d’expérience : XPSérie de jours consécutifs : · —Progression du module : — / —compris

#Systèmes de fichiers

#Inodes et répertoires

  • Inode: métadonnées (taille, blocs, uid/gid, modes) et pointeurs de blocs (directs/indirects). Le nom n’y figure pas.
  • Répertoire: table (nom → inode). Un lien dur référence le même inode (compteur de liens); un lien symbolique référence un chemin.

#Écriture et cache de page

  • Le noyau met en cache pages/buffers; write() marque « dirty » et retourne vite.
  • fsync() force la persistance (journal puis données) selon le FS et le mode; essentiel pour garantir la durabilité applicative.

#Animation: write‑back et journal

write()
Copie en page cache; pages « dirty »; retour rapide
Journal
Intentions (métadonnées): writeback/ordered/journal
Flush
Daemon écrit sur disque; fsync force la synchro
Crash
Relecture du journal au montage: cohérence

#Diagramme: write → journal → flush → crash/rejouer

Processus
Page cache
Journal
Disque
1. write(fd, buf)
2. OK (pages dirty)
3. fsync (métadonnées)
4. Flush journal
5. Flush données (writeback)
6. Commit / checkpoint

#Journaling vs Copy‑on‑Write

  • Journaling (ext4, XFS): journal des intentions pour restaurer la cohérence rapidement après crash.
  • Copy‑on‑Write (btrfs, ZFS): écrit ailleurs puis bascule un pointeur; snapshots/checksums efficaces.

#Intégrité et perfs

  • Barrières/flush: forcer l’ordre (barrier, FUA) pour éviter le ré‑ordonnancement destructeur.
  • Alignement bloc/IO; accès séquentiels et coalescence améliorent le débit; réduire la fragmentation.

#Quiz

Quel modèle permet des snapshots peu coûteux au niveau FS ?
Quel modèle permet des snapshots peu coûteux au niveau FS ?