X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=prochand.tex;h=2707d0953adbed3af5c76549c856cc84564ff92a;hp=f5decd7429d5e028e978b0980fef1d5961f26f57;hb=f5e0b5be624d5a5a0b7a414ec7e957b0f86b2a56;hpb=b6d559b9429afcc0d64137913e8f16d49857a6c9 diff --git a/prochand.tex b/prochand.tex index f5decd7..2707d09 100644 --- a/prochand.tex +++ b/prochand.tex @@ -196,7 +196,7 @@ ottenuti da programma usando le funzioni: Entrambe le funzioni non riportano condizioni di errore. \end{functions} -esempi dell'uso di queste funzioni sono riportati in +\noindent esempi dell'uso di queste funzioni sono riportati in \figref{fig:proc_fork_code}, nel programma di esempio \file{ForkTest.c}. Il fatto che il \acr{pid} sia un numero univoco per il sistema lo rende il @@ -1135,7 +1135,7 @@ indicato dal parametro \var{path}, che viene interpretato come il \begin{figure}[htb] \centering - \includegraphics[width=13cm]{img/exec_rel.eps} + \includegraphics[width=13cm]{img/exec_rel} \caption{La interrelazione fra le sei funzioni della famiglia \func{exec}} \label{fig:proc_exec_relat} \end{figure} @@ -1331,8 +1331,7 @@ possono essere letti dal processo attraverso delle opportune funzioni, i cui prototipi sono i seguenti: \begin{functions} \headdecl{unistd.h} - \headdecl{sys/types.h} - + \headdecl{sys/types.h} \funcdecl{uid\_t getuid(void)} restituisce il \textit{real user ID} del processo corrente. @@ -1345,7 +1344,7 @@ prototipi sono i seguenti: \funcdecl{gid\_t getegid(void)} restituisce l'\textit{effective group ID} del processo corrente. - Queste funzioni non riportano condizioni di errore. + \noindent Queste funzioni non riportano condizioni di errore. \end{functions} In generale l'uso di privilegi superiori deve essere limitato il più @@ -1690,11 +1689,11 @@ non possono essere interrotte (o subire interferenze pericolose) da altri processi. Nel caso dei segnali invece la situazione è molto più delicata, in quanto lo -stesso processo può essere interrotto in qualunque momento, e le operazioni di -un eventuale \textit{signal handler} saranno compiute nello stesso spazio di -indirizzi. Per questo anche solo il solo accesso o l'assegnazione di una -variabile possono non essere più operazioni atomiche (torneremo su questi -aspetti in \secref{sec:sign_xxx}). +stesso processo, e pure alcune system call, possono essere interrotti in +qualunque momento, e le operazioni di un eventuale \textit{signal handler} +sono compiute nello stesso spazio di indirizzi del processo. Per questo anche +solo il solo accesso o l'assegnazione di una variabile possono non essere più +operazioni atomiche (torneremo su questi aspetti in \secref{sec:sign_xxx}). In questo caso il sistema provvede un tipo di dato, il \type{sig\_atomic\_t}, il cui accesso è assicurato essere atomico. In pratica comunque si può @@ -1728,9 +1727,9 @@ condivise siano opportunamente protette da meccanismi di sincronizzazione Un caso particolare di \textit{race condition} sono poi i cosiddetti \textit{deadlock}; l'esempio tipico è quello di un flag di ``occupazione'' che viene rilasciato da un evento asincrono fra il controllo (in cui viene trovato -occupato) e la successiva messa in attesa, attesa che a questo punto diventerà +occupato) e la successiva messa in attesa, che a questo punto diventerà perpetua (da cui il nome di \textit{deadlock}) in quanto l'evento di sblocco -di questa è stato perso. +del flag è stato perso fra il controllo e la messa in attesa. \subsection{Le funzioni rientranti}