Aggiornamento date copyright più TODO 5.3
[gapil.git] / ipc.tex
diff --git a/ipc.tex b/ipc.tex
index bb1c18e02e17ab0b570e12fc70a16f367976f2ab..f50eeacf5de91bf3e075ddbcbf35d5ecf1fb3da4 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -1,6 +1,6 @@
 %% ipc.tex
 %%
 %% ipc.tex
 %%
-%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2019 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",
 %% 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",
@@ -221,9 +221,9 @@ Per realizzare quanto voluto useremo in sequenza i programmi \cmd{barcode} e
 \cmd{gs}, il primo infatti è in grado di generare immagini PostScript di
 codici a barre corrispondenti ad una qualunque stringa, mentre il secondo
 serve per poter effettuare la conversione della stessa immagine in formato
 \cmd{gs}, il primo infatti è in grado di generare immagini PostScript di
 codici a barre corrispondenti ad una qualunque stringa, mentre il secondo
 serve per poter effettuare la conversione della stessa immagine in formato
-JPEG. Usando una \textit{pipe} potremo inviare l'output del primo sull'input del
-secondo, secondo lo schema mostrato in fig.~\ref{fig:ipc_pipe_use}, in cui la
-direzione del flusso dei dati è data dalle frecce continue.
+JPEG. Usando una \textit{pipe} potremo inviare l'output del primo sull'input
+del secondo, secondo lo schema mostrato in fig.~\ref{fig:ipc_pipe_use}, in cui
+la direzione del flusso dei dati è data dalle frecce continue.
 
 Si potrebbe obiettare che sarebbe molto più semplice salvare il risultato
 intermedio su un file temporaneo. Questo però non tiene conto del fatto che un
 
 Si potrebbe obiettare che sarebbe molto più semplice salvare il risultato
 intermedio su un file temporaneo. Questo però non tiene conto del fatto che un
@@ -1397,7 +1397,7 @@ riguarda gli altri campi invece:
 %   primo e ultimo messaggio sono inizializzati a \val{NULL} e
 %   \var{msg\_cbytes}, che esprime la dimensione in byte dei messaggi presenti è
 %   inizializzato a zero. Questi campi sono ad uso interno dell'implementazione
 %   primo e ultimo messaggio sono inizializzati a \val{NULL} e
 %   \var{msg\_cbytes}, che esprime la dimensione in byte dei messaggi presenti è
 %   inizializzato a zero. Questi campi sono ad uso interno dell'implementazione
-%   e non devono essere utilizzati da programmi in user space).
+%   e non devono essere utilizzati da programmi in \textit{user space}).
 \end{itemize*}
 
 Una volta creata una coda di messaggi le operazioni di controllo vengono
 \end{itemize*}
 
 Una volta creata una coda di messaggi le operazioni di controllo vengono
@@ -2140,7 +2140,7 @@ i seguenti:
   \param{semnum} dell'insieme \param{semid} (corrispondente al campo
   \var{sempid} di \struct{sem}). Va invocata con tre argomenti.  Occorre avere
   il permesso di lettura.
   \param{semnum} dell'insieme \param{semid} (corrispondente al campo
   \var{sempid} di \struct{sem}). Va invocata con tre argomenti.  Occorre avere
   il permesso di lettura.
-\item[\constd{GETVAL}] Restituisce come valore di ritorno della funzione il il
+\item[\constd{GETVAL}] Restituisce come valore di ritorno della funzione il 
   valore corrente del semaforo \param{semnum} dell'insieme \param{semid}
   (corrispondente al campo \var{semval} di \struct{sem}). Va invocata con tre
   argomenti.  Occorre avere il permesso di lettura.
   valore corrente del semaforo \param{semnum} dell'insieme \param{semid}
   (corrispondente al campo \var{semval} di \struct{sem}). Va invocata con tre
   argomenti.  Occorre avere il permesso di lettura.
@@ -2304,7 +2304,7 @@ un valore nullo di \var{sem\_num}.
 
 Il campo \var{sem\_flg} è un flag, mantenuto come maschera binaria, per il
 quale possono essere impostati i due valori \const{IPC\_NOWAIT} e
 
 Il campo \var{sem\_flg} è un flag, mantenuto come maschera binaria, per il
 quale possono essere impostati i due valori \const{IPC\_NOWAIT} e
-\constd{SEM\_UNDO}.  Impostando \const{IPC\_NOWAIT} si fa si che in tutti quei
+\constd{SEM\_UNDO}.  Impostando \const{IPC\_NOWAIT} si fa sì che in tutti quei
 casi in cui l'esecuzione di una operazione richiederebbe di porre il processo
 vada nello stato di \textit{sleep}, invece di bloccarsi \func{semop} ritorni
 immediatamente (abortendo così le eventuali operazioni restanti) con un errore
 casi in cui l'esecuzione di una operazione richiederebbe di porre il processo
 vada nello stato di \textit{sleep}, invece di bloccarsi \func{semop} ritorni
 immediatamente (abortendo così le eventuali operazioni restanti) con un errore
