Correzioni ortografiche generali, con creazione dei vocabolari locali
[gapil.git] / fileadv.tex
index b49bcf84ad8ccd7fe3c295251d2ab32f95614ae2..904e81ea18cdbbc17f00762232e937babf2d05fd 100644 (file)
@@ -1,6 +1,6 @@
 %% fileadv.tex
 %%
-%% Copyright (C) 2000-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2006 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -270,7 +270,7 @@ immediatamente prima di eseguire l'attesa, e ripristinata al ritorno della
 funzione.
 
 L'uso di \param{sigmask} è stato introdotto allo scopo di prevenire possibili
-\textit{race condition}\itindex{race~condition} quando ci si deve porre in
+\textit{race condition} \itindex{race~condition} quando ci si deve porre in
 attesa sia di un segnale che di dati. La tecnica classica è quella di
 utilizzare il gestore per impostare una variabile globale e controllare questa
 nel corpo principale del programma; abbiamo visto in
@@ -285,10 +285,10 @@ sotto controllo anche dei file descriptor con \func{select}, in questo caso si
 può fare conto sul fatto che all'arrivo di un segnale essa verrebbe interrotta
 e si potrebbero eseguire di conseguenza le operazioni relative al segnale e
 alla gestione dati con un ciclo del tipo:
-\includecodesnip{listati/select_race.c} qui però emerge una \textit{race
-  condition},\itindex{race~condition} perché se il segnale arriva prima della
-chiamata a \func{select}, questa non verrà interrotta, e la ricezione del
-segnale non sarà rilevata.
+\includecodesnip{listati/select_race.c} 
+qui però emerge una \itindex{race~condition} \textit{race condition}, perché
+se il segnale arriva prima della chiamata a \func{select}, questa non verrà
+interrotta, e la ricezione del segnale non sarà rilevata.
 
 Per questo è stata introdotta \func{pselect} che attraverso l'argomento
 \param{sigmask} permette di riabilitare la ricezione il segnale
@@ -309,6 +309,8 @@ in questo caso utilizzando \var{oldmask} durante l'esecuzione di
 \func{pselect} la ricezione del segnale sarà abilitata, ed in caso di
 interruzione si potranno eseguire le relative operazioni.
 
+% TODO pselect è stata introdotta nel kernel 2.6.16 (o 15 o 17?) insieme a
+% ppoll mettere e verificare
 
 
 \subsection{La funzione \func{poll}}
@@ -435,6 +437,8 @@ indica un errore nella chiamata, il cui codice viene riportato al solito
 tramite \var{errno}.
 
 
+% TODO accennare a ppoll
+
 %\subsection{L'interfaccia di \textit{epoll}}
 %\label{sec:file_epoll}
 % placeholder ...
@@ -1402,7 +1406,7 @@ tab.~\ref{tab:file_mmap_flag}.
                              un \const{SIGSEGV}. \\
     \const{MAP\_LOCKED}    & Se impostato impedisce lo swapping delle pagine
                              mappate.\\
-    \const{MAP\_GROWSDOWN} & Usato per gli stack. Indica 
+    \const{MAP\_GROWSDOWN} & Usato per gli \itindex{stack} stack. Indica 
                              che la mappatura deve essere effettuata con gli
                              indirizzi crescenti verso il basso.\\
     \const{MAP\_ANONYMOUS} & La mappatura non è associata a nessun file. Gli
@@ -2280,13 +2284,13 @@ questo caso la titolarit
 voce nella file table, ma con il valore del \acr{pid} del processo.
 
 Quando si richiede un lock il kernel effettua una scansione di tutti i lock
-presenti sul file\footnote{scandisce cioè la
-  \itindex{linked~list}\textit{linked list} delle strutture
-  \struct{file\_lock}, scartando automaticamente quelle per cui
-  \var{fl\_flags} non è \const{FL\_POSIX}, così che le due interfacce restano
-  ben separate.}  per verificare se la regione richiesta non si sovrappone ad
-una già bloccata, in caso affermativo decide in base al tipo di lock, in caso
-negativo il nuovo lock viene comunque acquisito ed aggiunto alla lista.
+presenti sul file\footnote{scandisce cioè la \itindex{linked~list}
+  \textit{linked list} delle strutture \struct{file\_lock}, scartando
+  automaticamente quelle per cui \var{fl\_flags} non è \const{FL\_POSIX}, così
+  che le due interfacce restano ben separate.}  per verificare se la regione
+richiesta non si sovrappone ad una già bloccata, in caso affermativo decide in
+base al tipo di lock, in caso negativo il nuovo lock viene comunque acquisito
+ed aggiunto alla lista.
 
 Nel caso di rimozione invece questa viene effettuata controllando che il
 \acr{pid} del processo richiedente corrisponda a quello contenuto nel lock.
@@ -2619,16 +2623,16 @@ significato, diventa l'indicazione della presenza o meno del \textit{mandatory
   quando esso viene utilizzato per attivare il \textit{mandatory locking}.}
 
 L'uso del \textit{mandatory locking} presenta vari aspetti delicati, dato che
