X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=system.tex;h=ca0510985e39fdad1f8b623e0fa648a8e47ada13;hp=228905ebca6b50dd5c7a91275e0be372c4dc0c1a;hb=7b43a7843d483c826a6ed13224208c615a23c4d6;hpb=88d22f4971adcbdb816c405a1375ae0a8d57bdde diff --git a/system.tex b/system.tex index 228905e..ca05109 100644 --- a/system.tex +++ b/system.tex @@ -1687,7 +1687,7 @@ riportati nel seguente elenco: processo con la prima ricezione. \item[\const{RLIMIT\_DATA}] Questa risorsa indica, in byte, la massima - dimensione del \index{segmento!dati} segmento dati di un processo (vedi + dimensione del segmento dati di un processo (vedi sez.~\ref{sec:proc_mem_layout}). Il tentativo di allocare più memoria di quanto indicato dal limite corrente causa il fallimento della funzione di allocazione eseguita (\func{brk} o \func{sbrk}) con un errore di @@ -1708,14 +1708,13 @@ riportati nel seguente elenco: \item[\const{RLIMIT\_MEMLOCK}] Questa risorsa indica, in byte, l'ammontare massimo di memoria che può essere bloccata in RAM da un processo (vedi - sez.~\ref{sec:proc_mem_lock}). Dato che il \itindex{memory~locking} - \textit{memory locking} viene effettuato sulle pagine di memoria, il valore - indicato viene automaticamente arrotondato al primo multiplo successivo - della dimensione di una pagina di memoria. Il limite comporta il fallimento - delle \textit{system call} che eseguono il \textit{memory locking} - (\func{mlock}, \func{mlockall} ed anche, vedi - sez.~\ref{sec:file_memory_map}, \func{mmap} con l'operazione - \const{MAP\_LOCKED}). + sez.~\ref{sec:proc_mem_lock}). Dato che il \textit{memory locking} viene + effettuato sulle pagine di memoria, il valore indicato viene automaticamente + arrotondato al primo multiplo successivo della dimensione di una pagina di + memoria. Il limite comporta il fallimento delle \textit{system call} che + eseguono il \textit{memory locking} (\func{mlock}, \func{mlockall} ed anche, + vedi sez.~\ref{sec:file_memory_map}, \func{mmap} con l'operazione + \const{MAP\_LOCKED}). Dal kernel 2.6.9 questo limite comprende anche la memoria che può essere bloccata da ciascun utente nell'uso della memoria condivisa (vedi @@ -1761,10 +1760,10 @@ messaggi vuoti che comunque richiede delle risorse di gestione. Questa risorsa \itindex{Resident~Set~Size~(RSS)} \textit{Resident Set Size}) cioè l'ammontare della memoria associata al processo che risiede effettivamente in RAM e non a quella eventualmente portata sulla \textit{swap} o non ancora - caricata dal filesystem per il \index{segmento!testo} segmento testo del - programma. Ha effetto solo sulle chiamate a \func{madvise} con - \const{MADV\_WILLNEED} (vedi sez.~\ref{sec:file_memory_map}). Presente solo - sui i kernel precedenti il 2.4.30. + caricata dal filesystem per il segmento testo del programma. Ha effetto + solo sulle chiamate a \func{madvise} con \const{MADV\_WILLNEED} (vedi + sez.~\ref{sec:file_memory_map}). Presente solo sui i kernel precedenti il + 2.4.30. \item[\const{RLIMIT\_RTPRIO}] Questa risorsa indica il valore massimo della priorità statica che un processo può assegnarsi o assegnare con @@ -2774,12 +2773,11 @@ informazioni relative al proprio fuso orario per determinare lo stato dell'ora legale. La funzione inoltre modifica i valori della struttura \struct{tm} in forma di -\itindex{value~result~argument} \textit{value result argument}, normalizzando -i valori dei vari campi, impostando i valori risultanti per \var{tm\_wday} e -\var{tm\_yday} e assegnando a \var{tm\_isdst} il valore (positivo o nullo) -corrispondente allo stato dell'ora legale. La funzione inoltre provvede ad -impostare il valore della \index{variabili!globali} variabile globale -\var{tzname}. +\textit{value result argument}, normalizzando i valori dei vari campi, +impostando i valori risultanti per \var{tm\_wday} e \var{tm\_yday} e +assegnando a \var{tm\_isdst} il valore (positivo o nullo) corrispondente allo +stato dell'ora legale. La funzione inoltre provvede ad impostare il valore +della variabile globale \var{tzname}. \itindend{calendar~time} @@ -2790,8 +2788,8 @@ impostare il valore della \index{variabili!globali} variabile globale \includestruct{listati/time_zone_var.c} \end{minipage} \normalsize - \caption{Le \index{variabili!globali} variabili globali usate per la - gestione delle \itindex{timezone} \textit{timezone}.} + \caption{Le variabili globali usate per la gestione delle \itindex{timezone} + \textit{timezone}.} \label{fig:sys_tzname} \end{figure} @@ -2799,12 +2797,11 @@ Come accennato l'uso del \textit{broken-down time} permette di tenere conto anche della differenza fra tempo universale e ora locale, compresa l'eventuale ora legale. Questo viene fatto dalle funzioni di conversione grazie alle informazioni riguardo la propria \itindex{timezone} \textit{timezone} -mantenute nelle tre \index{variabili!globali} variabili globali mostrate in -fig.~\ref{fig:sys_tzname}, cui si si può accedere direttamente includendo -\headfile{time.h}. Come illustrato queste variabili vengono impostate -internamente da alcune delle delle precedenti funzioni di conversione, ma lo -si può fare esplicitamente chiamando direttamente la funzione \funcd{tzset}, -il cui prototipo è: +mantenute nelle tre variabili globali mostrate in fig.~\ref{fig:sys_tzname}, +cui si si può accedere direttamente includendo \headfile{time.h}. Come +illustrato queste variabili vengono impostate internamente da alcune delle +delle precedenti funzioni di conversione, ma lo si può fare esplicitamente +chiamando direttamente la funzione \funcd{tzset}, il cui prototipo è: \begin{funcproto}{ \fhead{sys/timex.h} @@ -2966,13 +2963,13 @@ c'è stato un errore. Di solito questo valore, a seconda della funzione, è $-1$ o un puntatore nullo o la costante \val{EOF}; ma questo valore segnala solo che c'è stato un errore, e non il tipo di errore. -Per riportare il tipo di errore il sistema usa \index{variabili!globali} la -variabile globale \var{errno}, definita nell'header \headfile{errno.h}. Come -accennato l'uso di una variabile globale può comportare problemi nel caso dei -\itindex{thread} \textit{thread}, ma lo standard ISO C consente anche di -definire \var{errno} come un cosiddetto ``\textit{modifiable lvalue}'', cosa -che consente di usare anche una macro, e questo è infatti il metodo usato da -Linux per renderla locale ai singoli \itindex{thread} \textit{thread}. +Per riportare il tipo di errore il sistema usa la variabile globale +\var{errno}, definita nell'header \headfile{errno.h}. Come accennato l'uso di +una variabile globale può comportare problemi nel caso dei \itindex{thread} +\textit{thread}, ma lo standard ISO C consente anche di definire \var{errno} +come un cosiddetto ``\textit{modifiable lvalue}'', cosa che consente di usare +anche una macro, e questo è infatti il metodo usato da Linux per renderla +locale ai singoli \itindex{thread} \textit{thread}. La variabile è in genere definita come \direct{volatile} dato che può essere cambiata in modo asincrono da un segnale, per un esempio si veda @@ -3100,7 +3097,7 @@ riferiscono all'ultimo errore avvenuto. La stringa specificata con personalizzazione (ad esempio l'indicazione del contesto in cui si è verificato), seguita dai due punti e da uno spazio, il messaggio è terminato con un a capo. Il messaggio può essere riportato anche usando le due -\index{variabili!globali} variabili globali: +variabili globali: \includecodesnip{listati/errlist.c} dichiarate in \headfile{errno.h}. La prima contiene i puntatori alle stringhe di errore indicizzati da \var{errno}; la seconda esprime il valore più alto @@ -3175,12 +3172,11 @@ sez.~\ref{sec:file_formatted_io}), ed i relativi argomenti devono essere forniti allo stesso modo, mentre \param{errnum} indica l'errore che si vuole segnalare (non viene quindi usato il valore corrente di \var{errno}). -La funzione stampa sullo \itindex{standard~error} \textit{standard error} il -nome del programma, come indicato dalla \index{variabili!globali} variabile -globale \var{program\_name}, seguito da due punti ed uno spazio, poi dalla -stringa generata da \param{format} e dagli argomenti seguenti, seguita da due -punti ed uno spazio infine il messaggio di errore relativo ad \param{errnum}, -il tutto è terminato da un a capo. +La funzione stampa sullo \textit{standard error} il nome del programma, come +indicato dalla variabile globale \var{program\_name}, seguito da due punti ed +uno spazio, poi dalla stringa generata da \param{format} e dagli argomenti +seguenti, seguita da due punti ed uno spazio infine il messaggio di errore +relativo ad \param{errnum}, il tutto è terminato da un a capo. Il comportamento della funzione può essere ulteriormente controllato se si definisce una variabile \var{error\_print\_progname} come puntatore ad una @@ -3191,8 +3187,8 @@ L'argomento \param{status} può essere usato per terminare direttamente il programma in caso di errore, nel qual caso \func{error} dopo la stampa del messaggio di errore chiama \func{exit} con questo stato di uscita. Se invece il valore è nullo \func{error} ritorna normalmente ma viene incrementata -un'altra \index{variabili!globali} variabile globale, -\var{error\_message\_count}, che tiene conto di quanti errori ci sono stati. +un'altra variabile globale, \var{error\_message\_count}, che tiene conto di +quanti errori ci sono stati. Un'altra funzione per la stampa degli errori, ancora più sofisticata, che prende due argomenti aggiuntivi per indicare linea e file su cui è avvenuto @@ -3212,10 +3208,9 @@ l'errore è \funcd{error\_at\_line}; il suo prototipo è: \noindent ed il suo comportamento è identico a quello di \func{error} se non per il fatto che, separati con il solito due punti-spazio, vengono inseriti un nome di file indicato da \param{fname} ed un numero di linea subito dopo la -stampa del nome del programma. Inoltre essa usa un'altra -\index{variabili!globali} variabile globale, \var{error\_one\_per\_line}, che -impostata ad un valore diverso da zero fa si che errori relativi alla stessa -linea non vengano ripetuti. +stampa del nome del programma. Inoltre essa usa un'altra variabile globale, +\var{error\_one\_per\_line}, che impostata ad un valore diverso da zero fa si +che errori relativi alla stessa linea non vengano ripetuti. % LocalWords: filesystem like kernel saved header limits sysconf sez tab float