From b02540b05b22d92851c3bae5cce8546601300ee3 Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Sun, 25 Apr 2004 17:48:47 +0000 Subject: [PATCH] Correzioni varie da Paolo Giarrusso. --- .cvsignore | 13 +++++++++++++ ChangeLog | 5 +++++ img/.cvsignore | 3 +++ listati/.cvsignore | 1 + othersock.tex | 23 ++++++++++++----------- process.tex | 4 ++-- prochand.tex | 14 ++++++-------- sources/.cvsignore | 2 ++ 8 files changed, 44 insertions(+), 21 deletions(-) create mode 100644 .cvsignore create mode 100644 img/.cvsignore create mode 100644 listati/.cvsignore create mode 100644 sources/.cvsignore diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..308b19e --- /dev/null +++ b/.cvsignore @@ -0,0 +1,13 @@ +*.aux +*.bbl +*.blg +*.dvi +*.pdf +*.ps +*.idx +*.log +*.idx +*.ilg +*.ind +*.roc +*.tgz diff --git a/ChangeLog b/ChangeLog index 5027669..b27b03e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-04-25 Simone Piccardi + + * process.tex: correzioni da Paolo Giarrusso, refuso su BSS e tipo + della funzione setjmp. + 2004-02-17 Simone Piccardi * netlayer.tex: correzioni agli indirizzi IPv6 suggerite da diff --git a/img/.cvsignore b/img/.cvsignore new file mode 100644 index 0000000..4aa8b6e --- /dev/null +++ b/img/.cvsignore @@ -0,0 +1,3 @@ +*.pdf +*.ps +*.eps diff --git a/listati/.cvsignore b/listati/.cvsignore new file mode 100644 index 0000000..2d19fc7 --- /dev/null +++ b/listati/.cvsignore @@ -0,0 +1 @@ +*.html diff --git a/othersock.tex b/othersock.tex index bbd2e76..5af4f66 100644 --- a/othersock.tex +++ b/othersock.tex @@ -449,13 +449,13 @@ inviati dai client. Lo scopo della funzione volte che un pacchetto viene inviato al server, in modo da poter ricavare da esso l'indirizzo del client a cui inviare la risposta in \var{addr}. Per questo motivo in questo caso (al contrario di quanto fatto in -\figref{fig:UDP_daytime_client}) si è avuto cura di passare gli opportuni -argomenti alla funzione. Dopo aver controllato (\texttt{\small 27--30}) la -presenza di eventuali errori (uscendo con un messaggio di errore qualora ve ne -siano) si verifica (\texttt{\small 31}) se è stata attivata l'opzione -\texttt{-v} (che imposta la variabile \var{verbose}) stampando nel caso -(\texttt{\small 32--35}) l'indirizzo da cui si è appena ricevuto una richiesta -(questa sezione è identica a quella del server TCP illustrato in +\figref{fig:UDP_daytime_client}) si è avuto cura di passare gli argomenti +\var{addr} e \var{len} alla funzione. Dopo aver controllato (\texttt{\small + 27--30}) la presenza di eventuali errori (uscendo con un messaggio di errore +qualora ve ne siano) si verifica (\texttt{\small 31}) se è stata attivata +l'opzione \texttt{-v} (che imposta la variabile \var{verbose}) stampando nel +caso (\texttt{\small 32--35}) l'indirizzo da cui si è appena ricevuto una +richiesta (questa sezione è identica a quella del server TCP illustrato in \figref{fig:TCP_daytime_cunc_server_code}). Una volta ricevuta la richiesta resta solo da ottenere il tempo corrente @@ -471,9 +471,10 @@ fatto che non esiste il concetto di connessione, per cui non c' di trattare separatamente le singole connessioni. Questo significa anche che è il kernel a gestire la possibilità di richieste multiple in contemporanea; quello che succede è semplicemente che il kernel accumula in un buffer in -ingresso i pacchetti che arrivano e li restituisce al processo uno alla volta -per ciascuna chiamata di \func{recvfrom}; è poi compito del server distribuire -le risposte sulla base dell'indirizzo da cui provengono le richieste. +ingresso i pacchetti UDP che arrivano e li restituisce al processo uno alla +volta per ciascuna chiamata di \func{recvfrom}; nel nostro caso sarà poi +compito del server distribuire le risposte sulla base dell'indirizzo da cui +provengono le richieste. @@ -483,7 +484,7 @@ le risposte sulla base dell'indirizzo da cui provengono le richieste. Come illustrato in \secref{sec:UDP_characteristics} essendo i socket UDP privi di connessione non è necessario per i client usare \func{connect} prima di -iniziare una comunicazione con un server. +iniziare una comunicazione con un server. diff --git a/process.tex b/process.tex index 0678e27..39e0101 100644 --- a/process.tex +++ b/process.tex @@ -373,7 +373,7 @@ seguenti segmenti: puntatori a \val{NULL}).\footnote{si ricordi che questo vale solo per le variabili che vanno nel segmento dati, e non è affatto vero in generale.} - Storicamente questo segmento viene chiamato BBS (da \textit{block started by + Storicamente questo segmento viene chiamato BSS (da \textit{block started by symbol}). La sua dimensione è fissa. \item Lo \textit{heap}. Tecnicamente lo si può considerare l'estensione del @@ -1506,7 +1506,7 @@ funzione da cui si era partiti, quando serve. La funzione che permette di salvare il contesto dello stack è \funcd{setjmp}, il cui prototipo è: \begin{functions} \headdecl{setjmp.h} - \funcdecl{void setjmp(jmp\_buf env)} + \funcdecl{int setjmp(jmp\_buf env)} Salva il contesto dello stack. diff --git a/prochand.tex b/prochand.tex index 448ad06..f8e2fee 100644 --- a/prochand.tex +++ b/prochand.tex @@ -143,7 +143,6 @@ seguito incontreremo a pi \label{fig:proc_task_struct} \end{figure} - Come accennato in \secref{sec:intro_unix_struct} è lo \textit{scheduler}\index{scheduler} che decide quale processo mettere in esecuzione; esso viene eseguito ad ogni system call ed ad ogni @@ -167,13 +166,12 @@ esecuzione fino alla successiva invocazione. \subsection{Una panoramica sulle funzioni fondamentali} \label{sec:proc_handling_intro} -I processi vengono creati dalla funzione \func{fork}; in molti unix questa è -una system call, Linux però usa un'altra nomenclatura, e la funzione -\func{fork} è basata a sua volta sulla system call \func{\_\_clone}, che viene -usata anche per generare i \textit{thread}. Il processo figlio creato dalla -\func{fork} è una copia identica del processo processo padre, ma ha un nuovo -\acr{pid} e viene eseguito in maniera indipendente (le differenze fra padre e -figlio sono affrontate in dettaglio in \secref{sec:proc_fork}). +In un sistema unix-like i processi vengono sempre creati da altri processi +tramite la funzione \func{fork}; il nuovo processo (che viene chiamato +\textsl{figlio}) creato dalla \func{fork} è una copia identica del processo +processo originale (detto \textsl{padre}), ma ha un nuovo \acr{pid} e viene +eseguito in maniera indipendente (le differenze fra padre e figlio sono +affrontate in dettaglio in \secref{sec:proc_fork}). Se si vuole che il processo padre si fermi fino alla conclusione del processo figlio questo deve essere specificato subito dopo la \func{fork} chiamando la diff --git a/sources/.cvsignore b/sources/.cvsignore new file mode 100644 index 0000000..9d22eb4 --- /dev/null +++ b/sources/.cvsignore @@ -0,0 +1,2 @@ +*.o +*.so -- 2.30.2