Aggiunto schema interazione file-processi
authorSimone Piccardi <piccardi@gnulinux.it>
Fri, 2 Nov 2001 20:04:05 +0000 (20:04 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Fri, 2 Nov 2001 20:04:05 +0000 (20:04 +0000)
fileunix.tex
gapil.tex
img/procfile.dia [new file with mode: 0644]

index ea2868980fc38608a0432224dfe1568cbfd02722..86652f3d57c6b1d09978ac9f680804135420cf01 100644 (file)
@@ -32,9 +32,18 @@ ogni ulteriore operazione.
 
 Per capire come funziona questo canale di comunicazione occorre spiegare
 brevemente qual'è architettura con cui il kernel gestisce l'interazione fra
 
 Per capire come funziona questo canale di comunicazione occorre spiegare
 brevemente qual'è architettura con cui il kernel gestisce l'interazione fra
-processi e file.  Il kernel mantiene sempre un elenco dei processi
-attivi nella cosiddetta \textit{process table} ed un elenco dei file aperti
-nella \textit{file table}. 
+processi e file.  Il kernel mantiene sempre un elenco dei processi attivi
+nella cosiddetta \textit{process table} ed un elenco dei file aperti nella
+\textit{file table}. La relazione fra queste tabelle è mostrata in \nfig.
+
+
+\begin{figure}[htb]
+  \centering
+  \includegraphics[width=7cm]{img/procfile.eps}
+  \caption{Schema delle operazioni del VFS}
+  \label{fig:file_VFS_scheme}
+\end{figure}
+
 
 Ciascuna voce della \textit{process table}, che in Linux è costituita da una
 struttura \var{task\_struct}, contiene le informazioni relative ad ogni
 
 Ciascuna voce della \textit{process table}, che in Linux è costituita da una
 struttura \var{task\_struct}, contiene le informazioni relative ad ogni
@@ -42,8 +51,9 @@ processo attivo nel sistema; fra queste c'
 ulteriore struttura \var{files\_struct} in cui sono contenute le informazioni
 relative a ogni file che il processo ha aperto, ed in particolare:
 \begin{itemize}
 ulteriore struttura \var{files\_struct} in cui sono contenute le informazioni
 relative a ogni file che il processo ha aperto, ed in particolare:
 \begin{itemize}
-\item i flag di close on esec 
-\item un puntatore alla struttura \var{file} nella \textit{file table}
+\item i flag relativi ai file descriptor.
+\item un puntatore alla struttura \var{file} nella \textit{file table} per
+  ogni file aperto.
 \end{itemize}
 
 Ciascuna voce della \textit{file table}, che in Linux è costituita da una
 \end{itemize}
 
 Ciascuna voce della \textit{file table}, che in Linux è costituita da una
@@ -52,14 +62,16 @@ nel sistema, fra queste ci sono:
 \begin{itemize}
 \item lo stato del file (lettura, scrittura, append, etc.).
 \item il valore della posizione corrente (l'\textit{offset}).
 \begin{itemize}
 \item lo stato del file (lettura, scrittura, append, etc.).
 \item il valore della posizione corrente (l'\textit{offset}).
-\item un puntatore alla dentry del file (da cui si accede all'inode).
-\item un puntatore alla tabella delle operazioni del filesystem (vedi
-  \tabref{tab:file_file_operations}).
+\item un puntatore all'inode\footnote{nel kernel 2.4.x si è in realtà passati
+    ad un puntatore ad una struttura \var{dentry} che punta a sua volta
+    all'inode passando per la nuova struttura del VFS} del file (da cui si
+  accede all'inode).
+\item un puntatore alla tabella delle operazioni definite sul file (si ricordi
+  quanto detto a proposito di \tabref{tab:file_file_operations} nella
+  spiegazione del VFS di Linux).
 \end{itemize}
 
 
 \end{itemize}
 
 
-Le relazioni fra queste strutture sono riportate in \nfig; 
-
 
 
 All'interno di ogni processo i file aperti sono identificati da un intero non
 
 
 All'interno di ogni processo i file aperti sono identificati da un intero non
@@ -118,3 +130,4 @@ funzioni fondamentali \func{open}, \func{read}, \func{write},
 
 
 
 
 
 
+
index b4c7cc1990d490690bc97e0b57e5af1cb444d76e..ff3e04b7b9cf696a10418b0ca4e0f84c8a02c391 100644 (file)
--- a/gapil.tex
+++ b/gapil.tex
@@ -1,4 +1,4 @@
-%% 
+%%
 %% GaPiL : Guida alla Programmazione in Linux
 %%
 %% S. Piccardi Oct. 2000 
 %% GaPiL : Guida alla Programmazione in Linux
 %%
 %% S. Piccardi Oct. 2000 
diff --git a/img/procfile.dia b/img/procfile.dia
new file mode 100644 (file)
index 0000000..ab2a92b
Binary files /dev/null and b/img/procfile.dia differ