From: Simone Piccardi Date: Mon, 3 Feb 2014 18:31:20 +0000 (+0000) Subject: Revisione e portare tutte le figure ad inconsolata per uniformità con X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=commitdiff_plain;h=8fad76a42d4fdf71d9a90d425a70af66827fbf9e;hp=3495ff8ace2c28b15ecfaece54cbda983974869b Revisione e portare tutte le figure ad inconsolata per uniformità con il font usato da latex --- diff --git a/fileadv.tex b/fileadv.tex index 8b979cb..d03ec21 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -94,8 +94,8 @@ In Linux sono disponibili due interfacce per utilizzare l'\textit{advisory \func{flock}, la seconda è quella recepita dallo standard POSIX.1 (che è derivata dall'interfaccia usata in System V), che è basata sulla funzione \func{fcntl}. I \textit{file lock} sono implementati in maniera completamente -indipendente nelle due interfacce,\footnote{in realtà con Linux questo avviene - solo dalla serie 2.0 dei kernel.} che pertanto possono coesistere senza +indipendente nelle due interfacce (in realtà con Linux questo avviene solo +dalla serie 2.0 dei kernel) che pertanto possono coesistere senza interferenze. Entrambe le interfacce prevedono la stessa procedura di funzionamento: si @@ -151,18 +151,21 @@ La prima interfaccia per il \textit{file locking}, quella derivata da BSD, permette di eseguire un blocco solo su un intero file; la funzione usata per richiedere e rimuovere un \textit{file lock} è \funcd{flock}, ed il suo prototipo è: -\begin{prototype}{sys/file.h}{int flock(int fd, int operation)} - - Applica o rimuove un \textit{file lock} sul file \param{fd}. - - \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} + +\begin{funcproto}{ +\fhead{sys/file.h} +\fdecl{int flock(int fd, int operation)} +\fdesc{Applica o rimuove un \textit{file lock}.} +} + +{La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual + caso \var{errno} assumerà uno dei valori: + \begin{errlist} \item[\errcode{EWOULDBLOCK}] il file ha già un blocco attivo, e si è specificato \const{LOCK\_NB}. - \end{errlist} - } -\end{prototype} + \end{errlist} +} +\end{funcproto} La funzione può essere usata per acquisire o rilasciare un \textit{file lock} a seconda di quanto specificato tramite il valore dell'argomento @@ -195,7 +198,7 @@ ovviamente non possono essere usati insieme. Se con essi si specifica anche \const{LOCK\_NB} la funzione non si bloccherà qualora il \textit{file lock} non possa essere acquisito, ma ritornerà subito con un errore di \errcode{EWOULDBLOCK}. Per rilasciare un \textit{file lock} si dovrà invece -usare direttamente const{LOCK\_UN}. +usare direttamente \const{LOCK\_UN}. Si tenga presente che non esiste una modalità per eseguire atomicamente un cambiamento del tipo di blocco (da \textit{shared lock} a \textit{esclusive @@ -236,7 +239,7 @@ possono avere due processi diversi che aprono lo stesso file. \begin{figure}[!htb] \centering - \includegraphics[width=15.5cm]{img/file_flock} + \includegraphics[width=14cm]{img/file_flock} \caption{Schema dell'architettura del \textit{file locking}, nel caso particolare del suo utilizzo da parte dalla funzione \func{flock}.} \label{fig:file_flock_struct} diff --git a/gapil.tex b/gapil.tex index d73b1b0..c345e83 100644 --- a/gapil.tex +++ b/gapil.tex @@ -54,14 +54,14 @@ inner=2.5cm,outer=1.8cm,bottom=3.3cm,top=2.3cm]{geometry} {frame=lines,framerule=0.5mm,framesep=2mm,xleftmargin=1cm,xrightmargin=1cm,fontsize=\footnotesize} \DefineVerbatimEnvironment{Terminal}{Verbatim} -{xleftmargin=\parindent,xrightmargin=\parindent,fontfamily=courier,fontsize=\footnotesize} +{xleftmargin=\parindent,xrightmargin=\parindent,fontsize=\footnotesize} \DefineVerbatimEnvironment{Command}{Verbatim} {xleftmargin=\parindent,xrightmargin=\parindent,fontseries=b, -fontfamily=courier,fontsize=\footnotesize} +fontsize=\footnotesize} \DefineVerbatimEnvironment{Console}{Verbatim} -{commandchars=\\\{\},xleftmargin=\parindent,xrightmargin=\parindent,fontfamily=courier,fontsize=\footnotesize} +{commandchars=\\\{\},xleftmargin=\parindent,xrightmargin=\parindent,fontsize=\footnotesize} \usepackage[bookmarks=true,plainpages=false,pdfpagelabels, @@ -79,7 +79,14 @@ hyperfootnotes=false]{hyperref} \usepackage{listings} \lstloadlanguages{C++} \usepackage{color} + +\providecommand{\defaultdesc}{% +\desclabelstyle{\pushlabel}% +\renewcommand{\makelabel}[1]{##1}% +\setlength{\labelwidth}{0pt}% +} \usepackage{mdwlist} + \usepackage{boxedminipage} \usepackage{multirow} \usepackage{longtable} diff --git a/img/addrinfo_list.dia b/img/addrinfo_list.dia index fa5937f..7272564 100644 Binary files a/img/addrinfo_list.dia and b/img/addrinfo_list.dia differ diff --git a/img/fifoserver.dia b/img/fifoserver.dia index 93b3496..87f0874 100644 Binary files a/img/fifoserver.dia and b/img/fifoserver.dia differ diff --git a/img/file_flock.dia b/img/file_flock.dia index 5a10b25..880715e 100644 Binary files a/img/file_flock.dia and b/img/file_flock.dia differ diff --git a/img/file_posix_lock.dia b/img/file_posix_lock.dia index 89a610a..1ed9337 100644 Binary files a/img/file_posix_lock.dia and b/img/file_posix_lock.dia differ diff --git a/img/filedup.dia b/img/filedup.dia index 7230f1a..de56ca4 100644 Binary files a/img/filedup.dia and b/img/filedup.dia differ diff --git a/img/filemultacc.dia b/img/filemultacc.dia index 2591109..87d0589 100644 Binary files a/img/filemultacc.dia and b/img/filemultacc.dia differ diff --git a/img/fileshar.dia b/img/fileshar.dia index 01d2f4a..a155791 100644 Binary files a/img/fileshar.dia and b/img/fileshar.dia differ diff --git a/img/mmap_boundary.dia b/img/mmap_boundary.dia index 8160a80..a2010c1 100644 Binary files a/img/mmap_boundary.dia and b/img/mmap_boundary.dia differ diff --git a/img/mmap_exceed.dia b/img/mmap_exceed.dia index 3b53196..4cdb795 100644 Binary files a/img/mmap_exceed.dia and b/img/mmap_exceed.dia differ diff --git a/img/mqstruct.dia b/img/mqstruct.dia index f3ebe0a..b86521c 100644 Binary files a/img/mqstruct.dia and b/img/mqstruct.dia differ diff --git a/img/pipe.dia b/img/pipe.dia index 801cbc6..835b226 100644 Binary files a/img/pipe.dia and b/img/pipe.dia differ diff --git a/img/pipefork.dia b/img/pipefork.dia index e64a081..9b38fda 100644 Binary files a/img/pipefork.dia and b/img/pipefork.dia differ diff --git a/img/pipeuse.dia b/img/pipeuse.dia index e3f62ae..d2bfe98 100644 Binary files a/img/pipeuse.dia and b/img/pipeuse.dia differ diff --git a/img/procfile.dia b/img/procfile.dia index ff72ab4..e17fedf 100644 Binary files a/img/procfile.dia and b/img/procfile.dia differ diff --git a/img/semtruct.dia b/img/semtruct.dia index 80856c3..92304e4 100644 Binary files a/img/semtruct.dia and b/img/semtruct.dia differ diff --git a/img/splice_copy.dia b/img/splice_copy.dia index 5c57b6f..b396471 100644 Binary files a/img/splice_copy.dia and b/img/splice_copy.dia differ diff --git a/img/task_struct.dia b/img/task_struct.dia index a28e49f..39d2138 100644 Binary files a/img/task_struct.dia and b/img/task_struct.dia differ diff --git a/img/tcp_client_early_abort.dia b/img/tcp_client_early_abort.dia index 72ca2f8..990968d 100644 Binary files a/img/tcp_client_early_abort.dia and b/img/tcp_client_early_abort.dia differ diff --git a/img/tcp_close.dia b/img/tcp_close.dia index 94b132e..f644c2b 100644 Binary files a/img/tcp_close.dia and b/img/tcp_close.dia differ diff --git a/img/tcp_connection.dia b/img/tcp_connection.dia index e827544..ebdc15d 100644 Binary files a/img/tcp_connection.dia and b/img/tcp_connection.dia differ diff --git a/img/tcp_listen_backlog.dia b/img/tcp_listen_backlog.dia index 6f8068d..0ac6e47 100644 Binary files a/img/tcp_listen_backlog.dia and b/img/tcp_listen_backlog.dia differ diff --git a/img/term_struct.dia b/img/term_struct.dia index 0643f34..268cb55 100644 Binary files a/img/term_struct.dia and b/img/term_struct.dia differ diff --git a/img/three_way_handshake.dia b/img/three_way_handshake.dia index 03578c5..d08c299 100644 Binary files a/img/three_way_handshake.dia and b/img/three_way_handshake.dia differ diff --git a/img/tty_login.dia b/img/tty_login.dia index 096e50c..5568c52 100644 Binary files a/img/tty_login.dia and b/img/tty_login.dia differ diff --git a/img/udp_connection.dia b/img/udp_connection.dia index d19630a..13dfeda 100644 Binary files a/img/udp_connection.dia and b/img/udp_connection.dia differ diff --git a/ipc.tex b/ipc.tex index 2b34ded..7e5645d 100644 --- a/ipc.tex +++ b/ipc.tex @@ -2971,7 +2971,7 @@ funzioni di libreria che ne semplifichino l'uso, automatizzando le operazioni più comuni; il codice, contenuto nel file \file{SharedMem.c}, è riportato in fig.~\ref{fig:ipc_sysv_shm_func}. -La prima funzione (\texttt{\small 3--16}) è \func{ShmCreate} che, data una +La prima funzione (\texttt{\small 1--16}) è \func{ShmCreate} che, data una chiave, crea il segmento di memoria condivisa restituendo il puntatore allo stesso. La funzione comincia (\texttt{\small 6}) con il chiamare \func{shmget}, usando il flag \const{IPC\_CREATE} per creare il segmento @@ -3084,7 +3084,7 @@ Il passo successivo (\texttt{\small 30--39}) è quello di creare gli oggetti di intercomunicazione necessari. Si inizia costruendo (\texttt{\small 30}) la chiave da usare come riferimento con il nome del programma,\footnote{si è usato un riferimento relativo alla home dell'utente, supposto che i sorgenti - di GaPiL siano stati installati direttamente in essa. Qualora si effettui + di GaPiL siano stati installati direttamente in essa; qualora si effettui una installazione diversa si dovrà correggere il programma.} dopo di che si richiede (\texttt{\small 31}) la creazione di un segmento di memoria condivisa con usando la funzione \func{ShmCreate} illustrata in precedenza (una pagina @@ -3981,13 +3981,12 @@ descriptor della coda, nel qual caso entrambe ritornano con un codice di errore di \errcode{EAGAIN}. La sola differenza fra le due funzioni è che \func{mq\_timedsend}, passato il -tempo massimo impostato con l'argomento \param{abs\_timeout}, ritorna comunque -con un errore di \errcode{ETIMEDOUT}, se invece il tempo è già scaduto al -momento della chiamata e la coda è piena la funzione ritorna -immediatamente. Il valore di \param{abs\_timeout} deve essere specificato come -tempo assoluto tramite una struttura \struct{timespec} (vedi -fig.~\ref{fig:sys_timespec_struct}) indicato in numero di secondi e -nanosecondi a partire dal 1 gennaio 1970. +tempo massimo impostato con l'argomento \param{abs\_timeout}, ritorna con un +errore di \errcode{ETIMEDOUT}, se invece il tempo è già scaduto al momento +della chiamata e la coda è piena la funzione ritorna immediatamente. Il valore +di \param{abs\_timeout} deve essere specificato come tempo assoluto tramite +una struttura \struct{timespec} (vedi fig.~\ref{fig:sys_timespec_struct}) +indicato in numero di secondi e nanosecondi a partire dal 1 gennaio 1970. Come per l'inserimento, anche per l'estrazione dei messaggi da una coda sono previste due funzioni di sistema, \funcd{mq\_receive} e diff --git a/signal.tex b/signal.tex index f6ca908..a3a2a47 100644 --- a/signal.tex +++ b/signal.tex @@ -2669,15 +2669,15 @@ segnali che presenta dei significativi miglioramenti,\footnote{questa versione 2.1 della \acr{glibc}.} in particolare sono stati superati tre limiti fondamentali dei segnali classici: \begin{basedescript}{\desclabelwidth{1cm}\desclabelstyle{\nextlinelabel}} -\item[I segnali non sono accumulati] +\item[\textbf{I segnali non sono accumulati}] se più segnali vengono generati prima dell'esecuzione di un gestore questo sarà eseguito una sola volta, ed il processo non sarà in grado di accorgersi di quante volte l'evento che ha generato il segnale è accaduto. -\item[I segnali non trasportano informazione] +\item[\textbf{I segnali non trasportano informazione}] i segnali classici non prevedono altra informazione sull'evento che li ha generati se non il fatto che sono stati emessi (tutta l'informazione che il kernel associa ad un segnale è il suo numero). -\item[I segnali non hanno un ordine di consegna] +\item[\textbf{I segnali non hanno un ordine di consegna}] l'ordine in cui diversi segnali vengono consegnati è casuale e non prevedibile. Non è possibile stabilire una priorità per cui la reazione a certi segnali ha la precedenza rispetto ad altri.