57 lines
1.3 KiB
TeX
57 lines
1.3 KiB
TeX
\chapter{IPC} \index{IPC}
|
|
\label{chap:IPC}
|
|
|
|
\textit{Inter Process Communication.}
|
|
|
|
Il existe deux familles bien distinctes. Nous allons donc
|
|
les voir dans le plus grand des désordres.
|
|
|
|
% ================================================================
|
|
|
|
\section{Signal} \index{signal}
|
|
|
|
nous allonc commencer par le plus simple mécanisme d'IPC~:
|
|
le signal.
|
|
Et pour ça, nous allons utiliser (encore une fois ?) un exemple
|
|
futile, certes, mais simple à comprendre.
|
|
|
|
Nous avons un programme qui tourne en boucle en effectuant des
|
|
taches complexes (simulées pour l'exemple par une nanosieste) et
|
|
nous souhaitons pouvoir lui demander d'afficher l'avancée de la
|
|
chose.
|
|
|
|
\label{get-signal}
|
|
\lstinputlisting[language=c]{code/get-signal.c}
|
|
|
|
\begin{verbatim}
|
|
fubar $ make get-signal
|
|
gcc -Wall get-signal.c -o get-signal
|
|
fubar $ ./get-signal &
|
|
[1] 14001
|
|
fubar $ kill me, my pid is 14001
|
|
kill -USR1 14001
|
|
fubar $ count is 15
|
|
kill -USR1 14001
|
|
fubar $ count is 22
|
|
kill %1
|
|
fubar $
|
|
[1]+ Terminated ./get-signal
|
|
fubar $
|
|
\end{verbatim}
|
|
|
|
% ================================================================
|
|
|
|
|
|
% ================================================================
|
|
|
|
\section{shared memory} \index{shared}
|
|
|
|
Mémoire partagée.
|
|
|
|
% ================================================================
|
|
|
|
\section{named pipe}
|
|
|
|
Tube nommé.
|
|
|