\chapter{La gestione del sistema}
\label{cha:system}
+In questo capitolo si è raccolta le trattazione delle varie funzioni
+concernenti la gestione generale del sistema che permettono di trattare
+le varie informazioni ad esso connesse, come i limiti sulle risorse, la
+gestione dei tempi, degli errori, degli utenti ed in generale dei vari
+parametri di configurazione del sistema.
+\section{La gestione delle risorse e dei limiti di sistema}
+\label{sec:sys_limits}
+
+In questa sezione esamimeremo le funzioni che permettono di gestire le
+varie risorse associate ad un processo ed i relativi limiti, e quelle
+relatica al sistema in quanto tale.
+
+
+
+
+\section{La gestione dei tempi del sistema}
+\label{sec:sys_time}
+
+In questa sezione tratteremo le varie funzioni per la gestione delle
+date e del tempo in un sistema unix-like, e quelle per convertire i vari
+tempi nelle differenti rappresentazioni che vengono utilizzate.
+
+
\subsection{La misura del tempo in unix}
-\label{sec:intro_unix_time}
+\label{sec:sys_unix_time}
-Storicamente i sistemi unix-like hanno sempre mantenuto due distinti valori
-per i tempi all'interno del sistema, essi sono rispettivamente chiamati
-\textit{calendar time} e \textit{process time}, secondo le definizioni:
+Storicamente i sistemi unix-like hanno sempre mantenuto due distinti
+valori per i tempi all'interno del sistema, essi sono rispettivamente
+chiamati \textit{calendar time} e \textit{process time}, secondo le
+definizioni:
\begin{itemize}
\item \textit{calendar time}: è il numero di secondi dalla mezzanotte del
primo gennaio 1970, in tempo universale coordinato (o UTC), data che viene
+
+
\section{La gestione degli errori}
-\label{sec:intro_errors}
+\label{sec:sys_errors}
La gestione degli errori è in genere una materia complessa. Inoltre il modello
utilizzato dai sistema unix-like è basato sull'architettura a processi, e
anche di definire \var{errno} come un \textit{modifiable lvalue}, quindi si
può anche usare una macro, e questo è infatti il modo usato da Linux per
renderla locale ai singoli thread }, definita nell'header \file{errno.h}, la
-variabile è in genere definita come \var{volatile} dato che può essere
+variabile è in genere definita come \type{volatile} dato che può essere
cambiata in modo asincrono da un segnale (per una descrizione dei segnali si
veda \secref{cha:signals}), ma dato che un manipolatore di segnale scritto
bene salva e ripristina il valore della variabile, di questo non è necessario
\subsection{Le funzioni \func{strerror} e \func{perror}}
-\label{sec:intro_strerror}
+\label{sec:sys_strerror}
Benché gli errori siano identificati univocamente dal valore numerico di
\var{errno} le librerie provvedono alcune funzioni e variabili utili per
\begin{prototype}{string.h}
{char * strerror\_r(int errnum, char * buff, size\_t size)}
La funzione è analoga a \func{strerror} ma ritorna il messaggio in un buffer
- specificato da \var{buff} di lunghezza massima (compreso il terminatore)
- \var{size}.
+ specificato da \param{buff} di lunghezza massima (compreso il terminatore)
+ \param{size}.
\end{prototype}
\noindent
che utilizza un buffer che il singolo thread deve allocare, per evitare i
}
\end{lstlisting}
\caption{Codice per la stampa del messaggio di errore standard.}
- \label{fig:intro_err_mess}
+ \label{fig:sys_err_mess}
\end{figure}
-
-
-\subsection{Valori e limiti del sistema}
-\label{sec:sys_limits}
-