From 4427ee2c7ef5523c0c055102ba3f6fc159d3828f Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Sun, 2 Apr 2006 14:14:24 +0000 Subject: [PATCH] Correzioni ortografiche, nuove parole e qualche indice. --- signal.tex | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/signal.tex b/signal.tex index 17101bf..a342277 100644 --- a/signal.tex +++ b/signal.tex @@ -136,7 +136,7 @@ Si dice che il segnale viene \textsl{consegnato} al processo (dall'inglese \textit{delivered}) quando viene eseguita l'azione per esso prevista, mentre per tutto il tempo che passa fra la generazione del segnale e la sua consegna esso è detto \textsl{pendente} (o \textit{pending}). In genere questa -procedura viene effettuata dallo scheduler\itindex{scheduler} quando, +procedura viene effettuata dallo scheduler \itindex{scheduler} quando, riprendendo l'esecuzione del processo in questione, verifica la presenza del segnale nella \struct{task\_struct} e mette in esecuzione il gestore. @@ -209,7 +209,7 @@ ignorarlo). Normalmente l'invio al processo che deve ricevere il segnale è immediato ed avviene non appena questo viene rimesso in esecuzione dallo -scheduler\itindex{scheduler} che esegue l'azione specificata. Questo a meno +scheduler \itindex{scheduler} che esegue l'azione specificata. Questo a meno che il segnale in questione non sia stato bloccato prima della notifica, nel qual caso l'invio non avviene ed il segnale resta \textsl{pendente} indefinitamente. Quando lo si sblocca il segnale \textsl{pendente} sarà subito @@ -705,7 +705,7 @@ classificabili in maniera omogenea. Questi segnali sono: possono essere utili per implementare una comunicazione elementare fra processi diversi, o per eseguire a richiesta una operazione utilizzando un gestore. L'azione predefinita è di terminare il processo. -\item[\const{SIGUSR2}] È il secondo segnale a dispozione degli utenti. Vedi +\item[\const{SIGUSR2}] È il secondo segnale a disposizione degli utenti. Vedi quanto appena detto per \const{SIGUSR1}. \item[\const{SIGWINCH}] Il nome sta per \textit{window (size) change} e viene generato in molti sistemi (GNU/Linux compreso) quando le dimensioni (in @@ -939,7 +939,7 @@ comportamento della versione originale della funzione, il cui uso per i motivi visti in sez.~\ref{sec:sig_semantics}, può essere ottenuto chiamando \func{sysv\_signal}, una volta che si sia definita la macro \macro{\_XOPEN\_SOURCE}. In generale, per evitare questi problemi, l'uso di -\func{signal} (ed ogni eventuale ridefinizine della stessa) è da evitare; +\func{signal} (ed ogni eventuale ridefinizione della stessa) è da evitare; tutti i nuovi programmi dovrebbero usare \func{sigaction}. È da tenere presente che, seguendo lo standard POSIX, il comportamento di un @@ -1375,16 +1375,17 @@ Chiaramente, anche se il tempo pu nanosecondo, la precisione di \func{nanosleep} è determinata dalla risoluzione temporale del timer di sistema. Perciò la funzione attenderà comunque il tempo specificato, ma prima che il processo possa tornare ad essere eseguito -occorrerà almeno attendere il successivo giro di scheduler\itindex{scheduler} +occorrerà almeno attendere il successivo giro di scheduler \itindex{scheduler} e cioè un tempo che a seconda dei casi può arrivare fino a 1/\const{HZ}, (sempre che il sistema sia scarico ed il processa venga immediatamente rimesso in esecuzione); per questo motivo il valore restituito in \param{rem} è sempre arrotondato al multiplo successivo di 1/\const{HZ}. In realtà è possibile ottenere anche pause più precise del centesimo di -secondo usando politiche di scheduling real-time come \const{SCHED\_FIFO} o -\const{SCHED\_RR}; in tal caso infatti il meccanismo di scheduling ordinario -viene evitato, e si raggiungono pause fino ai 2~ms con precisioni del $\mu$s. +secondo usando politiche di \itindex{scheduler} scheduling real-time come +\const{SCHED\_FIFO} o \const{SCHED\_RR}; in tal caso infatti il meccanismo di +\itindex{scheduler} scheduling ordinario viene evitato, e si raggiungono pause +fino ai 2~ms con precisioni del $\mu$s. @@ -2450,7 +2451,7 @@ immediatamente; in questo modo si pu dover essere bloccati qualora esso non sia presente. L'uso di queste funzioni è principalmente associato alla gestione dei segnali -com i thread. In genere esse vengono chiamate dal thread incaricato della +con i thread. In genere esse vengono chiamate dal thread incaricato della gestione, che al ritorno della funzione esegue il codice che usualmente sarebbe messo nel gestore, per poi ripetere la chiamata per mettersi in attesa del segnale successivo. Questo ovviamente comporta che non devono essere @@ -2464,3 +2465,36 @@ dedicato alla gestione, che potrebbe riceverlo fra due chiamate successive. %%% mode: latex %%% TeX-master: "gapil" %%% End: + +% LocalWords: kernel POSIX timer shell control ctrl kill raise signal handler +% LocalWords: reliable unreliable fig race condition sez struct process table +% LocalWords: delivered pending scheduler sigpending l'I suspend SIGKILL wait +% LocalWords: SIGSTOP sigaction waitpid dump stack debugger nell'header NSIG +% LocalWords: tab BSD SUSv SIGHUP PL Hangup SIGINT Interrupt SIGQUIT Quit AEF +% LocalWords: SIGILL SIGABRT abort SIGFPE SIGSEGV SIGPIPE SIGALRM alarm SIGUSR +% LocalWords: SIGTERM SIGCHLD SIGCONT SIGTSTP SIGTTIN SIGTTOU SIGBUS bad SL of +% LocalWords: memory access SIGPOLL Pollable event Sys SIGIO SIGPROF profiling +% LocalWords: SIGSYS SVID SIGTRAP breakpoint SIGURG urgent socket Virtual IOT +% LocalWords: clock SIGXCPU SIGXFSZ SIGIOT trap SIGEMT SIGSTKFLT SIGCLD SIGPWR +% LocalWords: SIGINFO SIGLOST lock NFS SIGWINCH Sun SIGUNUSED fault point heap +% LocalWords: exception l'overflow illegal instruction overflow segment error +% LocalWords: violation system call interrupt INTR hang SIGVTALRM virtual SUSP +% LocalWords: profilazione fcntl descriptor sleep interactive Broken FIFO lost +% LocalWords: EPIPE Resource advisory client limit exceeded size window change +% LocalWords: strsignal psignal SOURCE strerror string char int signum perror +% LocalWords: void sig const sys siglist L'array decr fork exec DFL IGN ioctl +% LocalWords: EINTR glibc TEMP FAILURE RETRY expr multitasking SVr sighandler +% LocalWords: ERR libc bsd sysv XOPEN EINVAL pid errno ESRCH EPERM getpid init +% LocalWords: killpg pidgrp group unistd unsigned seconds all' setitimer which +% LocalWords: itimerval value ovalue EFAULT ITIMER it interval timeval ms VIRT +% LocalWords: getitimer stdlib stream atexit exit usleep long usec nanosleep +% LocalWords: timespec req rem HZ scheduling SCHED RR SigHand forktest WNOHANG +% LocalWords: deadlock longjmp setjmp sigset sigemptyset sigfillset sigaddset +% LocalWords: sigdelset sigismember act oldact restorer mask NOCLDSTOP ONESHOT +% LocalWords: RESETHAND RESTART NOMASK NODEFER ONSTACK sigcontext union signo +% LocalWords: siginfo bits uid addr fd inline like blocked atomic sigprocmask +% LocalWords: how oldset BLOCK UNBLOCK SETMASK sigsuspend sigaltstack malloc +% LocalWords: SIGSTKSZ MINSIGSTKSZ ss oss ENOMEM flags DISABLE sp setrlimit +% LocalWords: RLIMIT rlim sigsetjmp siglongjmp sigjmp buf env savesigs jmp ptr +% LocalWords: SIGRTMIN SIGRTMAX sigval sival sigevent sigqueue EAGAIN sysctl +% LocalWords: QUEUE thread sigwait sigwaitinfo sigtimedwait info -- 2.30.2