X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=signal.tex;h=59ef5454a396e98faae4daad8fce8130888a357e;hp=8af17a65129cf0e5ddab2fa4cf41b6580f5fccd9;hb=fa15a3f1ecd64efd8440e46d398fd9976abc3d25;hpb=a377dc5a0a0638f0847f27b66f0b095609777320 diff --git a/signal.tex b/signal.tex index 8af17a6..59ef545 100644 --- a/signal.tex +++ b/signal.tex @@ -1,6 +1,6 @@ %% signal.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", @@ -322,7 +322,7 @@ Linux anche a seconda della architettura hardware e della versione del kernel. Quelli che invece sono stati, almeno a grandi linee, standardizzati, sono i nomi dei segnali e le costanti di preprocessore che li identificano, che sono -tutte nella forma \texttt{SIG\textsl{NOME}}, e sono queste che devono essere +tutte nella forma \texttt{SIG\textsl{nome}}, e sono queste che devono essere usate nei programmi. Come tutti gli altri nomi e le funzioni che concernono i segnali, esse sono definite nell'header di sistema \headfile{signal.h}. @@ -1287,8 +1287,13 @@ standard POSIX, prima della terminazione tutti i file aperti e gli stream saranno chiusi ed i buffer scaricati su disco. Non verranno invece eseguite le eventuali funzioni registrate con \func{atexit} e \func{on\_exit}. +% TODO trattare pidfd_send_signal, aggiunta con il kernel 5.1 (vedi +% https://lwn.net/Articles/783052/) per mandare segnali a processi senza dover +% usare un PID, vedi anche https://lwn.net/Articles/773459/, +% https://git.kernel.org/linus/3eb39f47934f - +% TODO c'è pure pidfd_open() (vedi https://lwn.net/Articles/789023/) per +% ottere un pid fd pollabile aggiunta con il kernel 5.3 \subsection{Le funzioni di allarme ed i \textit{timer}} \label{sec:sig_alarm_abort} @@ -1333,11 +1338,11 @@ processo tre diversi timer: corrisponde al \textit{clock time}). La scadenza di questo timer provoca l'emissione di \signal{SIGALRM}; \item un \textit{virtual timer} che calcola il tempo di processore usato dal - processo in user space (che corrisponde all'\textit{user time}). La scadenza - di questo timer provoca l'emissione di \signal{SIGVTALRM}; + processo in \textit{user space} (che corrisponde all'\textit{user time}). La + scadenza di questo timer provoca l'emissione di \signal{SIGVTALRM}; \item un \textit{profiling timer} che calcola la somma dei tempi di processore - utilizzati direttamente dal processo in user space, e dal kernel nelle - \textit{system call} ad esso relative (che corrisponde a quello che in + utilizzati direttamente dal processo in \textit{user space}, e dal kernel + nelle \textit{system call} ad esso relative (che corrisponde a quello che in sez.~\ref{sec:sys_unix_time} abbiamo chiamato \textit{processor time}). La scadenza di questo timer provoca l'emissione di \signal{SIGPROF}. \end{itemize*} @@ -3048,11 +3053,15 @@ tab.~\ref{tab:sig_timer_clockid_types}. % https://git.kernel.org/linus/d6ed449afdb38f89a7b38ec50e367559e1b8f71f % change reverted, vedi: https://lwn.net/Articles/752757/ - % NOTE: dal 3.0 anche i cosiddetti Posix Alarm Timers, con % CLOCK_REALTIME_ALARM vedi http://lwn.net/Articles/429925/ % TODO: dal 3.10 anche CLOCK_TAI +% TODO seguire l'evoluzione delle nuove syscall per il problema del 2038, +% iniziate ad entrare nel kernel dal 5.1, vedi +% https://lwn.net/Articles/776435/, https://lwn.net/Articles/782511/, +% https://git.kernel.org/linus/b1b988a6a035 + Per poter utilizzare queste funzionalità la \acr{glibc} richiede che la macro \macro{\_POSIX\_C\_SOURCE} sia definita ad un valore maggiore o uguale di \texttt{199309L} (vedi sez.~\ref{sec:intro_gcc_glibc_std}), inoltre i @@ -3648,6 +3657,9 @@ In questo ultimo paragrafo esamineremo le rimanenti funzioni di gestione dei segnali non descritte finora, relative agli aspetti meno utilizzati e più ``\textsl{esoterici}'' della interfaccia. +% TODO: trattare (qui?) pidfd_send_signal() introdotta con il kernel 5.1 vedi +% https://lwn.net/Articles/784831/ e https://lwn.net/Articles/773459/ + La prima di queste funzioni è la funzione di sistema \funcd{sigpending}, anch'essa introdotta dallo standard POSIX.1, il suo prototipo è: