X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=fileunix.tex;h=09e38a8ce394bb51a9cf685401ea102d7bf59bbd;hb=9750c196d5ff86f50d77499b271ee2a29eda3407;hp=772e13ec2746de1f0e063219f8c7bf427f858611;hpb=33a26fb169d5a3e459b816cb79eb7956e8434ffb;p=gapil.git diff --git a/fileunix.tex b/fileunix.tex index 772e13e..09e38a8 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -30,6 +30,39 @@ inizializzare le funzioni che il VFS mette a disposizione (riportate in dovrà essere chiuso, e questo chiuderà il canale di comunicazione impedendo ogni ulteriore operazione. +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}. + +Ciascuna voce della \textit{process table}, che in Linux è costituita da una +struttura \var{task_struct}, che contiene tutte le informazioni relative ad +ogni processo attivo nel sistema; fra queste c'è anche il puntatore ad una +ulteriore struttura \var{files_struct} che contiene le informazioni su tutti i +file che il processo sta usando. + +Ciascuna voce della \textit{file table}, che in Linux è costituita da una +struttura \var{file}, contiene informazioni ogni file aperto nel sistema. + + + +All'interno di ogni processo i file aperti sono identificati da un intero non +negativo, chiamato appunto \textit{file descriptors}; + + + +) che identifica il processo nei confronti del +kernel ogni processo mantiene una sezione (la \var{file_struct}, la cui +struttura è riportata in \nfig) + +ciascun processo porta +nella ha una tabella dei file aperti, in + + + + + Per ciascun file aperto nel sistema il kernel mantiene voce nella tabella dei file; ciascuna voce di questa tabella contiene: \begin{itemize} @@ -39,10 +72,6 @@ file; ciascuna voce di questa tabella contiene: \end{itemize} -All'interno di ogni processo i file aperti sono identificati da un intero non -negativo, chiamato appunto \textit{file descriptors}; ciascun processo ha una -tabella dei file aperti, in cui -