X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=signal.tex;h=239544ce388f423bf2f3567d2f7e23736a0f9fd3;hp=f7e8bc5f34d91b6d5d6cff6885365b9452137778;hb=b6d559b9429afcc0d64137913e8f16d49857a6c9;hpb=fadbc082a6f07263bc3bdccfbba52d1c9b6d9521 diff --git a/signal.tex b/signal.tex index f7e8bc5..239544c 100644 --- a/signal.tex +++ b/signal.tex @@ -29,8 +29,8 @@ segnale sono vari; un breve elenco di possibile cause \item una richiesta dell'utente di terminare o fermare il programma. In genere si realizza attraverso un segnale mandato dalla shell in corrispondenza della pressione di tasti del terminale come 'ctrl-c' o 'ctrl-z'. -\item l'esecuzione di una \texttt{kill} o di una \texttt{raise} da parte del - processo stesso o di un'altro (solo nel caso della \texttt{kill}). +\item l'esecuzione di una \func{kill} o di una \func{raise} da parte del + processo stesso o di un'altro (solo nel caso della \func{kill}). \end{itemize} Ciascuno di questi eventi (tranne gli ultimi due che sono controllati @@ -181,7 +181,7 @@ esempi di segnali di questo tipo sono quelli legati all'arrivo di dati di input, scadenze di un timer, terminazione di processi figli. Una richiesta esplicita significa l'uso di una chiamata di sistema (come -\texttt{kill} o \texttt{raise}) per la generazione di un segnale, cosa che +\func{kill} o \func{raise}) per la generazione di un segnale, cosa che viene fatta usualmente dalla shell quando l'utente invoca la sequenza di tasti di stop o di suspend, ma può essere pure inserita all'interno di un programma. @@ -219,7 +219,7 @@ volta per Una volta che il segnale viene notificato (che questo avvenga subito o dopo una attesa più o meno lunga) viene eseguita l'azione specificata per detto -segnale. Per alcuni segnali (\texttt{SIGKILL} e \texttt{SIGSTOP}) questa azione +segnale. Per alcuni segnali (\macro{SIGKILL} e \macro{SIGSTOP}) questa azione è fissa e non può essere cambiata, ma per tutti gli altri il programma può specificare una scelta fra le tre seguenti: @@ -231,7 +231,7 @@ specificare una scelta fra le tre seguenti: \end{itemize} Il programma può specificare queste scelte usano le due routine -\texttt{signal} e \texttt{sigaction}; se si è installato un manipolatore sarà +\func{signal} e \func{sigaction}; se si è installato un manipolatore sarà quest'ultimo a intercettare il segnale ed ad essere eseguito, e mentre viene eseguito (onde evitare race conditions) il segnale viene bloccato. @@ -249,7 +249,7 @@ l'azione standard Quando un segnale termina un processo, il padre può determinare la causa della terminazione esaminando il codice di stato riportato delle funzioni -\texttt{wait} e \texttt{waitpid} in cui è riportato anche se la causa è un +\func{wait} e \func{waitpid} in cui è riportato anche se la causa è un segnale e nel caso quale; questo è il modo in cui la shell determina i motivi della terminazione di un programma e scrive un eventuale messaggio di errore. @@ -258,7 +258,7 @@ violazioni di accesso) hanno anche la caratteristica di scrivere un file \textit{core dump} che registra lo stato del processo prima della terminazione e può essere esaminato da un debugger per investigare sulla causa dell'errore. Lo stesso avviene se i suddetti segnale vengono generati artificialmente con -una \texttt{kill}. +una \func{kill}. @@ -274,7 +274,7 @@ Per questo ad ogni tipo di segnale viene associato un nome, che corrisponde, tramite una macro di preprocessore, al suddetto numero. Sono questi nomi, che sono standardizzati e uniformi rispetto alle varie implementazioni, che si devono usare nei programmi. Tutti i nomi e le funzioni che concernono i -segnali sono definiti nell'header di sistema \texttt{signal.h}. +segnali sono definiti nell'header di sistema \file{signal.h}. Il numero totale di segnali presenti è dato dalla macro \macro{NSIG}, e dato che i numeri dei segnali sono allocati progressivamente, essa corrisponde