Aggiunte un po' di figure su message queue e login da terminale
authorSimone Piccardi <piccardi@gnulinux.it>
Sat, 24 Aug 2002 20:45:48 +0000 (20:45 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Sat, 24 Aug 2002 20:45:48 +0000 (20:45 +0000)
img/mqstruct.dia [new file with mode: 0644]
img/tty_login.dia [new file with mode: 0644]
ipc.tex
session.tex

diff --git a/img/mqstruct.dia b/img/mqstruct.dia
new file mode 100644 (file)
index 0000000..e9e2e7e
Binary files /dev/null and b/img/mqstruct.dia differ
diff --git a/img/tty_login.dia b/img/tty_login.dia
new file mode 100644 (file)
index 0000000..99b8960
Binary files /dev/null and b/img/tty_login.dia differ
diff --git a/ipc.tex b/ipc.tex
index fcf702a..290fe67 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -1207,6 +1207,14 @@ Se si imposta anche il bit corrispondente a \macro{IPC\_EXCL} la funzione avr
 successo solo se l'oggetto non esiste già, fallendo con un errore di
 \macro{EEXIST} altrimenti.
 
 successo solo se l'oggetto non esiste già, fallendo con un errore di
 \macro{EEXIST} altrimenti.
 
+Si tenga conto che l'uso di \macro{IPC\_PRIVATE} non impedisce ad altri
+processi di accedere alla coda (se hanno privilegi sufficienti) una volta che
+questi possano indovinare o ricavare l'identificatore ad essa associato. Per
+la loro implementazione non esiste cioè una maniera che garantisca l'accesso
+esclusivo ad una coda di messaggi. Usare \macro{IPC\_PRIVATE} o
+macro{IPC\_CREAT} e \macro{IPC\_EXCL} per \param{flag} comporta solo la
+creazione di una nuova coda. 
+
 Una coda di messaggi è costituita da una \textit{linked list}\footnote{una
   \textit{linked list} è una tipica struttura di dati, organizzati in una
   lista in cui ciascun elemento contiene un puntatore al successivo. In questo
 Una coda di messaggi è costituita da una \textit{linked list}\footnote{una
   \textit{linked list} è una tipica struttura di dati, organizzati in una
   lista in cui ciascun elemento contiene un puntatore al successivo. In questo
@@ -1216,18 +1224,46 @@ Una coda di messaggi 
   sequenziale (seguendo i puntatori), è invece relativamente lenta
   nell'accesso casuale e nella ricerca.} in cui nuovi messaggi vengono
 inseriti in coda per poi essere letti dalla cima, con una struttura del tipo
   sequenziale (seguendo i puntatori), è invece relativamente lenta
   nell'accesso casuale e nella ricerca.} in cui nuovi messaggi vengono
 inseriti in coda per poi essere letti dalla cima, con una struttura del tipo
-di quella illustrata in 
+di quella illustrata in \secref{fig:ipc_mq_schema}.\footnote{la struttura è
+  effettivamente in uso fino ai kernel della serie 2.2.x. Viene mantenuta nei
+  kernel della serie 2.4.x, dove la gestione è effettuata con strutture
+  diverse, solo per compatibilità; essa comunque è quella restituita dalle
+  funzioni dell'interfaccia ed illustra in maniera adeguata i principi di
+  funzionamento delle code di messaggi.}
+
+\begin{figure}[htb]
+  \centering
+  \includegraphics[width=15cm]{img/mqstruct}
+  \caption{Schema della struttura di una coda messaggi.}
+  \label{fig:ipc_mq_schema}
+\end{figure}
 
 
+Le code di messaggi sono caratterizzate da tre limiti fondamentali, definiti
+negli header e corrispondenti alle prime tre costanti riportate in , come
+accennato però in Linux è possibile modificare questi limiti attraverso l'uso
+di \func{syscntl} o scrivendo nei file \file{msgmax}, \file{msgmnb} e
+\file{msgmni} di \file{/proc/sys/kernel/}.
 
 
-Si tenga conto che l'uso di \macro{IPC\_PRIVATE} non impedisce ad altri
-processi di accedere alla coda (se hanno privilegi sufficienti) una volta che
-questi possano indovinare o ricavare l'identificatore ad essa associato. Per
-la loro implementazione non esiste cioè una maniera che garantisca l'accesso
-esclusivo ad una coda di messaggi. Usare \macro{IPC\_PRIVATE} o
-macro{IPC\_CREAT} e \macro{IPC\_EXCL} per \param{flag} comporta solo la
-creazione di una nuova coda. 
 
 
-Le code di messaggi sono caratterizzate da tre limiti 
+\begin{table}[htb]
+  \centering
+  \begin{tabular}[c]{|c|c|l|l}
+    \hline
+    \textbf{Costante} & \textbf{Valore} & \textbf{File in \texttt{proc}}
+    & \textbf{Significato} \\
+    \hline
+    \hline
+    \macro{MSGMNI}&   16& \file{msgmni} & Numero massimo di code di
+                                          messaggi. \\
+    \macro{MSGMAX}& 8192& \file{msgmax} & Dimensione massima di un singolo
+                                          messaggio.\\
+    \macro{MSGMNB}&16384& \file{msgmnb} & Dimensione massima di una coda di 
+                                          messaggi.\\
+    \hline
+  \end{tabular}
+  \caption{Valori delle costanti associati ai limiti delle code di messaggi.}
+  \label{tab:ipc_msg_limits}
+\end{table}
 
 Una volta creata una coda di messaggi se ne può controllare 
 
 
 Una volta creata una coda di messaggi se ne può controllare 
 
index 969c05d..180b032 100644 (file)
@@ -46,7 +46,15 @@ anch'esso definito nello stesso file.
 Tralasciando la descrizione del sistema dei run level, (per il quale si
 rimanda alla lettura della pagina di manuale di \cmd{init} e di
 \file{inittab}) quello che comunque viene sempre fatto è di lanciare almeno
 Tralasciando la descrizione del sistema dei run level, (per il quale si
 rimanda alla lettura della pagina di manuale di \cmd{init} e di
 \file{inittab}) quello che comunque viene sempre fatto è di lanciare almeno
-una istanza di un programma che permetta l'accesso ad un terminale.
+una istanza di un programma che permetta l'accesso ad un terminale. Uno schema
+di massima della procedura è riportato in \secref{fig:sess_term_login}.
+
+\begin{figure}[htb]
+  \centering
+  \includegraphics[width=15cm]{img/tty_login}
+  \caption{Schema della procedura di login su un terminale.}
+  \label{fig:sess_term_login}
+\end{figure}
 
 Un terminale, che esso sia un terminale effettivo, attaccato ad una seriale o
 ad un altro tipo di porta di comunicazione, o una delle console virtuali
 
 Un terminale, che esso sia un terminale effettivo, attaccato ad una seriale o
 ad un altro tipo di porta di comunicazione, o una delle console virtuali