Aggiornamenti vari, in particolare sui segnali ed i timer.
[gapil.git] / system.tex
index e77104ef59fa1092726f33493c0d571428dd850f..76361d4ad0230713e9437eaebc3b659f6aceb497 100644 (file)
@@ -661,8 +661,8 @@ inclusa nei sorgenti del kernel, nella directory \file{Documentation/sysctl}.
 
 Ma oltre alle informazioni ottenibili da \func{sysctl} dentro \file{proc} sono
 disponibili moltissime altre informazioni, fra cui ad esempio anche quelle
 
 Ma oltre alle informazioni ottenibili da \func{sysctl} dentro \file{proc} sono
 disponibili moltissime altre informazioni, fra cui ad esempio anche quelle
-fornite da \func{uname} (vedi sez.~\ref{sec:sys_config}) che sono mantenute
-nei file \procrelfile{/proc/sys/kernel}{ostype},
+fornite da \func{uname} (vedi sez.~\ref{sec:sys_uname}) che sono mantenute nei
+file \procrelfile{/proc/sys/kernel}{ostype},
 \procrelfile{/proc/sys/kernel}{hostname},
 \procrelfile{/proc/sys/kernel}{osrelease},
 \procrelfile{/proc/sys/kernel}{version} e
 \procrelfile{/proc/sys/kernel}{hostname},
 \procrelfile{/proc/sys/kernel}{osrelease},
 \procrelfile{/proc/sys/kernel}{version} e
@@ -922,9 +922,16 @@ semplice invocare direttamente il programma \cmd{mount}, per cui ne
 tralasceremo la trattazione, rimandando al manuale delle \acr{glibc}
 \cite{glibc} per la documentazione completa.
 
 tralasceremo la trattazione, rimandando al manuale delle \acr{glibc}
 \cite{glibc} per la documentazione completa.
 
+% TODO scrivere relativamente alle varie funzioni (getfsent e getmntent &C)
+% TODO documentare swapon e swapoff (man 2 ...)
+
+
+% TODO documentare keyctl ????
+% (fare sezione dedicata ????)
+%\subsection{La gestione delle chiavi}
+%\label{sec:keyctl_management}
 
 
 
 
-% TODO scrivere relativamente alle varie funzioni (getfsent e getmntent &C)
 
 \subsection{La gestione delle informazioni su utenti e gruppi}
 \label{sec:sys_user_group}
 
 \subsection{La gestione delle informazioni su utenti e gruppi}
 \label{sec:sys_user_group}
@@ -1420,7 +1427,7 @@ In genere includere esplicitamente \file{<sys/time.h>} non 
 necessario, ma aumenta la portabilità, e serve comunque quando, come nella
 maggior parte dei casi, si debba accedere ai campi di \struct{rusage} relativi
 ai tempi di utilizzo del processore, che sono definiti come strutture di tipo
 necessario, ma aumenta la portabilità, e serve comunque quando, come nella
 maggior parte dei casi, si debba accedere ai campi di \struct{rusage} relativi
 ai tempi di utilizzo del processore, che sono definiti come strutture di tipo
-\struct{timeval}.
+\struct{timeval} (vedi fig.~\ref{fig:sys_timeval_struct}).
 
 Questa è la stessa struttura utilizzata da \func{wait4} (si ricordi quando
 visto in sez.~\ref{sec:proc_wait}) per ricavare la quantità di risorse
 
 Questa è la stessa struttura utilizzata da \func{wait4} (si ricordi quando
 visto in sez.~\ref{sec:proc_wait}) per ricavare la quantità di risorse
@@ -1804,6 +1811,10 @@ minimo indicato dal secondo valore (sempre in percentuale di spazio disco
 libero). Infine l'ultimo valore indica la frequenza in secondi con cui deve
 essere controllata detta percentuale.
 
 libero). Infine l'ultimo valore indica la frequenza in secondi con cui deve
 essere controllata detta percentuale.
 
+% TODO trattare quote disco 
+% vedi man quotactl
+%\section{La gestione delle quote disco}
+%\label{sec:disk_quota}
 
 
 
 
 
 
@@ -1823,10 +1834,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
 
 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}}
 \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
   \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 +1862,7 @@ rispettivamente chiamati \itindend{calendar~time} \textit{calendar time} e
   obsoleto.
 \end{basedescript}
 
   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}.
 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 +1910,7 @@ del comando \cmd{time}.
 \itindbeg{process~time}
 
 Di norma tutte le operazioni del sistema fanno sempre riferimento al
 \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
   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 +1988,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} è
 \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
 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 +2047,13 @@ sono:
     \errval{EPERM}.}
 \end{functions}
 
     \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,
 
 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,