Stockage et systèmes de fichiers Flashcards

(53 cards)

1
Q

Quel est le rôles du système de fichiers ?

A

Persistence, Organisation, Abstraction

+ protection, performance, robustesse

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Persistence

A
  • Conserver les données même quand la machine est éteinte
  • Dissocier les données du processus qui les a créées
    ▶ stockage en dehors de la mémoire principale (RAM)
    ▶ notion de fichier non structuré = une séquence d’octets
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Organisation

A
  • Identifier chaque fichier par un nom intelligible
  • Grouper des noms ensemble pour ranger les fichiers
    ▶ notion de répertoire (= dossier)
    ▶ hiérarchie arborescente de répertoires et sous-répertoires
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Abstraction

A
  • Masquer les détails technologiques : disque, flash, réseau
    ▶ architecture logicielle en couches
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Fichier

A

VO file
= séquence d’octets, identifié par un nom
= impl : éparpillé sur plusieurs secteurs de disque

convention : suffixe du nom (.mp3, .jpg…) = format des données

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Comment l’application interagit avec un fichier ?

A

Elle interprète «librement» le contenu binaire

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Répertoire (dossier)

A

VO directory (folder)
= contient des fichiers et d’autres dossiers
= impl : fichier spécial contenant des noms

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Systèmes de fichiers : pourquoi c’est difficile

A
  • Non-volatilité : chaque écriture sur le disque est définitive
  • Comment résister aux pannes et aux plantages
  • Comment offrir une performance acceptable ?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Rôle du système de fichiers (en VO File system = FS)

A

Lors de chaque accès à un fichier, le FS doit traduire une paire nom + position vers une « adresse disque » no secteur+offset

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Disque

A

tableau de secteurs numérotés

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

1 secteur

A

= Unité de transfert atomique entre disque et RAM
= unité atomique de lecture ou écriture
taille typique : 512B ou 4kB

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quels sont les syscall de l’interface utilisateur pour intergagir avec les fichiers ?

A

read et write

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
ssize_t read(int fd, void *buf, size_t count);
A

Lire count octets dans le fichier fd et les écrire en mémoire à l’adresse buf (donc de buf jusqu’à buf+count–1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
ssize_t write(int fd, const void *buf, size_t count);
A

Lire en mémoire les count octets commençant à l’adresse buf, et les écrire dans le fichier fd

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Le numéro fd est un file descriptor

A

attribué par le noyau

~~~
int open(char *pathname, int flags)
``` rend un fd

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Notion de position courante dans chaque fichier ouvert

A
off_t lseek(int fd, off_t offset, int whence);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

liste des fichiers ouverts (et positions dans…

A

… le PCB

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Opérations disponibles sur un fichier

A

créer un nouveau fichier : creat()
* supprimer un fichier : unlink()
* ouvrir : open() et fermer close()
* lire n octets depuis la position courante : read()
* écrire n octets à la position courante : write()
* se repositionner dans le fichier :lseek()
* ajouter n octets en fin de fichier : append()
* lire les méta-données : stat()
* changer les méta-données : chmod(), utime()
* renommer un fichier : rename()

Attention, piège : renommer̸ = déplacer !

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Comment organise-t-on les fichiers ?

A

Organisation des fichiers en dossiers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Quelle approche est utilisée pour pouvoir retrouver un fichier à partir de son nom ?

A

Approche moderne : structure de nommage récursive
- file system = arbre
- dossier contient fichiers et sous-dossiers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Implémentation de la structure de nommage récursive

A

Un répertoire = un fichier spécial
* contient la liste de ses sous-dossiers et fichiers
* appels système idoines : opendir(), readdir()..

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Arborescence de fichiers Unix

23
Q

Noms spéciaux du système de fichiers

A
  • racine du système de fichiers** /**
  • répertoire courant .
  • répertoire parent ..
24
Q

Répertoire courant (CWD)

A

Chaque processus a un current working directory (CWD)
* appel système chdir() pour changer de CWD
* cd truc demande au shell de faire un chdir(“truc”)

25
Implémentation de la notion de répertoire courant
PCB contient un champ pour le CWD
26
Résolution des noms par le noyau
On distingue chemin absolu et chemin relatif
27
Chemin commençant par un **/**
▶ chemin absolu * interprété en partant de la racine ## Footnote par exemple /usr/bin/emacs
28
Chemin commençant par autre chose que **/**
▶ chemin relatif * interprété en partant du CWD ## Footnote * par exemple Photos qu’on peut écrire aussi ./Photos * par exemple ../../Documents/lettre.doc
29
Montage d’un volume logique
Monter un volume dans un dossier = masquer le contenu de ce dossier et le remplacer par l’arborescence du volume
30
plusieurs supports : disques, DVD, clé USB, réseau... VS une seule arborescence de fichiers dans le système
une arborescence sur chaque support : (notion de volume logique) = arborescence occupant tout un support VS une seule racine / dans le système
31
Volume
Arborescence occupant tout un support
32
Point de montage sur Unix
Tout répertoire peut servir de point de montage (VS 26 sur Windows)
33
Commandes pour le montage sur Unix
*mount* et *umount*
34
# * Démontage, ou *retirer le périphérique en toute sécurité*
demande au noyau de * finir toutes les écritures en cours * refuser tous les nouveaux accès * ensuite, dissocier le sous-arbre de son point de montage * on peut ensuite débrancher la clé, éjecter le CD...
35
déplacer =/= renommer
* sur un même volume ▶ simple modification de répertoires * entre deux volumes ▶ il faut copier les données !
36
Profils d’accès
Accès séquentiel et Accès arbitraire
37
Accès séquentiel
* contenu du fichier traité au fur et à mesure * scénario le plus courant ## Footnote exemples : lecture de film, sauvegarde d’un document
38
Accès arbitraire (VO Random Access)
contenu du fichier traité dans le désordre ## Footnote exemples : bases de données, swap de mémoire virtuelle
39
Ordre de grandeur latence
un accès disque ≈ cent mille accès mémoire - DRAM ≈ 50ns Flash ≈ 50μs disque ≈ 5ms
40
Ordre de grandeur taille
File system : 100×, 1000× plus vaste que mémoire
41
Ordre de grandeur : lecture sur secteur
* lire un certain secteur ≈ 5ms * lire un certain secteur et les n suivants ≈ 5ms + n × ε
42
Objectifs du système de fichiers
* pouvoir retrouver un fichier à partir de son nom * accéder efficacement aux données (séquentiel et arbitraire) * gérer l’espace libre : allocation et désallocation des secteurs
43
Formattagec d'un volume
écriture d’un FS « vide »
44
Partitionnement
Découpage du disque en volumes - un volume = un même File System
45
Index
table des matières. typiquement exprimé en termes de numéros de blocs AKA clusters
46
1 bloc
2^n secteurs
47
48
49
50
51
Indexation multi-niveaux Unix : remarques
**Avantages** * implem simple, accès efficace aux petits fichiers * taille max des fichiers bornée, mais grande **Inconvénients** * nombre d’accès au pire cas pour une lecture ? * pire surcoût en espace ?
52
Comment fonctionnenet les systèmes de fichiers modernes ?
De façon hybride * allocation contiguë pour petits fichiers * indexation multi-niveaux pour gros fichiers
53
Implémentation du File System
* dossier = fichier spécial contenant des noms * fichier = éparpillé sur plusieurs secteurs du disque * inode = index des secteurs composant le fichier