Outils pour utilisateurs

Outils du site


td_-_processus

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
td_-_processus [2019/01/22 16:33] – created gillestd_-_processus [2019/03/13 13:08] (Version actuelle) gilles
Ligne 1: Ligne 1:
-%-------------------------------------------------------------- +====== Processus (4 heures) ======
-\chapter{Processus (4 heures)}+
  
-\begin{itemize} +Le but de ce TD est d'appréhender la manipulation de processus par le biais de la librairie standard.
-\item Cr\'eation de processus +
-\item Descripteurs de fichiers +
-\item Redirection de signaux +
-\end{itemize}+
  
-\section{Cr\'eation de processus}+ 
 +==== Q.1 - Création de processus ====
  
 Que font chacun de ces deux programmes ? Que font chacun de ces deux programmes ?
  
-\begin{center} +<code c>
-\begin{minipage}{7cm} +
-\begin{verbatim}+
 #include <stdio.h> #include <stdio.h>
  
Ligne 24: Ligne 18:
   printf("%d\n",i);   printf("%d\n",i);
 } }
-\end{verbatim} +</code> 
-\end{minipage} + 
-\begin{minipage}{7cm} +<code c>
-\begin{verbatim}+
 #include <stdio.h> #include <stdio.h>
  
Ligne 37: Ligne 30:
  
 main(){ g();g(); } main(){ g();g(); }
-\end{verbatim} +</code>
-\end{minipage} +
-\end{center}+
  
-\section{Duplication de l'espace m\'emoire}+==== Q.2 - Duplication de l'espace mémoire ====
  
 Que font chacun de ces deux programmes ? Que font chacun de ces deux programmes ?
  
-\begin{center} +<code c>
-\begin{minipage}{7cm} +
-\begin{verbatim}+
 #include <stdio.h> #include <stdio.h>
  
Ligne 57: Ligne 46:
     printf("Maman\n");     printf("Maman\n");
 } }
-\end{verbatim} +</code> 
-\end{minipage} + 
-\begin{minipage}{7cm} +<code c>
-\begin{verbatim}+
 #include <stdio.h> #include <stdio.h>
  
Ligne 70: Ligne 58:
     printf("Maman\n");     printf("Maman\n");
 } }
-\end{verbatim} +</code>
-\end{minipage} +
-\end{center}+
  
-\section{Apprenti sorcier}+==== Q.3 - Apprenti sorcier ====
  
 Que font chacun de ces deux programmes ? Que font chacun de ces deux programmes ?
  
-\begin{center} +<code c>
-\begin{minipage}{7cm} +
-\begin{verbatim}+
 #include <stdio.h> #include <stdio.h>
  
Ligne 94: Ligne 78:
   }   }
 } }
-\end{verbatim} +</code> 
-\end{minipage} + 
-\begin{minipage}{7cm} +<code c>
-\begin{verbatim}+
 #include <stdio.h> #include <stdio.h>
  
Ligne 111: Ligne 94:
   }   }
 } }
-\end{verbatim} +</code>
-\end{minipage} +
-\end{center} +
- +
-\section{Attente de terminaison}+
  
-\'Ecrire un programme qui cr\'ee N processus fils qui affichent les entiers de 1 \`a N (chaque processus fils n'affichant qu'un seul entier). Synchroniser les processus pour garantir que l'affichage se fait dans l'ordre croissant.+==== Q.4 - Attente de terminaison ====
  
-\section{Redirection d'entr\'ee standard\label{exo-dup}}+Ecrire un programme qui crée ''N'' processus fils qui affichent les entiers de 1 à ''N'' (chaque processus fils n'affichant qu'un seul entier). Synchroniser les processus pour garantir que l'affichage se fait dans l'ordre croissant.
  
-\'Ecrire un programme C qui lit sur l'entr\'ee standard un nom de fichier puis qui redirige l'entr\'ee standard sur ce fichier, y lit le contenu et l'affiche sur la sortie standard, et recommence le tout (\`a partir de l'entr\'ee au clavier du nom de fichier) ind\'efiniment.+==== Q.5 - Redirection d'entrée standard ====
  
-\section{Pipe}+Ecrire un programme ''C'' qui lit sur l'entrée standard ''stdin'' un nom de fichier puis qui redirige l'entrée standard sur ce fichier, y lit le contenu et l'affiche sur la sortie standard, et recommence le tout (à partir de l'entrée au clavier du nom de fichier) indéfiniment.
  
-M\^eme exercice que \ref{exo-dup}, mais le flux de sortie est redirig\'e vers un autre processus qui passe toute minuscule en majuscule. Attention, le message demandant \`a chaque it\'eration d'entrer le nom de fichier doit s'afficher sur l'\'ecran ; et la lecture du nom sur le clavier.+==== Q.6 Tube ====
  
-\section{Highlander}+Même exercice que précédemment, mais le flux de sortie est redirigé vers un autre processus qui passe toute minuscule en majuscule. Attention, le message demandant à chaque itération d'entrer le nom de fichier doit s'afficher sur l'écran ; et la lecture du nom sur le clavier.
  
-\'Ecrire un programme qui compte le nombre de fois que la s\'equence Control-C est entr\'ee au clavier (i.e. que le signal SIGINT a \'et\'e envoy\'e au processus).+==== Q.7 L'immortel ====
  
-Comment arr\^eter ce programme ?+Ecrire un programme qui compte le nombre de fois que la séquence ''Control-C'' est entrée au clavier. Une précision :  ''Control-C'' poste le signal ''SIGINT'' au processus à l'avant-plan.
  
 +Comment arrêter ce programme ?
td_-_processus.1548174824.txt.gz · Dernière modification : 2019/01/22 16:33 de gilles