X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=ipc.tex;h=4d9c357e74711b7fa5d2fea51d70680598057961;hp=f820a13b0cbaec3b200ff368c5a1564682a6e298;hb=5e9607e62d03da3360bd27146e788a89a0820ab9;hpb=d0857f954c1e119824cac840cdc8ab1cc88c71b0 diff --git a/ipc.tex b/ipc.tex index f820a13..4d9c357 100644 --- a/ipc.tex +++ b/ipc.tex @@ -1072,8 +1072,8 @@ Il secondo livello di controllo è quello delle varie funzioni che accedono direttamente (in lettura o scrittura) all'oggetto. In tal caso lo schema dei controlli è simile a quello dei file, ed avviene secondo questa sequenza: \begin{itemize*} -\item se il processo ha i privilegi di amministratore (più precisamente la - capacità \const{CAP\_IPC\_OWNER}) l'accesso è sempre consentito. +\item se il processo ha i privilegi di amministratore (più precisamente + \const{CAP\_IPC\_OWNER}) l'accesso è sempre consentito. \item se l'\ids{UID} effettivo del processo corrisponde o al valore del campo \var{cuid} o a quello del campo \var{uid} ed il permesso per il proprietario in \var{mode} è appropriato\footnote{per appropriato si intende che è @@ -1362,7 +1362,7 @@ come \ctyp{short}. \begin{figure}[!htb] \footnotesize \centering - \begin{minipage}[c]{.90\textwidth} + \begin{minipage}[c]{.91\textwidth} \includestruct{listati/msqid_ds.h} \end{minipage} \normalsize @@ -1945,7 +1945,7 @@ processo, e la gestione diventa più complicata. \begin{figure}[!htb] \footnotesize \centering - \begin{minipage}[c]{.80\textwidth} + \begin{minipage}[c]{.85\textwidth} \includestruct{listati/semid_ds.h} \end{minipage} \normalsize @@ -1975,7 +1975,7 @@ quanto riguarda gli altri campi invece: \begin{figure}[!htb] \footnotesize \centering - \begin{minipage}[c]{.80\textwidth} + \begin{minipage}[c]{.85\textwidth} \includestruct{listati/sem.h} \end{minipage} \normalsize @@ -2427,7 +2427,7 @@ struttura \struct{sembuf}) e al processo corrente (nel campo \var{sleeper}) poi quest'ultimo viene messo stato di attesa e viene invocato lo \textit{scheduler} per passare all'esecuzione di un altro processo. -Se invece tutte le operazioni possono avere successo queste vengono eseguite +Se invece tutte le operazioni possono avere successo vengono eseguite immediatamente, dopo di che il kernel esegue una scansione della coda di attesa (a partire da \var{sem\_pending}) per verificare se qualcuna delle operazioni sospese in precedenza può essere eseguita, nel qual caso la @@ -3778,9 +3778,9 @@ dei rispettivi limiti di sistema altrimenti la funzione fallirà con un errore di \errcode{EINVAL}. Se \param{attr} è un puntatore nullo gli attributi della coda saranno impostati ai valori predefiniti. -I suddetti limiti di sistema sono impostati attraverso altrettanti file in -\texttt{/proc/sys/fs/mqueue}, in particolare i file che controllano i valori -dei limiti sono: +I suddetti limiti di sistema sono impostati attraverso una serie di file +presenti sotto \texttt{/proc/sys/fs/mqueue}, in particolare i file che +controllano i valori dei limiti sono: \begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}} \item[\sysctlfiled{fs/mqueue/msg\_max}] Indica il valore massimo del numero di messaggi in una coda e agisce come limite superiore per il valore di @@ -3968,8 +3968,8 @@ nell'argomento \param{msg\_ptr}, e la relativa lunghezza in \param{msg\_len}. Se quest'ultima eccede la dimensione massima specificata da \var{mq\_msgsize} le funzioni ritornano immediatamente con un errore di \errcode{EMSGSIZE}. -L'argomento \param{msg\_prio} indica la priorità dell'argomento, che, essendo -definito come \ctyp{unsigned int}, è sempre un intero positivo. I messaggi di +L'argomento \param{msg\_prio} indica la priorità dell'argomento che essendo +definito come \ctyp{unsigned int} è sempre un intero positivo. I messaggi di priorità maggiore vengono inseriti davanti a quelli di priorità inferiore, e quindi saranno riletti per primi. A parità del valore della priorità il messaggio sarà inserito in coda a tutti quelli che hanno la stessa priorità @@ -4963,11 +4963,11 @@ quindi bloccato (causando a questo punto una interruzione delle stampe eseguite da \file{message\_getter}). Terminato il tempo di attesa si rilascerà (\texttt{\small 29-32}) il semaforo per poi uscire. -Per verificare il funzionamento dei programmi occorrerà lanciare per primo -\file{message\_getter}\footnote{lanciare per primo \file{message\_setter} darà - luogo ad un errore, non essendo stati creati il semaforo ed il segmento di - memoria condivisa.} che inizierà a stampare una volta al secondo il -contenuto del messaggio ed i suoi dati, con qualcosa del tipo: +Per verificare il funzionamento dei programmi occorrerà lanciare prima +\file{message\_getter} (lanciare per primo \file{message\_setter} darebbe +luogo ad un errore, non essendo stati creati il semaforo ed il segmento di +memoria condivisa) che inizierà a stampare una volta al secondo il contenuto +del messaggio ed i suoi dati, con qualcosa del tipo: \begin{Console} piccardi@hain:~/gapil/sources$ \textbf{./message_getter messaggio} sem=1, Fri Dec 31 14:12:41 2010 @@ -4990,10 +4990,8 @@ Sleeping for 3 seconds \end{Console} %$ dove il programma si fermerà per 3 secondi prima di rilasciare il semaforo e -terminare. - -L'effetto di questo programma si potrà però apprezzare meglio nell'uscita di -\file{message\_getter}, che verrà interrotta per questo stesso tempo, prima di +terminare. L'effetto di tutto ciò si potrà vedere nell'\textit{output} di +\file{message\_getter}, che verrà interrotto per questo stesso tempo, prima di ricominciare con il nuovo testo: \begin{Console} ...