Ultime aggiunte su {{{posix_fadvise}}}
authorSimone Piccardi <piccardi@gnulinux.it>
Sun, 26 Aug 2007 12:28:09 +0000 (12:28 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Sun, 26 Aug 2007 12:28:09 +0000 (12:28 +0000)
fileadv.tex
thread.tex

index dc5bcb8f0a32f586484783ffde7f7eafeb6f8c37..8d5296e3ed5f418dda6fc6be85916f39f0ae1170 100644 (file)
@@ -3379,9 +3379,10 @@ nell'I/O su disco, il suo prototipo 
   \bodydesc{La funzione restituisce 0 in caso di successo e $-1$ in caso di
     errore, nel qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
-    \item[\errcode{EBADF}] \param{fd} non è valido o non è aperto in lettura.
-    \item[\errcode{EINVAL}] \param{fd} si riferisce ad un tipo di file che non
-      supporta l'operazione (come una pipe o un socket)..
+    \item[\errcode{EBADF}] l'argomento \param{fd} non è un file descriptor
+      valido o non è aperto in lettura.
+    \item[\errcode{EINVAL}] l'argomento \param{fd} si riferisce ad un tipo di
+      file che non supporta l'operazione (come una pipe o un socket).
     \end{errlist}
   }
 \end{functions}
@@ -3405,14 +3406,15 @@ dati saranno necessari in seguito. Si potr
 momento (ad esempio in fase di inizializzazione) la lettura, così da ottenere
 una migliore risposta nelle operazioni successive.
 
-Il concetto di \func{readahead} viene generalizzato da
-\funcd{posix\_fadvise},\footnote{al contario di \func{readahead} la funzione è
-  definita nello standard POSIX.1-2001 (anche se l'argomento \param{len} è
-  stato modificato da \ctyp{size\_t} a \ctyp{off\_t} nella revisione
-  POSIX.1-2003 TC5), però è disponibile su Linux a partire dai kernel della
-  serie 2.6.} che consente di ``\textsl{avvisare}'' il kernel sulle modalità
-con cui si intende accedere nel futuro ad una certa porzione di un file, così
-che esso possa provvedere le opportune ottimizzazioni; il suo prototipo è:
+Il concetto di \func{readahead} viene generalizzato nello standard
+POSIX.1-2001 dalla funzione \funcd{posix\_fadvise},\footnote{anche se
+  l'argomento \param{len} è stato modificato da \ctyp{size\_t} a \ctyp{off\_t}
+  nella revisione POSIX.1-2003 TC5.} che consente di ``\textsl{avvisare}'' il
+kernel sulle modalità con cui si intende accedere nel futuro ad una certa
+porzione di un file,\footnote{la funzione però è stata introdotta su Linux
+  solo a partire dal kernel 2.5.60.}  così che esso possa provvedere le
+opportune ottimizzazioni; il suo prototipo, che può è disponibile solo se si
+definisce la macro \macro{\_XOPEN\_SOURCE} ad almeno 600, è:
 \begin{functions}  
   \headdecl{fcntl.h} 
 
@@ -3423,10 +3425,14 @@ che esso possa provvedere le opportune ottimizzazioni; il suo prototipo 
   \bodydesc{La funzione restituisce 0 in caso di successo e $-1$ in caso di
     errore, nel qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
-    \item[\errcode{EBADF}] \param{fd} non è valido o non è aperto in lettura.
-    \item[\errcode{EINVAL}] \param{fd} si riferisce ad un tipo di file che non
-      supporta l'operazione (come una pipe o un socket)..
+    \item[\errcode{EBADF}] l'argomento \param{fd} non è un file descriptor
+      valido.
+    \item[\errcode{EINVAL}] il valore di \param{advice} non è valido o
+      \param{fd} si riferisce ad un tipo di file che non supporta l'operazione
+      (come una pipe o un socket).
     \end{errlist}
+    \item[\errcode{ESPIPE}] previsto dallo standard se \param{fd} è una pipe o
+      un socket (ma su Linux viene restituito \errcode{EINVAL}).
   }
 \end{functions}
 
index 88d25ac7070ac505cb61af3f5ef87511aaf8d145..b541e079bc80588a6a7a8ab9cc952f61d99d37b4 100644 (file)
@@ -37,10 +37,32 @@ panoramica sulle implementazioni alternative.
 % http://math.arizona.edu/~swig/documentation/pthreads/
 % http://www.humanfactor.com/pthreads/
 
+Il modello classico dell'esecuzione dei programmi nei sistemi Unix, illustrato
+in sez.~\ref{cha:process_interface}, è fondato sui processi. Il modello nasce
+per assicurare la massima stabilità al sistema e prevede una rigida
+separazione fra i diversi processi, in modo che questi non possano disturbarsi
+a vicenda. 
+
+Le applicazioni moderne però sono altamente concorrenti, e necessitano quindi
+di un gran numero di processi; questo ha portato a scontrarsi con alcuni
+limiti dell'architettura precedente. In genere i fautori del modello di
+programmazione a \texttt{thread} sottolineano due problemi connessi all'uso
+dei processi:
+\begin{itemize}
+\item
+\item 
+\end{itemize}
+
+
+
 
 \subsection{I \textit{thread} e Linux}
 \label{sec:linux_thread}
 
+
+
+
+
 \subsection{Implementazioni alternative}
 \label{sec:thread_other}