X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=system.tex;h=e5fe228b30d7bd41f80270be16f10a1bc2c37b4b;hp=a8174dbe2a0649c0377406baed13076c76df14e9;hb=a051e3c3d3b403ee210274d8c2ec7d756c531a21;hpb=9b0f636834e8d92e87131bbb99d7d846bab1421a diff --git a/system.tex b/system.tex index a8174db..e5fe228 100644 --- a/system.tex +++ b/system.tex @@ -42,7 +42,7 @@ quelle della gestione dei file. \subsection{Limiti e parametri di sistema} \label{sec:sys_limits} -Quando si devono determinare le le caratteristiche generali del sistema ci si +Quando si devono determinare le caratteristiche generali del sistema ci si trova di fronte a diverse possibilità; alcune di queste infatti possono dipendere dall'architettura dell'hardware (come le dimensioni dei tipi interi), o dal sistema operativo (come la presenza o meno del gruppo degli @@ -157,7 +157,7 @@ file, riportate in \tabref{tab:sys_file_macro}). \begin{table}[htb] \centering \footnotesize - \begin{tabular}[c]{|l|r|p{8cm}|} + \begin{tabular}[c]{|l|r|p{7cm}|} \hline \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\ \hline @@ -201,7 +201,7 @@ riportati in \tabref{tab:sys_posix1_general}. \begin{table}[htb] \centering \footnotesize - \begin{tabular}[c]{|l|r|p{8cm}|} + \begin{tabular}[c]{|l|r|p{7cm}|} \hline \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\ \hline @@ -366,7 +366,7 @@ sostituendolo a \code{\_POSIX\_} per le macro definite dagli gli altri due. In generale si dovrebbe fare uso di \func{sysconf} solo quando la relativa macro non è definita, quindi con un codice analogo al seguente: %\footnotesize -\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{} +\begin{lstlisting}[stepnumber=0,frame=]{} get_child_max(void) { #ifdef CHILD_MAX @@ -521,7 +521,7 @@ solo definendo \macro{\_GNU\_SOURCE}. \begin{figure}[!htb] \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct utsname { char sysname[]; char nodename[]; @@ -606,7 +606,7 @@ Legge o scrive uno dei parametri di sistema. \end{functions} I parametri a cui la funzione permettere di accedere sono organizzati in -maniera gerarchica all'interno un albero;\footnote{si tenga presente che +maniera gerarchica all'interno di un albero;\footnote{si tenga presente che includendo solo \file{unistd.h}, saranno definiti solo i parametri generici; dato che ce ne sono molti specifici dell'implementazione, nel caso di Linux occorrerà includere anche i file \file{linux/unistd.h} e @@ -620,7 +620,7 @@ arriva ad identificare un parametro specifico attraverso l'array \param{name}, di lunghezza \param{nlen}, che contiene la sequenza dei vari nodi da attraversare. Ogni parametro ha un valore in un formato specifico che può essere un intero, una stringa o anche una struttura -complessa, per questo motivo il valori vengono passati come puntatori +complessa, per questo motivo i valori vengono passati come puntatori \ctyp{void}. L'indirizzo a cui il valore corrente del parametro deve essere letto è @@ -896,7 +896,7 @@ genere \begin{figure}[!htb] \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct statfs { long f_type; /* tipo di filesystem */ long f_bsize; /* dimensione ottimale dei blocchi di I/O */ @@ -983,7 +983,7 @@ il significato dei vari campi. \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct passwd { char *pw_name; /* user name */ char *pw_passwd; /* user password */ @@ -1070,7 +1070,7 @@ in questo caso le informazioni vengono restituite in una struttura di tipo \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct group { char *gr_name; /* group name */ char *gr_passwd; /* group password */ @@ -1239,7 +1239,7 @@ eseguire una ricerca. \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct utmp { short int ut_type; /* Type of login. */ @@ -1377,7 +1377,7 @@ di tipo \struct{rusage}, la cui definizione (che si trova in \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ @@ -1467,13 +1467,13 @@ detto \textsl{duro} (o \textit{hard limit}), in quanto un processo normale non può modificarne il valore. Il valore di questi limiti è mantenuto in una struttura \struct{rlimit}, la cui definizione è riportata in \figref{fig:sys_rlimit_struct}, ed i cui campi corrispondono appunto a limite -corrente e massimo. +corrente e limite massimo. \begin{figure}[!htb] \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct rlimit { rlim_t rlim_cur; rlim_t rlim_max; @@ -1578,13 +1578,13 @@ poi effettuato attraverso la struttura \struct{rlimit} puntata da evitare la creazione di \file{core} file (al proposito si veda \secref{sec:sig_prog_error}).} -Nello specificare un limite, oltre a dei valori specifici, si può anche usare -la costante \const{RLIM\_INFINITY} che permette di sbloccare l'uso di una -risorsa; ma si ricordi che solo un processo con i privilegi di amministratore -può innalzare un limite al di sopra del valore corrente del limite massimo. Si -tenga conto infine che tutti i limiti vengono ereditati dal processo padre -attraverso una \func{fork} (vedi \secref{sec:proc_fork}) e mantenuti per gli -altri programmi eseguiti attraverso una \func{exec} (vedi +Nello specificare un limite, oltre a fornire dei valori specifici, si può +anche usare la costante \const{RLIM\_INFINITY} che permette di sbloccare l'uso +di una risorsa; ma si ricordi che solo un processo con i privilegi di +amministratore può innalzare un limite al di sopra del valore corrente del +limite massimo. Si tenga conto infine che tutti i limiti vengono ereditati dal +processo padre attraverso una \func{fork} (vedi \secref{sec:proc_fork}) e +mantenuti per gli altri programmi eseguiti attraverso una \func{exec} (vedi \secref{sec:proc_exec}). @@ -1808,7 +1808,7 @@ struttura di tipo \struct{tms}, la cui definizione \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct tms { clock_t tms_utime; /* user time */ clock_t tms_stime; /* system time */ @@ -1836,7 +1836,6 @@ lo stato di terminazione di tutti i suoi figli, questi processi ``nipoti'' non verranno considerati nel calcolo di questi tempi. - \subsection{Le funzioni per il \textit{calendar time}} \label{sec:sys_time_base} @@ -1845,8 +1844,8 @@ mantenuto dal kernel in una variabile di tipo \type{time\_t}, 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 -con la funzione \funcd{time} che lo restituisce in nel suddetto formato; il -suo prototipo è: +con la funzione \funcd{time} che lo restituisce nel suddetto formato; il suo +prototipo è: \begin{prototype}{time.h}{time\_t time(time\_t *t)} Legge il valore corrente del \textit{calendar time}. @@ -1909,7 +1908,7 @@ nanosecondo.\footnote{la precisione \begin{figure}[!htb] \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct timeval { long tv_sec; /* seconds */ @@ -1972,7 +1971,7 @@ effettuato. \begin{figure}[!htb] \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct timex { unsigned int modes; /* mode selector */ long int offset; /* time offset (usec) */ @@ -2132,7 +2131,7 @@ stata introdotta una ulteriore rappresentazione, detta \textit{broken-down \begin{figure}[!htb] \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} struct tm { int tm_sec; /* seconds */ int tm_min; /* minutes */ @@ -2243,7 +2242,7 @@ verr \footnotesize \centering \begin{minipage}[c]{15cm} - \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{} + \begin{lstlisting}[stepnumber=0]{} extern char *tzname[2]; extern long timezone; extern int daylight;