Iniziata la robba seria ... si fa per dire
authorSimone Piccardi <piccardi@gnulinux.it>
Tue, 28 May 2002 17:47:50 +0000 (17:47 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Tue, 28 May 2002 17:47:50 +0000 (17:47 +0000)
fileadv.tex
fileunix.tex
ipc.tex
macro.tex

index b27f34e1df8b11bf3d80a6494c00869723103b10..6737554729c23493928bed51931c1a4a9c911af8 100644 (file)
@@ -13,8 +13,8 @@ file mappati in memoria.
 Uno dei problemi che ci si trova ad affrontare con le funzioni ordinarie
 trattate in \capref{cha:file_unix_interface} è quello in cui si devono
 eseguire su più di un file descriptor delle operazioni che possono bloccarsi:
-il problema è che mentre si è bloccati su un file un'altro potrebbe essere
-libero.
+il problema è che mentre si è bloccati su un file su di un'altro potrebbero
+essere presenti dati da leggere.
 
 In questa sezione vedremo come si possono affrontare queste problematiche,
 quali sono le soluzioni possibili e quali i meccanismi il kernel e le librerie
@@ -40,8 +40,7 @@ specificando il flag \macro{O\_NONBLOCK}. In questo caso le funzioni che si
 sarebbero bloccate ritornano immediatamente restituendo l'errore
 \macro{EAGAIN}.
 
-Esistono molti casi però in cui non si vuole che questo avvenga
-
+L'utilizzo di questa modalità di I/O permette allora di risolvere il problema 
 
 
 %\section{I/O asincrono}
index 5cef3d24ddfb2240246c3f0f607a2004c6d67509..7f970c7bf23fbee3001c4bbce71faf74301825d3 100644 (file)
@@ -1,6 +1,7 @@
 \chapter{I file: l'interfaccia standard Unix}
 \label{cha:file_unix_interface}
 
+
 Esamineremo in questo capitolo la prima delle due interfacce di programmazione
 per i file, quella dei \textit{file descriptor}, nativa di Unix. Questa è
 l'interfaccia di basso livello provvista direttamente dalle system call, che
diff --git a/ipc.tex b/ipc.tex
index f86a851e9fb41c5b43913f428d8e80354758fd15..6c1041ef5271eadb33f5027e1b0fd98d9080868d 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -2,18 +2,18 @@
 \label{cha:IPC}
 
 
-\section{Introduzione}
-\label{sec:ipc_intro}
-
-Uno degli aspetti fondamentali della programmazione in unix è la comunicazione
-fra processi. In questo capitolo affronteremo solo alcuni dei meccanismi più
-elementari che permettono di mettere in comunicazione processi diversi, come
-quelli tradizionali che coinvolgono \textit{pipe} e \textit{fifo} e i
-meccanismi di intercomunicazione di System V.
+Uno degli aspetti fondamentali della programmazione in un sistema unix-like è
+la comunicazione fra processi. In questo capitolo affronteremo solo alcuni dei
+meccanismi più elementari che permettono di mettere in comunicazione processi
+diversi, come quelli tradizionali che coinvolgono \textit{pipe} e
+\textit{fifo} e i meccanismi di intercomunicazione di System V.
 
 Esistono pure sistemi più complessi ed evoluti come le RPC (\textit{Remote
   Procedure Calls}) e CORBA (\textit{Common Object Request Brocker
-  Architecture}) che non saranno affrontati qui.
+  Architecture}) che non saranno affrontati qui. Inoltre tratteremo nei
+capitoli successivi tutta la problematica relativa alla comunicazione
+attraverso la rete.
+
 
 
 \section{La comunicazione fra processi tradizionale}
@@ -27,32 +27,60 @@ funzioni che ne gestiscono l'uso e le varie forme in cui si 
 \subsection{Le \textit{pipe} standard}
 \label{sec:ipc_pipes}
 
+Le \textit{pipe} nascono sostanzialmente con Unix, e sono il primo, e più
+comunemente usato, meccanismo di comunicazione fra processi. Esse sono un file
+speciale in cui un processo scrive ed un altro legge. Si viene così a
+costituire un canale di comunicazione fra i due processi, nella forma di un
+\textsl{tubo} (da cui il nome) in cui uno immette dati che arriveranno
+all'altro. 
+
+Perché questo accada però, e questo è il principale limite nell'uso delle
+\textit{pipe}, è necessario che questi processi possano condividere il file
+descriptor della \textit{pipe}; per questo essi devono comunque derivare da
+uno stesso processo padre, o, più comunemente, essere nella relazione
+padre/figlio.
+
 
 
 \subsection{Le \textit{pipe} con nome, o \textit{fifo}}
 \label{sec:ipc_named_pipe}
 
+Per poter superare il problema delle \textit{pipe} originali, che consentono
+la comunicazione solo fra processi correlati, passando attraverso strutture
+interne del kernel, sono stati introdotti dei nuovi oggetti, le \textit{fifo},
+che invece possono risiedere sul filesystem, e che i processi possono usare
+per le comunicazioni senza dovere per forza essere in relazione diretta. 
+
 
 
 
 \section{La comunicazione fra processi di System V}
 \label{sec:ipc_sysv}
 
-Per ovviare ai vari limiti dei meccanismo tradizionale di comunicazione fra
+Per ovviare ai vari limiti dei meccanismo tradizionale di comunicazione fra
 processi basato sulle \textit{pipe}, nello sviluppo di System V vennero
 introdotti una serie di nuovi oggetti che garantissero una maggiore
 flessibilità; in questa sezione esamineremo quello che viene ormai chiamato il
-sistema \textit{SystemV IPC}.
-
+\textit{System V Inter Process Comunication system}, più comunemente noto come 
+\textit{SystemV IPC}. 
 \subsection{Code di messaggi}
 \label{sec:ipc_messque}
 
+Il primo oggetto introdotto dal \textit{SystemV IPC} è quello delle code di
+messaggi. 
+
 \subsection{Semafori}
 \label{sec:ipc_semaph}
 
+Il secondo oggetto introdotto dal \textit{SystemV IPC} è quello dei semafori.
+
+
 \subsection{Memoria condivisa}
 \label{sec:ipc_shar_mem}
 
+Il terzo oggetto introdotto dal \textit{SystemV IPC} è quello della memoria
+condivisa.
 
 %%% Local Variables: 
 %%% mode: latex
index a3aa82a373e3d2bd0d8f95f6771850803e0d245b..d854dbe105caeb820ff69a743373c1f7868b5240 100644 (file)
--- a/macro.tex
+++ b/macro.tex
@@ -139,3 +139,8 @@ tab.~\thechapter.\theusercount}
 %\newenvironment{description*}{\begin{description}}{\end{description}}
 %\newenvironment{itemize*}{\begin{itemize}}{\end{itemize}}
 %\newenvironment{enumerate*}{\begin{enumerate}}{\end{enumerate}}
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "gapil"
+%%% End: