%% signal.tex
%%
-%% Copyright (C) 2000-2010 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2011 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",
tutto indipendente dalla frequenza scelta per il timer di sistema che governa
lo \textit{scheduler};\footnote{normalmente si possono ottenere precisioni
fino al microsecondo, andando molto oltre in caso di hardware dedicato.} per
-questo lo standard POSIX ha previsto una serie di nuove funzioni relative a a
-quelli che vengono chiamati ``\textsl{orologi} \textit{real-time}'', in grado
-di supportare risoluzioni fino al nanosecondo. Inoltre le CPU più moderne sono
-dotate a loro volta di contatori ad alta definizione che consentono una grande
-accuratezza nella misura del tempo da esse dedicato all'esecuzione di un
-processo.
+questo lo standard POSIX.1-2001 ha previsto una serie di nuove funzioni
+relative a quelli che vengono chiamati ``\textsl{orologi}
+\textit{real-time}'', in grado di supportare risoluzioni fino al
+nanosecondo. Inoltre le CPU più moderne sono dotate a loro volta di contatori
+ad alta definizione che consentono una grande accuratezza nella misura del
+tempo da esse dedicato all'esecuzione di un processo.
Per usare queste funzionalità ed ottenere risoluzioni temporali più accurate,
occorre però un opportuno supporto da parte del kernel, ed i cosiddetti
\footnotetext{specifico di Linux, introdotto a partire dal kernel 2.6.28, non
previsto da POSIX e non presente in altri sistemi unix-like.}
+% TODO, dal 2.6.39 anche CLOCK_BOOTTIME, vedi http://lwn.net/Articles/432757/
+
Per poter utilizzare queste funzionalità le \acr{glibc} richiedono 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
\end{functions}
+% TODO, dal 2.6.39 aggiunta clock_adjtime
+
Con l'introduzione degli orologi ad alta risoluzione è divenuto possibile
ottenere anche una gestione più avanzata degli allarmi; abbiamo già visto in
sez.~\ref{sec:sig_alarm_abort} come l'interfaccia di \func{setitimer} derivata
\itindex{thread} \textit{thread} che esegue la
funzione di notifica specificata da
\var{sigev\_notify\_function} con argomento
- \var{sigev\_value}, se diverso da \val{NULL} il
- \textit{thread} viene creato con gli attributi
- specificati da \var{sigev\_notify\_attribute}.\\
- \footnotemark
+ \var{sigev\_value}. Se questo è diverso da
+ \val{NULL}, il \textit{thread} viene creato con
+ gli attributi specificati da
+ \var{sigev\_notify\_attribute}.\footnotemark\\
\const{SIGEV\_THREAD\_ID}& Invia la notifica come segnale (con le stesse
modalità di \const{SIGEV\_SIGNAL}) che però viene
recapitato al \textit{thread} indicato dal campo
\label{tab:sigevent_sigev_notify}
\end{table}
-\footnotetext{questa funzionalità è considerata un esempio di pessima
- implementazione di una interfaccia, richiesta dallo standard POSIX, ma da
- evitare totalmente, causa la possibilità di creare disservizi generando una
- gran quantità di processi, tanto che ne è stata richiesta addirittura la
- rimozione.}
+\footnotetext{nel caso dei \textit{timer} questa funzionalità è considerata un
+ esempio di pessima implementazione di una interfaccia, richiesta dallo
+ standard POSIX, ma da evitare totalmente, a causa della possibilità di
+ creare disservizi generando una gran quantità di processi, tanto che ne è
+ stata richiesta addirittura la rimozione.}
Nel caso di \func{timer\_create} occorrerà passare alla funzione come secondo
argomento l'indirizzo di una di queste strutture per indicare le modalità con