Tout document autorisé
2) - Dans la classe CSemaphore, ajoutez la fonction membre
:
bool P_WouldBlock (void); |
qui ne bloque jamais le processus mais qui renvoie vrai chaque fois que le processus aurait dû être bloqué.
3) - Ecrire la classe CSemaphoreUser dérivée de la classe CSemaphore, afin que la fonction P() soit bloquante dès qu'il ne reste plus qu'un nombre minimal de sémaphores (passé en paramètre du constructeur).
les couples de voyelles(1) "ai", "au", "ei"
et "eu" doivent être
remplacés respectivement par les voyelles "E", "O", "E" et
"U"
1) - Selon le même modèle que les programmes exo_05a et exo_05b, écrire le programme exo_05c (fichier exo_05c.cxx) qui ne traite que la règle ci-dessus.
2) - Réécrire le fichier exo_06.cxx ("Les processus sous Unix", p. 24) afin de faire fonctionner l'ensemble, l'exercice exo_05c devant être inséré entre les programmes exo_05a et exo_05b.
(1) : majuscules ou minuscules
>question3a <NbreDeFois> |
se contente d'ouvrir en lecture seulement et de refermer aussitôt un fichier (pourquoi pas question_03a.cxx).
2) - La structure struct rusage (troisième paramètre
de la fonction wait3()) est composée d'un certain nombre
de champs dont deux seulement nous intéressent pour ce qui suit
:
struct rusage
{ struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ .... }; |
Dans le fichier question_03.cxx, écrire
le programme qui, lancé par la commande :
>question3a <NbreDeFois> |
crée un fils qui exécute le programme question_03a, attend la mort de ce fils, puis affiche les deux informations précédemment décrites ru_utime et ru_stime.