From 9c8e87c281e632b8b9be81e8f27da473d1f544cb Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Sun, 9 Dec 2001 23:06:15 +0000 Subject: [PATCH] Risistemazioni varie e rifatto l'indice del capitolo sul sistema operativo --- errors.tex | 2 +- process.tex | 2 +- prochand.tex | 2 +- signal.tex | 2 +- system.tex | 51 ++++++++++++++++++++++++++++++++++++--------------- 5 files changed, 40 insertions(+), 19 deletions(-) diff --git a/errors.tex b/errors.tex index 529d256..b0e75dd 100644 --- a/errors.tex +++ b/errors.tex @@ -13,7 +13,7 @@ I codici di errore sono riportati come costanti di tipo \type{int}, i valori delle costanti sono definiti da macro di preprocessore nel file citato, e possono variare da architettura a architettura; è pertanto necessario riferirsi ad essi tramite i nomi simbolici. Le funzioni \func{perror} e -\func{strerror} (vedi \secref{sec:intro_strerror}) possono essere usate per +\func{strerror} (vedi \secref{sec:sys_strerror}) possono essere usate per ottenere dei messaggi di errore più espliciti. diff --git a/process.tex b/process.tex index d899675..f0bc159 100644 --- a/process.tex +++ b/process.tex @@ -846,7 +846,7 @@ ritornato il carattere \texttt{':'}, infine se viene incontrato il valore \cmd{--} la scansione viene considerata conclusa, anche se vi sono altri elementi di \var{argv} che cominciano con il carattere \texttt{'-'}. -\begin{figure}[htbp] +\begin{figure}[htb] \footnotesize \begin{lstlisting}{} opterr = 0; /* don't want writing to stderr */ diff --git a/prochand.tex b/prochand.tex index d476db8..1592ce1 100644 --- a/prochand.tex +++ b/prochand.tex @@ -701,7 +701,7 @@ informazioni riguardo ai processi che sta terminando. Questo viene fatto mantenendo attiva la voce nella tabella dei processi, e memorizzando alcuni dati essenziali, come il \acr{pid}, i tempi di CPU usati -dal processo (vedi \secref{sec:intro_unix_time}) e lo stato di terminazione +dal processo (vedi \secref{sec:sys_unix_time}) e lo stato di terminazione \footnote{NdA verificare esattamente cosa c'è!}, mentre la memoria in uso ed i file aperti vengono rilasciati immediatamente. I processi che sono terminati, ma il cui stato di terminazione non è stato ancora ricevuto dal padre sono diff --git a/signal.tex b/signal.tex index a810ea8..f67c571 100644 --- a/signal.tex +++ b/signal.tex @@ -670,7 +670,7 @@ contenuto, che resta valido solo fino alla successiva chiamata di necessario copiarlo. La seconda funzione deriva da BSD ed è analoga alla funzione \func{perror} -descritta in \secref{sec:intro_strerror}. +descritta in \secref{sec:sys_strerror}. \section{La gestione dei segnali} diff --git a/system.tex b/system.tex index ea7f38e..6391861 100644 --- a/system.tex +++ b/system.tex @@ -1,16 +1,40 @@ \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 @@ -60,8 +84,10 @@ time viene chiamato \textit{CPU time}. + + \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 @@ -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 -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 @@ -115,7 +141,7 @@ verificato il fallimento della funzione attraverso il suo codice di ritorno. \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 @@ -137,8 +163,8 @@ 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 - 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 @@ -206,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.} - \label{fig:intro_err_mess} + \label{fig:sys_err_mess} \end{figure} - - -\subsection{Valori e limiti del sistema} -\label{sec:sys_limits} - -- 2.30.2