139 lines
4.1 KiB
TeX
139 lines
4.1 KiB
TeX
\chapter{Systèmes de fichiers}
|
|
|
|
\section{Généralités}
|
|
|
|
\begin{itemize}
|
|
\item Persistande des informations
|
|
\item Partage d'informations (entre les processus, ...)
|
|
\end{itemize}
|
|
|
|
La notion de fichier apporte une espace de stockage important, un
|
|
stockage statique de l'information et une indépendance vis-à-vis des
|
|
processus qui l'utilisent ou l'ont utilisés.
|
|
|
|
\subsection{Structure}
|
|
|
|
\begin{itemize}
|
|
\item \textbf{Fichiers~:} unité logique de stockage d'information.
|
|
\item \textbf{Répertoire~:} organisation logique de l'information.
|
|
\item \textbf{Partitions~:} organisation de plus haut niveau.
|
|
\end{itemize}
|
|
|
|
On a une vision logique et uniformisée de l'information. Les
|
|
caractéristiques physiques du stockage font une abstraction des
|
|
caractéristiques physiques.
|
|
Les formats, type du système sont choisis par le créateur.
|
|
|
|
\subsection{Méthodes d'accès}
|
|
|
|
\subsubsection{Accès séquentiel}
|
|
|
|
Méthode historique, basé sur le modèle des bandes magnétiques~:
|
|
pointeur de lecteur/écriture (offset) automatiquement incrémenté. Et
|
|
des privitives de positionnement (seek).
|
|
|
|
\subsubsection{Accès direct/relatif}
|
|
|
|
\og Random access\fg, modèle des disques durs.\\
|
|
|
|
Les primitives de lecture et d'écriture sont paramétrées par un
|
|
numéro de bloc relatif. Un fichier est vu comme un enregistrement de
|
|
blocs de taille fixe.
|
|
|
|
\subsubsection{Remarques}
|
|
|
|
\begin{itemize}
|
|
\item Certains systèmes fournissent plusieurs méthodes d'accès,
|
|
comme IBM.
|
|
\item Le mode d'accès peut faire partie du type de fichier.
|
|
\item Il est trivial d'implémenter l'accès séquentiel à partir de
|
|
l'accès de l'accès direct.
|
|
\end{itemize}
|
|
|
|
\subsection{Table de fichiers (ouverts)}
|
|
|
|
Mise en cache des descripteurs de fichiers actuellement utilisés
|
|
|
|
\section{Organisation des systèmes de fichiers}
|
|
|
|
\subsection{Macro-niveaux d'organisation}
|
|
|
|
\begin{itemize}
|
|
\item \textbf{Partition~:} \og mini-disque\fg (chez IBM), \og
|
|
volume\fg (chez Mac).\\
|
|
Selon les systèmes, plusieurs partitions par disques, ou plusieurs
|
|
disques par partitions.
|
|
\item \textbf{Répertoire~:} analogue à une table des symboles.
|
|
Contient des informations sur les fichiers sous-jacents (nom,
|
|
emplacement, taille, type\ldots).
|
|
\end{itemize}
|
|
|
|
\subsection{Niveaux de répertoires}
|
|
|
|
\subsubsection{Niveau 1}
|
|
|
|
Structure simpliste d'une unique répertoire.
|
|
|
|
On a des problèmes d'unicité des noms (11 caractères pour MS-DOS et
|
|
255 pour Unix).
|
|
|
|
\subsubsection{Niveau 2}
|
|
|
|
Un répertoire principal (\og MFD\fg) contient des répertoires
|
|
utilisateurs (\og UFD\fg). Accès implicite à son propre UFD.
|
|
|
|
On voit apparaître la notion de session (login/password).
|
|
|
|
\subsubsection{Nommage}
|
|
|
|
\paragraph{MS-DOS~:} \verb+C:\dupont\test.exe+
|
|
\paragraph{Unix~:} \verb+/var/spool/mail/dupont+
|
|
\paragraph{VAX-VMS~:} \verb+u:[dir1.dir2]foo.com;1+
|
|
|
|
\section{Méthode d'allocation}
|
|
|
|
\subsection{Allocation contiguë}
|
|
|
|
Les fichiers sont stockés par blocs contigus sur le disque.\\
|
|
|
|
Le temps de positionnement des têtes est minimal. Accès direct et
|
|
séquentiel faciles à implémenter.
|
|
|
|
Problèmes~: fragmentation interne s'il y a trop d'espace ; pas assez
|
|
d'espace~: déplacement couteux des fichiers ; pas toujours possible.\\
|
|
|
|
Utilisé sur les CD et DVD.
|
|
|
|
\subsection{Allocation chaînée}
|
|
|
|
Chaque bloc se termine par un pointeur sur le bloc suivant.\\
|
|
|
|
Une entrée de répertoire contient un pointeur sur le premier bloc.
|
|
|
|
Pas de fragmentation externe, pas de limite de taille. Mais accès
|
|
direct inefficasse. Au niveau de la fiabilité, la perte d'un pointeur
|
|
est critique.
|
|
|
|
\subsection{File Allocation Table (FAT)}
|
|
|
|
Il y a une FAT au début de chaque partition. Il s'agit d'une table
|
|
indexée par numéros de bloc. Chaque entrée pointe sur le numéro de
|
|
bloc suivant.
|
|
|
|
Une entrée de répertoire contient un pointeur sur le premier bloc.
|
|
|
|
\subsection{Allocation indexée}
|
|
|
|
Chaque fichier possède un bloc d'index.
|
|
|
|
Une entrée de répertoire pointe sur le bloc d'index
|
|
|
|
La ie entrée du bloc d'index pointe sur le ue bloc de donnée du
|
|
fichier.
|
|
|
|
La table des i-nodes est de taille proportionnelle au nombre de
|
|
fichiers.
|
|
|
|
Par contre, la fragmentation interne est plus grande qu'avec
|
|
l'allocation chaînée et un problème de taille des inodes.
|