-neanche root può passare sopra ad un lock; pertanto un processo che blocchi un
-file cruciale può renderlo completamente inaccessibile, rendendo completamente
-inutilizzabile il sistema\footnote{il problema si potrebbe risolvere
-  rimuovendo il bit \itindex{sgid~bit} \acr{sgid}, ma non è detto che sia così
-  facile fare questa operazione con un sistema bloccato.} inoltre con il
-\textit{mandatory locking} si può bloccare completamente un server NFS
-richiedendo una lettura su un file su cui è attivo un lock. Per questo motivo
-l'abilitazione del mandatory locking è di norma disabilitata, e deve essere
-attivata filesystem per filesystem in fase di montaggio (specificando
-l'apposita opzione di \func{mount} riportata in
+neanche l'amministratore può passare sopra ad un lock; pertanto un processo
+che blocchi un file cruciale può renderlo completamente inaccessibile,
+rendendo completamente inutilizzabile il sistema\footnote{il problema si
+  potrebbe risolvere rimuovendo il bit \itindex{sgid~bit} \acr{sgid}, ma non è
+  detto che sia così facile fare questa operazione con un sistema bloccato.}
+inoltre con il \textit{mandatory locking} si può bloccare completamente un
+server NFS richiedendo una lettura su un file su cui è attivo un lock. Per
+questo motivo l'abilitazione del mandatory locking è di norma disabilitata, e
+deve essere attivata filesystem per filesystem in fase di montaggio
+(specificando l'apposita opzione di \func{mount} riportata in
 tab.~\ref{tab:sys_mount_flags}, o con l'opzione \code{-o mand} per il comando
 omonimo).
 
@@ -2690,3 +2694,39 @@ possibilit
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  dell'I locking multiplexing cap dell' sez system call socket BSD
+% LocalWords:  descriptor client deadlock NONBLOCK EAGAIN polling select kernel
+% LocalWords:  pselect like sys unistd int fd readfds writefds exceptfds struct
+% LocalWords:  timeval errno EBADF EINTR EINVAL ENOMEM sleep tab signal void of
+% LocalWords:  CLR ISSET SETSIZE POSIX read NULL nell'header l'header glibc fig
+% LocalWords:  libc header psignal sigmask SOURCE XOPEN timespec sigset race DN
+% LocalWords:  condition sigprocmask tut self trick oldmask poll XPG pollfd l'I
+% LocalWords:  ufds unsigned nfds RLIMIT NOFILE EFAULT ndfs events revents hung
+% LocalWords:  POLLIN POLLRDNORM POLLRDBAND POLLPRI POLLOUT POLLWRNORM POLLERR
+% LocalWords:  POLLWRBAND POLLHUP POLLNVAL POLLMSG SysV stream ASYNC SETOWN FAQ
+% LocalWords:  GETOWN fcntl SETFL SIGIO SETSIG Stevens driven siginfo sigaction
+% LocalWords:  all'I nell'I Frequently Unanswered Question SIGHUP lease holder
+% LocalWords:  breaker truncate write SETLEASE arg RDLCK WRLCK UNLCK GETLEASE
+% LocalWords:  uid capabilities capability EWOULDBLOCK notify dall'OR ACCESS st
+% LocalWords:  pread readv MODIFY pwrite writev ftruncate creat mknod mkdir buf
+% LocalWords:  symlink rename DELETE unlink rmdir ATTRIB chown chmod utime lio
+% LocalWords:  MULTISHOT thread linkando librt layer aiocb asyncronous control
+% LocalWords:  block ASYNCHRONOUS lseek fildes nbytes reqprio PRIORITIZED sigev
+% LocalWords:  PRIORITY SCHEDULING opcode listio sigevent signo value function
+% LocalWords:  aiocbp ENOSYS append error const EINPROGRESS fsync return ssize
+% LocalWords:  DSYNC fdatasync SYNC cancel ECANCELED ALLDONE CANCELED suspend
+% LocalWords:  NOTCANCELED list nent timout sig NOP WAIT NOWAIT size count iov
+% LocalWords:  iovec vector EOPNOTSUPP EISDIR len memory mapping mapped swap NB
+% LocalWords:  mmap length prot flags off MAP FAILED ANONYMOUS EACCES SHARED SH
+% LocalWords:  only ETXTBSY DENYWRITE ENODEV filesystem EPERM EXEC noexec table
+% LocalWords:  ENFILE lenght segment violation SIGSEGV FIXED msync munmap copy
+% LocalWords:  DoS Denial Service EXECUTABLE NORESERVE LOCKED swapping stack fs
+% LocalWords:  GROWSDOWN ANON GiB POPULATE prefaulting SIGBUS fifo VME fork old
+% LocalWords:  exec atime ctime mtime mprotect addr EACCESS mremap address new
+% LocalWords:  long MAYMOVE realloc VMA virtual Ingo Molnar remap pages pgoff
+% LocalWords:  dall' fault cache linker prelink advisory discrectionary lock fl
+% LocalWords:  flock shared exclusive operation dup inode linked NFS cmd ENOLCK
+% LocalWords:  EDEADLK whence SEEK CUR type pid GETLK SETLK SETLKW all'inode HP
+% LocalWords:  switch bsd lockf mandatory SVr sgid group root mount mand TRUNC
+% LocalWords:  SVID UX Documentation