\chapter{La comunicazione fra processi}
\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.

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.


\section{La comunicazione fra processi tradizionale}
\label{sec:ipc_unix}

Il primo meccanismo di comunicazione fra processi usato dai sistemi unix-like
è quello delle \textit{pipe}, in questa sezione descriveremo le sue basi, le
funzioni che ne gestiscono l'uso e le varie forme in cui si è evoluto.


\subsection{Le \textit{pipe} standard}
\label{sec:ipc_pipes}



\subsection{Le \textit{pipe} con nome, o \textit{fifo}}
\label{sec:ipc_named_pipe}




\section{La comunicazione fra processi di System V}
\label{sec:ipc_sysv}

Per ovviare ad i 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}.

\subsection{Code di messaggi}
\label{sec:ipc_messque}

\subsection{Semafori}
\label{sec:ipc_semaph}

\subsection{Memoria condivisa}
\label{sec:ipc_shar_mem}

