Exercices dirigés

1 Primitives d'utilisation des messages queues

Préambule : rappel du format des primitives permettant l'utilisation des messages queues

1.1 Exercice 1

On considère deux processus A et B communiquant via une MSQ de clé 17. Le processus A crée la MSQ, puis écrit le message "ceci est un message" à destination du processus B. Le processus B lit le message et l'afiche, puis détruit la MSQ.
Ecrivez les programmes correspondants.

1.2 Exercice 2

On considère l'architecture logicielle suivante :

 A - Le serveur attend des questions de la part de clients. Une question correspond à la demande d'envoi de n nombres tirés au sort par le serveur, n étant un nombre aléatoire compris entre 1 et NMAX tiré au sort par le client et envoyé par le client au serveur.
Ecrivez les programmes correspondants. On vous donne les fonctions suivantes : 
 
 
Un appel à la fonction
#include <stdlib.h>
Int rand(void); renvoie un nombre pseudo-aléatoire dans l'intervalle [O… RAND-MAX]. Il est nécessaire d'initialiser le générateur par un appel à la fonction
#include <stdlib.h> void srand (unsigned int val) Cette fonction peut être appelée avec comme paramètre soit le numéro du processus srand (unsigned int) getpid ()) soit la date courante srand (unsigned int) time (NULL).
 
 
B - On souhaite remplacer la message queue par des tubes anonymes. Comment faut-il modifier l'architecture logicielle précédente ? 
Donnez les grandes étapes du code en considérant seulement deux clients.
 
 
Voir la correction
Allocation mémoire Exercices dirigés