Finiti file temporanei e iniziata chroot, inserita sezione sullo scheduler
[gapil.git] / system.tex
index 6391861615fea46c486a14bcfdac023218986542..e8bd3703984be60bdee25011de9cd1a1d2126474 100644 (file)
@@ -2,22 +2,73 @@
 \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.
+concernenti la gestione generale del sistema che permettono di trattare le
+varie informazioni ad esso connesse, i limiti sulle risorse, la gestione dei
+tempi, degli errori e degli utenti ed in generale la gestione dei vari
+parametri di configurazione dei vari componenti del sistema.
 
 
+\section{La gestione della configurazione del sistema}
+\label{sec:sys_config}
+
+
+\subsection{Opzioni e configurazione del systema}
+\label{sec:sys_sys_config}
+
+La funzione \func{sysconf} ...
+
+\subsection{La configurazione dei file}
+\label{sec:sys_file_config}
+
+La funzione \func{statfs} ...
+
+La funzione \func{pathconf} ...
 
 
 \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. 
+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.
 
 
+\begin{figure}[!htb]
+  \footnotesize
+  \centering
+  \begin{minipage}[c]{15cm}
+    \begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}
+struct rusage {
+     struct timeval ru_utime; /* user time used */
+     struct timeval ru_stime; /* system time used */
+     long ru_maxrss;          /* maximum resident set size */
+     long ru_ixrss;           /* integral shared memory size */
+     long ru_idrss;           /* integral unshared data size */
+     long ru_isrss;           /* integral unshared stack size */
+     long ru_minflt;          /* page reclaims */
+     long ru_majflt;          /* page faults */
+     long ru_nswap;           /* swaps */
+     long ru_inblock;         /* block input operations */
+     long ru_oublock;         /* block output operations */
+     long ru_msgsnd;          /* messages sent */
+     long ru_msgrcv;          /* messages received */
+     long ru_nsignals;   ;    /* signals received */
+     long ru_nvcsw;           /* voluntary context switches */
+     long ru_nivcsw;          /* involuntary context switches */
+};
+    \end{lstlisting}
+  \end{minipage} 
+  \normalsize 
+  \caption{La struttura \var{rusage} per la lettura delle informazioni dei 
+    delle risorse usate da un processo.}
+  \label{fig:sys_rusage_struct}
+\end{figure}
+
+
+
+
+\var{tms\_utime}, \var{tms\_stime}, \var{tms\_cutime}, \var{tms\_uetime}
+
 
 
 \section{La gestione dei tempi del sistema}
@@ -43,13 +94,13 @@ definizioni:
   dato che l'UTC corrisponde all'ora locale di Greenwich.  È il tempo su cui
   viene mantenuto l'orologio del calcolatore, e viene usato ad esempio per
   indicare le date di modifica dei file o quelle di avvio dei processi. Per
-  memorizzare questo tempo è stato riservato il tipo primitivo \func{time\_t}.
+  memorizzare questo tempo è stato riservato il tipo primitivo \type{time\_t}.
 \item \textit{process time}: talvolta anche detto tempo di CPU. Viene misurato
   in \textit{clock tick}, corrispondenti al numero di interruzioni effettuate
   dal timer di sistema, e che per Linux avvengono ogni centesimo di
   secondo\footnote{eccetto per la piattaforma alpha dove avvengono ogni
     millesimo di secondo}. Il dato primitivo usato per questo tempo è
-  \func{clock\_t}, inoltre la costante \macro{HZ} restituisce la frequenza di
+  \type{clock\_t}, inoltre la costante \macro{HZ} restituisce la frequenza di
   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
@@ -95,7 +146,7 @@ presenta una serie di problemi nel caso lo si debba usare con i thread.
 Esamineremo in questa sezione le sue caratteristiche principali.
 
 
-\subsection{La variabile \func{errno}}
+\subsection{La variabile \var{errno}}
 \label{sec:sys_errno}
 
 Quasi tutte le funzioni delle librerie del C sono in grado di individuare e
@@ -149,8 +200,8 @@ riportare in opportuni messaggi le condizioni di errore verificatesi.  La
 prima funzione che si può usare per ricavare i messaggi di errore è
 \func{strerror}, il cui prototipo è:
 \begin{prototype}{string.h}{char * strerror(int errnum)} 
-  La funzione ritorna una stringa (statica) che descrive l'errore il cui
-  codice è passato come parametro.
+  Ritorna una stringa (statica) che descrive l'errore il cui codice è passato
+  come parametro.
 \end{prototype}
 
 In generale \func{strerror} viene usata passando \var{errno} come parametro;
@@ -162,7 +213,7 @@ provvista\footnote{questa funzione 
   standard POSIX} una versione apposita:
 \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
+  Analoga a \func{strerror} ma ritorna il messaggio in un buffer
   specificato da \param{buff} di lunghezza massima (compreso il terminatore)
   \param{size}.
 \end{prototype}
@@ -178,8 +229,8 @@ Una seconda funzione usata per riportare i codici di errore in maniera
 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
-  \var{errno} sullo standard error; preceduto dalla stringa \var{message}.
+  Stampa il messaggio di errore relativo al valore corrente di \var{errno}
+  sullo standard error; preceduto dalla stringa \var{message}.
 \end{prototype}
 i messaggi di errore stampati sono gli stessi di \func{strerror}, (riportati
 in \capref{cha:errors}), e, usando il valore corrente di \var{errno}, si
@@ -234,3 +285,8 @@ o la macro (\texttt{\small 15--17}) associate a quel codice.
   \caption{Codice per la stampa del messaggio di errore standard.}
   \label{fig:sys_err_mess}
 \end{figure}
+
+
+\section{La gestione di utenti e gruppi}
+\label{sec:sys_user_group}
+