X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=system.tex;h=9a37199c62aff381f3cf0754065acf843777579f;hp=e69639be2fae01f47e4ee8ea13a34a865f5b15e6;hb=6271cd1b0cc4d403753d1f48d3d562b16db7e613;hpb=46f04a7875f34640b75aab2d5163ea86afe1bf71 diff --git a/system.tex b/system.tex index e69639b..9a37199 100644 --- a/system.tex +++ b/system.tex @@ -1823,10 +1823,10 @@ gestione di data e ora. Storicamente i sistemi unix-like hanno sempre mantenuto due distinti tipi di dati per la misure dei tempi all'interno del sistema: essi sono -rispettivamente chiamati \itindend{calendar~time} \textit{calendar time} e +rispettivamente chiamati \itindex{calendar~time} \textit{calendar time} e \itindex{process~time} \textit{process time}, secondo le definizioni: \begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}} -\item[\textit{calendar time}] \itindend{calendar~time} detto anche +\item[\textit{calendar time}] \itindex{calendar~time} detto anche \textsl{tempo di calendario}. È il numero di secondi dalla mezzanotte del primo gennaio 1970, in tempo universale coordinato (o UTC), data che viene usualmente indicata con 00:00:00 Jan, 1 1970 (UTC) e chiamata \textit{the @@ -1851,7 +1851,7 @@ rispettivamente chiamati \itindend{calendar~time} \textit{calendar time} e obsoleto. \end{basedescript} -In genere si usa il \itindend{calendar~time} \textit{calendar time} per +In genere si usa il \itindex{calendar~time} \textit{calendar time} per esprimere le date dei file e le informazioni analoghe che riguardano i cosiddetti \textsl{tempi di orologio}, che vengono usati ad esempio per i demoni che compiono lavori amministrativi ad ore definite, come \cmd{cron}. @@ -1899,7 +1899,7 @@ del comando \cmd{time}. \itindbeg{process~time} Di norma tutte le operazioni del sistema fanno sempre riferimento al -\itindend{calendar~time} \textit{calendar time}, l'uso del \textit{process +\itindex{calendar~time} \textit{calendar time}, l'uso del \textit{process time} è riservato a quei casi in cui serve conoscere i tempi di esecuzione di un processo (ad esempio per valutarne l'efficienza). In tal caso infatti fare ricorso al \textit{calendar time} è inutile in quanto il tempo può essere @@ -1977,7 +1977,10 @@ lo stato di terminazione di tutti i suoi figli, questi processi \itindbeg{calendar~time} Come anticipato in sez.~\ref{sec:sys_unix_time} il \textit{calendar time} è -mantenuto dal kernel in una variabile di tipo \type{time\_t}, che usualmente +mantenuto dal kernel in una variabile di tipo \type{time\_t},\footnote{in + realtà il kernel usa una rappresentazione interna di che fornisce una + precisione molto maggiore, e consente per questo anche di usare + rappresentazioni diverse del \textit{calendar time}.} che usualmente corrisponde ad un tipo elementare (in Linux è definito come \ctyp{long int}, che di norma corrisponde a 32 bit). Il valore corrente del \textit{calendar time}, che indicheremo come \textsl{tempo di sistema}, può essere ottenuto @@ -2033,25 +2036,13 @@ sono: \errval{EPERM}.} \end{functions} -Queste funzioni utilizzano una struttura di tipo \struct{timeval}, la cui -definizione, insieme a quella della analoga \struct{timespec}, è riportata in -fig.~\ref{fig:sys_timeval_struct}. Le \acr{glibc} infatti forniscono queste due -rappresentazioni alternative del \textit{calendar time} che rispetto a -\type{time\_t} consentono rispettivamente precisioni del microsecondo e del -nanosecondo.\footnote{la precisione è solo teorica, la precisione reale della - misura del tempo dell'orologio di sistema non dipende dall'uso di queste - strutture.} - -\begin{figure}[!htb] - \footnotesize \centering - \begin{minipage}[c]{15cm} - \includestruct{listati/timeval.h} - \end{minipage} - \normalsize - \caption{Le strutture \structd{timeval} e \structd{timespec} usate per una - rappresentazione ad alta risoluzione del \textit{calendar time}.} - \label{fig:sys_timeval_struct} -\end{figure} +Si noti come queste funzioni utilizzino per indicare il tempo una struttura di +tipo \struct{timeval}, la cui definizione si è già vista in +fig.~\ref{fig:sys_timeval_struct}, questa infatti permette una espressione +alternativa dei valori del \textit{calendar time}, con una precisione, +rispetto a \type{time\_t}, fino al microsecondo.\footnote{la precisione è solo + teorica, la precisione reale della misura del tempo dell'orologio di sistema + non dipende dall'uso di queste strutture.} Come nel caso di \func{stime} anche \func{settimeofday} (la cosa continua a valere per qualunque funzione che vada a modificare l'orologio di sistema,