Riforma delle macro per le funzioni, si riformatta un bel po' di roba.
[gapil.git] / system.tex
index 7a44a3591fef0b448ff58681ebd8fdff5f539fba..bd5822bda1efad5c501e1a5465467e73eef83b59 100644 (file)
@@ -1,16 +1,40 @@
 \chapter{La gestione del sistema}
 \label{cha:system}
 
 \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. 
+
+
+\var{tms\_utime}, \var{tms\_stime}, \var{tms\_cutime}, \var{tms\_uetime}
+
+\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}
 \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
 \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
@@ -29,7 +53,7 @@ per i tempi all'interno del sistema, essi sono rispettivamente chiamati
   operazione del timer, e corrisponde dunque al numero di tick al secondo.  Lo
   standard POSIX definisce allo stesso modo la costante \macro{CLK\_TCK});
   questo valore può comunque essere ottenuto con \func{sysconf} (vedi
   operazione del timer, e corrisponde dunque al numero di tick al secondo.  Lo
   standard POSIX definisce allo stesso modo la costante \macro{CLK\_TCK});
   questo valore può comunque essere ottenuto con \func{sysconf} (vedi
-  \secref{sec:intro_limits}).
+  \secref{sec:sys_limits}).
 \end{itemize}
 
 In genere si usa il \textit{calendar time} per tenere le date dei file e le
 \end{itemize}
 
 In genere si usa il \textit{calendar time} per tenere le date dei file e le
@@ -60,8 +84,10 @@ time viene chiamato \textit{CPU time}.
 
 
 
 
 
 
+
+
 \section{La gestione degli errori}
 \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
 
 La gestione degli errori è in genere una materia complessa. Inoltre il modello
 utilizzato dai sistema unix-like è basato sull'architettura a processi, e
@@ -70,7 +96,7 @@ Esamineremo in questa sezione le sue caratteristiche principali.
 
 
 \subsection{La variabile \func{errno}}
 
 
 \subsection{La variabile \func{errno}}
-\label{sec:intro_errno}
+\label{sec:sys_errno}
 
 Quasi tutte le funzioni delle librerie del C sono in grado di individuare e
 riportare condizioni di errore, ed è una buona norma di programmazione
 
 Quasi tutte le funzioni delle librerie del C sono in grado di individuare e
 riportare condizioni di errore, ed è una buona norma di programmazione
@@ -87,7 +113,7 @@ Per riportare il tipo di errore il sistema usa la variabile globale
   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
   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
 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
@@ -115,7 +141,7 @@ verificato il fallimento della funzione attraverso il suo codice di ritorno.
 
 
 \subsection{Le funzioni \func{strerror} e \func{perror}}
 
 
 \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
 
 Benché gli errori siano identificati univocamente dal valore numerico di
 \var{errno} le librerie provvedono alcune funzioni e variabili utili per
@@ -137,9 +163,10 @@ provvista\footnote{questa funzione 
 \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
 \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}
 \end{prototype}
+\noindent
 che utilizza un buffer che il singolo thread deve allocare, per evitare i
 problemi connessi alla condivisione del buffer statico. Infine, per completare
 la caratterizzazione dell'errore, si può usare anche la variabile
 che utilizza un buffer che il singolo thread deve allocare, per evitare i
 problemi connessi alla condivisione del buffer statico. Infine, per completare
 la caratterizzazione dell'errore, si può usare anche la variabile
@@ -148,7 +175,7 @@ globale\footnote{anche questa 
 attualmente in esecuzione.
 
 Una seconda funzione usata per riportare i codici di errore in maniera
 attualmente in esecuzione.
 
 Una seconda funzione usata per riportare i codici di errore in maniera
-automatizzata sullo standard error (vedi \secref{sec:file_stdfiles}) è
+automatizzata sullo standard error (vedi \secref{sec:file_std_descr}) è
 \func{perror}, il cui prototipo è:
 \begin{prototype}{stdio.h}{void perror (const char *message)} 
   La funzione stampa il messaggio di errore relativo al valore corrente di
 \func{perror}, il cui prototipo è:
 \begin{prototype}{stdio.h}{void perror (const char *message)} 
   La funzione stampa il messaggio di errore relativo al valore corrente di
@@ -205,10 +232,5 @@ o la macro (\texttt{\small 15--17}) associate a quel codice.
     }
   \end{lstlisting}
   \caption{Codice per la stampa del messaggio di errore standard.}
     }
   \end{lstlisting}
   \caption{Codice per la stampa del messaggio di errore standard.}
-  \label{fig:intro_err_mess}
+  \label{fig:sys_err_mess}
 \end{figure}
 \end{figure}
-
-
-\subsection{Valori e limiti del sistema}
-\label{sec:sys_limits}
-