\documentclass{article}
 
\usepackage{amsfonts, amssymb, amsmath,amscd}
\usepackage{graphicx}
\usepackage{color}

\usepackage{listings}

\lstset{% general command to set parameter(s)
   basicstyle=\small,          % print whole listing small
   keywordstyle=\color{black}\bfseries,
                               % underlined bold black keywords
   identifierstyle=,           % nothing happens
   commentstyle=\color{white}, % white comments
   stringstyle=\ttfamily,      % typewriter type for strings
   language={C},
   emphstyle=\color{red},
   showstringspaces=false}     % no special string spaces


\def\gcc#1{\texttt{#1}}
\def\tty#1{\texttt{#1}}
\def\nullptr{\textsc{null}}

\title{communication interprocessus}
%%\author{Philippe Langevin}
\date{Novembre 2008}


\input listings.tex

\begin{document}

\maketitle

On examine deux autres moyens de communication interprocessus
offerts par les syst\`emes autres que les \emph{tubes}~: \emph{file de message}, 
\emph{m\'emoire partag\'es}. Un dernier moyen tr\'es puissant
concernant les communications processus distants (\emph{socket} ) sera vu 
dans le cours de programmation r\'eseau.

\section{File de message}

L'ex\'ecution des commandes de la cible \gcc{demo1} est illustr\'ee 
par la figure (\ref{msgout}). Trois messages sont envoy\'es dans 
une file de messages identifi\'ees par le nom de l'ex\'ecutable, puis
lus avec des priorit\'es diff\'erentes. La commande \gcc{ipcs} est
utilis\'ee pour tracer l'\'evolution de la file de messages.
\begin{itemize}
\item[(a)] Expliquer le r\^ole des appels syst\`emes.
\item[(b)] Commenter la gestion du \emph{type} des messages.  
\end{itemize}

%%\mainINmsg.c

\lstinputlisting[emph={ftok, msgsnd, msgrecv, msgctl, msgget}, numbers=left]{msg.c}

\begin{figure}[here]
\lstinputlisting[]{msg.out}
\caption{\label{msgout} msg.out}
\end{figure}


\section{M\'emoire partag\'ee}

L'ex\'ecution des commandes de la cible \gcc{demo2} est illustr\'ee 
par la figure (\ref{shmout}). Une zone de 26 octets est partag\'ee par
deux processus. La commande \gcc{ipcs} est utilis\'ee pour tracer 
la m\'emoire partag\'ee.
\begin{itemize}
\item[(a)] Expliquer le r\^ole des appels syst\`emes.
\item[(b)] Commenter l'ex\'ecution.
\item[(c)] L'ensemble est-t-il correct ?
\end{itemize}

%% \mainINshm.c
\lstinputlisting[emph={ftok, shmget, shmat}, numbers=left]{shm.c}

\begin{figure}[here]
\lstinputlisting[]{shm.out}
\caption{\label{shmout} shm.out}
\end{figure}

\begin{itemize}
\item[(a)] 
\item[(b)] 
\end{itemize}


%%\lstinputlisting[firstline=8, emph={dup, dup2, fork, pipe}]{dup.c}

%%\rotatebox{-90}{\includegraphics[scale=0.6]{udp}}

\section{Makefile}

\lstinputlisting[]{makefile}
\end{document}
