Qualche indicizzazione e dei TODO sui timer (su indicazioni di Alessio
authorSimone Piccardi <piccardi@gnulinux.it>
Thu, 11 Oct 2007 13:23:47 +0000 (13:23 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Thu, 11 Oct 2007 13:23:47 +0000 (13:23 +0000)
Frusciante).

prochand.tex
signal.tex
system.tex

index 7301bae11403ff1815edfe13b2c8085766f2aa72..df04b61f1d8b7991327fb2e8bb87655bd2abc73b 100644 (file)
@@ -155,7 +155,8 @@ periodico secondo la frequenza specificata dalla costante
 \const{HZ},\footnote{fino al kernel 2.4 il valore usuale di questa costante
   era 100, per tutte le architetture eccetto l'alpha, per la quale era 1000,
   nel 2.6 è stato portato a 1000 su tutte le architetture; occorre fare
 \const{HZ},\footnote{fino al kernel 2.4 il valore usuale di questa costante
   era 100, per tutte le architetture eccetto l'alpha, per la quale era 1000,
   nel 2.6 è stato portato a 1000 su tutte le architetture; occorre fare
-  attenzione a non confondere questo valore con quello dei clock tick (vedi
+  attenzione a non confondere questo valore con quello dei
+  \itindex{clock~tick} \textit{clock tick} (vedi
   sez.~\ref{sec:sys_unix_time}).} definita in \file{asm/param.h}, ed il cui
 valore è espresso in Hertz.\footnote{a partire dal kernel 2.6.21 è stato
   introdotto (a cura di Ingo Molnar) un meccanismo completamente diverso,
   sez.~\ref{sec:sys_unix_time}).} definita in \file{asm/param.h}, ed il cui
 valore è espresso in Hertz.\footnote{a partire dal kernel 2.6.21 è stato
   introdotto (a cura di Ingo Molnar) un meccanismo completamente diverso,
index 43d2fe71eb94b68a643c3d1560c786bb3587969c..3341dae969d87ab82ed22ce395f45d56de199032 100644 (file)
@@ -390,7 +390,7 @@ momento della ricezione del segnale.
     \const{SIGTRAP}  &SL & C & Trappole per un Trace/breakpoint.             \\
     \const{SIGURG}   &SLB& B & Ricezione di una \textit{urgent condition} su 
                                un socket. \\
     \const{SIGTRAP}  &SL & C & Trappole per un Trace/breakpoint.             \\
     \const{SIGURG}   &SLB& B & Ricezione di una \textit{urgent condition} su 
                                un socket. \\
-    \const{SIGVTALRM}&SLB& A & Virtual alarm clock.                          \\
+    \const{SIGVTALRM}&SLB& A & Timer di esecuzione scaduto.                  \\
     \const{SIGXCPU}  &SLB& C & Ecceduto il limite sul tempo di CPU.          \\
     \const{SIGXFSZ}  &SLB& C & Ecceduto il limite sulla dimensione dei file. \\
     \const{SIGIOT}   &L  & C & IOT trap. Sinonimo di \const{SIGABRT}.        \\
     \const{SIGXCPU}  &SLB& C & Ecceduto il limite sul tempo di CPU.          \\
     \const{SIGXFSZ}  &SLB& C & Ecceduto il limite sulla dimensione dei file. \\
     \const{SIGIOT}   &L  & C & IOT trap. Sinonimo di \const{SIGABRT}.        \\
@@ -563,16 +563,17 @@ segnali sono:
 \subsection{I segnali di allarme}
 \label{sec:sig_alarm}
 
 \subsection{I segnali di allarme}
 \label{sec:sig_alarm}
 
-Questi segnali sono generati dalla scadenza di un timer. Il loro comportamento
-predefinito è quello di causare la terminazione del programma, ma con questi
-segnali la scelta predefinita è irrilevante, in quanto il loro uso presuppone
-sempre la necessità di un gestore.  Questi segnali sono:
+Questi segnali sono generati dalla scadenza di un timer (vedi
+sez.~\ref{sec:sig_alarm_abort}). Il loro comportamento predefinito è quello di
+causare la terminazione del programma, ma con questi segnali la scelta
+predefinita è irrilevante, in quanto il loro uso presuppone sempre la
+necessità di un gestore.  Questi segnali sono:
 \begin{basedescript}{\desclabelwidth{2.0cm}}
 \item[\const{SIGALRM}] Il nome sta per \textit{alarm}. Segnale la scadenza di
   un timer misurato sul tempo reale o sull'orologio di sistema. È normalmente
   usato dalla funzione \func{alarm}.
 
 \begin{basedescript}{\desclabelwidth{2.0cm}}
 \item[\const{SIGALRM}] Il nome sta per \textit{alarm}. Segnale la scadenza di
   un timer misurato sul tempo reale o sull'orologio di sistema. È normalmente
   usato dalla funzione \func{alarm}.
 
-\item[\const{SIGVTALRM}] Il nome sta per \textit{virtual alarm}. È analogo al
+\item[\const{SIVGTALRM}] Il nome sta per \textit{virtual alarm}. È analogo al
   precedente ma segnala la scadenza di un timer sul tempo di CPU usato dal
   processo. 
 
   precedente ma segnala la scadenza di un timer sul tempo di CPU usato dal
   processo. 
 
@@ -1215,6 +1216,8 @@ significa circa 10~ms). Il sistema assicura comunque che il segnale non sar
 mai generato prima della scadenza programmata (l'arrotondamento cioè è sempre
 effettuato per eccesso).  
 
 mai generato prima della scadenza programmata (l'arrotondamento cioè è sempre
 effettuato per eccesso).  
 
+% TODO: verificare cose è successo con l'introduzione nel kernel degli htrimer
+
 Una seconda causa di potenziali ritardi è che il segnale viene generato alla
 scadenza del timer, ma poi deve essere consegnato al processo; se quest'ultimo
 è attivo (questo è sempre vero per \const{ITIMER\_VIRT}) la consegna è
 Una seconda causa di potenziali ritardi è che il segnale viene generato alla
 scadenza del timer, ma poi deve essere consegnato al processo; se quest'ultimo
 è attivo (questo è sempre vero per \const{ITIMER\_VIRT}) la consegna è
@@ -1227,7 +1230,6 @@ in cui un timer scade prima che il segnale di una precedente scadenza sia
 stato consegnato; in questo caso, per il comportamento dei segnali descritto
 in sez.~\ref{sec:sig_sigchld}, un solo segnale sarà consegnato.
 
 stato consegnato; in questo caso, per il comportamento dei segnali descritto
 in sez.~\ref{sec:sig_sigchld}, un solo segnale sarà consegnato.
 
-
 Dato che sia \func{alarm} che \func{setitimer} non consentono di leggere il
 valore corrente di un timer senza modificarlo, è possibile usare la funzione
 \funcd{getitimer}, il cui prototipo è:
 Dato che sia \func{alarm} che \func{setitimer} non consentono di leggere il
 valore corrente di un timer senza modificarlo, è possibile usare la funzione
 \funcd{getitimer}, il cui prototipo è:
@@ -2562,7 +2564,9 @@ dedicato alla gestione, che potrebbe riceverlo fra due chiamate successive.
 \subsection{La gestione avanzata delle temporizzazioni}
 \label{sec:sig_timer_adv}
 
 \subsection{La gestione avanzata delle temporizzazioni}
 \label{sec:sig_timer_adv}
 
-
+% TODO trattare i Posix timer, e le fuzioni:
+% clock_getres clock_gettime clock_settime (vedi man page)
+% timer_getoverrun, timer_gettime, timer_settime, timer_create, timer_delete
 
 
 \subsection{Le interfacce per la notifica attraverso i file descriptor}
 
 
 \subsection{Le interfacce per la notifica attraverso i file descriptor}
@@ -2574,6 +2578,9 @@ dedicato alla gestione, che potrebbe riceverlo fra due chiamate successive.
 %       http://lwn.net/Articles/245533/
 
 
 %       http://lwn.net/Articles/245533/
 
 
+
+
+
 % 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:  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
index 469e2ea10a796057aa6ca9b38c9a3c8e39e65fdf..37c608549ed3dde854c43dcd8c75bd04c53d4e51 100644 (file)
@@ -341,7 +341,8 @@ relative spiegazioni, si pu
                                   Valore massimo del tipo di dato
                                   \type{ssize\_t}.\\ 
       \texttt{\_SC\_CLK\_TCK}   & \const{CLK\_TCK} &
                                   Valore massimo del tipo di dato
                                   \type{ssize\_t}.\\ 
       \texttt{\_SC\_CLK\_TCK}   & \const{CLK\_TCK} &
-                                  Il numero di \textit{clock tick} al secondo,
+                                  Il numero di \itindex{clock~tick}
+                                  \textit{clock tick} al secondo, 
                                   cioè l'unità di misura del
                                   \itindex{process~time} \textit{process
                                     time} (vedi
                                   cioè l'unità di misura del
                                   \itindex{process~time} \textit{process
                                     time} (vedi
@@ -1816,18 +1817,19 @@ rispettivamente chiamati \itindend{calendar~time} \textit{calendar time} e
   le date di modifica dei file o quelle di avvio dei processi. Per memorizzare
   questo tempo è stato riservato il tipo primitivo \type{time\_t}.
 \item[\textit{process time}] \itindex{process~time} detto talvolta
   le date di modifica dei file o quelle di avvio dei processi. Per memorizzare
   questo tempo è stato riservato il tipo primitivo \type{time\_t}.
 \item[\textit{process time}] \itindex{process~time} detto talvolta
-  \textsl{tempo di processore}.  Viene misurato in \textit{clock tick}. Un
-  tempo questo corrispondeva al numero di interruzioni effettuate dal timer di
-  sistema, adesso lo standard POSIX richiede che esso sia pari al valore della
-  costante \const{CLOCKS\_PER\_SEC}, che deve essere definita come 1000000,
-  qualunque sia la risoluzione reale dell'orologio di sistema e la frequenza
-  delle interruzioni del timer.\footnote{quest'ultima, come accennato in
-    sez.~\ref{sec:proc_hierarchy}, è invece data dalla costante \const{HZ}.}
-  Il dato primitivo usato per questo tempo è \type{clock\_t}, che ha quindi
-  una risoluzione del microsecondo. Il numero di tick al secondo può essere
-  ricavato anche attraverso \func{sysconf} (vedi sez.~\ref{sec:sys_sysconf}).
-  Il vecchio simbolo \const{CLK\_TCK} definito in \file{time.h} è ormai
-  considerato obsoleto.
+  \textsl{tempo di processore}.  Viene misurato in \itindex{clock~tick}
+  \textit{clock tick}. Un tempo questo corrispondeva al numero di interruzioni
+  effettuate dal timer di sistema, adesso lo standard POSIX richiede che esso
+  sia pari al valore della costante \const{CLOCKS\_PER\_SEC}, che deve essere
+  definita come 1000000, qualunque sia la risoluzione reale dell'orologio di
+  sistema e la frequenza delle interruzioni del timer.\footnote{quest'ultima,
+    come accennato in sez.~\ref{sec:proc_hierarchy}, è invece data dalla
+    costante \const{HZ}.}  Il dato primitivo usato per questo tempo è
+  \type{clock\_t}, che ha quindi una risoluzione del microsecondo. Il numero
+  di \itindex{clock~tick} \textit{tick} al secondo può essere ricavato anche
+  attraverso \func{sysconf} (vedi sez.~\ref{sec:sys_sysconf}).  Il vecchio
+  simbolo \const{CLK\_TCK} definito in \file{time.h} è ormai considerato
+  obsoleto.
 \end{basedescript}
 
 In genere si usa il \itindend{calendar~time} \textit{calendar time} per
 \end{basedescript}
 
 In genere si usa il \itindend{calendar~time} \textit{calendar time} per
@@ -1895,11 +1897,11 @@ utilizzato dallo stesso; il suo prototipo 
     caso di errore.}
 \end{prototype}
 
     caso di errore.}
 \end{prototype}
 
-La funzione restituisce il tempo in tick, quindi se si vuole il tempo in
-secondi occorre dividere il risultato per la costante
-\const{CLOCKS\_PER\_SEC}.\footnote{le \acr{glibc} seguono lo standard ANSI C,
-  POSIX richiede che \const{CLOCKS\_PER\_SEC} sia definito pari a 1000000
-  indipendentemente dalla risoluzione del timer di sistema.} In genere
+La funzione restituisce il tempo in \itindex{clock~tick} \texttt{clock tick},
+quindi se si vuole il tempo in secondi occorre dividere il risultato per la
+costante \const{CLOCKS\_PER\_SEC}.\footnote{le \acr{glibc} seguono lo standard
+  ANSI C, POSIX richiede che \const{CLOCKS\_PER\_SEC} sia definito pari a
+  1000000 indipendentemente dalla risoluzione del timer di sistema.} In genere
 \type{clock\_t} viene rappresentato come intero a 32 bit, il che comporta un
 valore massimo corrispondente a circa 72 minuti, dopo i quali il contatore
 riprenderà lo stesso valore iniziale.
 \type{clock\_t} viene rappresentato come intero a 32 bit, il che comporta un
 valore massimo corrispondente a circa 72 minuti, dopo i quali il contatore
 riprenderà lo stesso valore iniziale.
@@ -1911,8 +1913,9 @@ possono essere letti attraverso la funzione \funcd{times}, il cui prototipo 
 \begin{prototype}{sys/times.h}{clock\_t times(struct tms *buf)}
   Legge in \param{buf} il valore corrente dei tempi di processore.
   
 \begin{prototype}{sys/times.h}{clock\_t times(struct tms *buf)}
   Legge in \param{buf} il valore corrente dei tempi di processore.
   
-  \bodydesc{La funzione ritorna il numero di clock tick dall'avvio del sistema
-    in caso di successo e -1 in caso di errore.}
+  \bodydesc{La funzione ritorna il numero di \itindex{clock~tick}
+    \textit{clock tick} dall'avvio del sistema in caso di successo e -1 in
+    caso di errore.}
 \end{prototype}
 
 La funzione restituisce i valori di \textit{process time} del processo
 \end{prototype}
 
 La funzione restituisce i valori di \textit{process time} del processo
@@ -2153,9 +2156,10 @@ campi della struttura \struct{timex} pu
                                            PLL implementato dal kernel,
                                            specificato nel campo
                                            \var{constant} di \struct{timex}.\\ 
                                            PLL implementato dal kernel,
                                            specificato nel campo
                                            \var{constant} di \struct{timex}.\\ 
-    \const{ADJ\_TICK}           & 0x4000 & Imposta il valore dei tick del timer
-                                           in microsecondi, espresso nel campo
-                                           \var{tick} di \struct{timex}.\\ 
+    \const{ADJ\_TICK}           & 0x4000 & Imposta il valore dei \textit{tick}
+                                           \itindex{clock~tick} del timer in
+                                           microsecondi, espresso nel campo
+                                           \var{tick} di \struct{timex}.\\  
     \const{ADJ\_OFFSET\_SINGLESHOT}&0x8001&Imposta uno spostamento una tantum 
                                            dell'orologio secondo il valore del
                                            campo \var{offset} simulando il
     \const{ADJ\_OFFSET\_SINGLESHOT}&0x8001&Imposta uno spostamento una tantum 
                                            dell'orologio secondo il valore del
                                            campo \var{offset} simulando il