@@ -2780,10 +2780,9 @@ si ha a cuore la portabilità. Questi comandi aggiuntivi sono:
   salvata su disco dal meccanismo della memoria virtuale. Come illustrato in
   sez.~\ref{sec:proc_mem_lock} fino al kernel 2.6.9 solo l'amministratore
   poteva utilizzare questa capacità,\footnote{che richiedeva la
   salvata su disco dal meccanismo della memoria virtuale. Come illustrato in
   sez.~\ref{sec:proc_mem_lock} fino al kernel 2.6.9 solo l'amministratore
   poteva utilizzare questa capacità,\footnote{che richiedeva la
-    \textit{capability} \const{CAP\_IPC\_LOCK}.} a partire dal dal kernel
-  2.6.10 anche gli utenti normali possono farlo fino al limite massimo
-  determinato da \const{RLIMIT\_MEMLOCK} (vedi
-  sez.~\ref{sec:sys_resource_limit}).
+    \textit{capability} \const{CAP\_IPC\_LOCK}.} a partire dal kernel 2.6.10
+  anche gli utenti normali possono farlo fino al limite massimo determinato da
+  \const{RLIMIT\_MEMLOCK} (vedi sez.~\ref{sec:sys_resource_limit}).
 \item[\constd{SHM\_UNLOCK}] Disabilita il \textit{memory locking} sul segmento
   di memoria condivisa.  Fino al kernel 2.6.9 solo l'amministratore poteva
   utilizzare questo comando in corrispondenza di un segmento da lui bloccato.
 \item[\constd{SHM\_UNLOCK}] Disabilita il \textit{memory locking} sul segmento
   di memoria condivisa.  Fino al kernel 2.6.9 solo l'amministratore poteva
   utilizzare questo comando in corrispondenza di un segmento da lui bloccato.
@@ -2869,9 +2868,9 @@ riferiti all'indirizzo di partenza del segmento).
 
 L'argomento \param{shmflg} permette di cambiare il comportamento della
 funzione; esso va specificato come maschera binaria, i bit utilizzati al
 
 L'argomento \param{shmflg} permette di cambiare il comportamento della
 funzione; esso va specificato come maschera binaria, i bit utilizzati al
-momento sono sono tre e sono identificati dalle costanti \const{SHM\_RND},
+momento sono tre e sono identificati dalle costanti \const{SHM\_RND},
 \const{SHM\_RDONLY} e \const{SHM\_REMAP} che vanno combinate con un OR
 \const{SHM\_RDONLY} e \const{SHM\_REMAP} che vanno combinate con un OR
-aritmetico.  
+aritmetico.
 
 Specificando \constd{SHM\_RND} si evita che \func{shmat} ritorni un errore
 quando \param{shmaddr} non è allineato ai confini di una pagina. Si può quindi
 
 Specificando \constd{SHM\_RND} si evita che \func{shmat} ritorni un errore
 quando \param{shmaddr} non è allineato ai confini di una pagina. Si può quindi
@@ -3554,6 +3553,8 @@ sez.~\ref{sec:ipc_sysv_shm} che possa restituisca i risultati via rete.
 % TODO: con il kernel 3.17 è stata introdotta una fuunzionalità di
 % sigillatura dei file mappati in memoria e la system call memfd
 % (capire se va messo qui o altrove) vedi: http://lwn.net/Articles/593918/
 % TODO: con il kernel 3.17 è stata introdotta una fuunzionalità di
 % sigillatura dei file mappati in memoria e la system call memfd
 % (capire se va messo qui o altrove) vedi: http://lwn.net/Articles/593918/
+% col 5.1 aggiunta a memfd F_SEAL_FUTURE_WRITE, vedi 
+% https://git.kernel.org/linus/ab3948f58ff8 e https://lwn.net/Articles/782511/
 
 
 \section{L'intercomunicazione fra processi di POSIX}
 
 
 \section{L'intercomunicazione fra processi di POSIX}
@@ -4399,9 +4400,9 @@ sincronizzazione completamente nuovo, basato sui cosiddetti \textit{futex} (la
 sigla sta per \textit{fast user mode mutex}) con il quale è stato possibile
 implementare una versione nativa dei semafori POSIX.  Grazie a questo con i
 kernel della serie 2.6 e le nuove versioni della \acr{glibc} che usano questa
 sigla sta per \textit{fast user mode mutex}) con il quale è stato possibile
 implementare una versione nativa dei semafori POSIX.  Grazie a questo con i
 kernel della serie 2.6 e le nuove versioni della \acr{glibc} che usano questa
-nuova infrastruttura per quella che viene che viene chiamata \textit{New Posix
-  Thread Library}, sono state implementate anche tutte le funzioni
-dell'interfaccia dei semafori POSIX.
+nuova infrastruttura per quella che viene chiamata \textit{New Posix Thread
+  Library}, sono state implementate anche tutte le funzioni dell'interfaccia
+dei semafori POSIX.
 
 Anche in questo caso è necessario appoggiarsi alla libreria per le estensioni
 \textit{real-time} \texttt{librt}, questo significa che se si vuole utilizzare
 
 Anche in questo caso è necessario appoggiarsi alla libreria per le estensioni
 \textit{real-time} \texttt{librt}, questo significa che se si vuole utilizzare