Extension d'un noyau de processus légers

 
 

Etape 4 - communication entre processus

1. Que veut-on fournir

On souhaite fournir des fonctions permettant aux processus légers de communiquer entre eux.  Deux types de fonctions de communication doivent être mises en oeuvre : Dans cette étape, on se limite aux communications non temporisées. Ces fonctions utilisent la notion de boite-aux-lettres, qui est une structure de désignation et de stockage des lettres. En d'autres termes, un processus peut émettre un message à destination d'une boite aux lettres donnée. Bien entendu, un processus ayant créé une boite-aux-lettres à la possibilité de retirer les messages stockés dans sa boite.
Une boite aux lettres contiendra un nombre maximum fixé de messages. Tout message sera structuré comme suit :

2. Interface à réaliser

Les interfaces qui devront être fournies sont les suivantes.

Interface du module MailBox

 

3. Principes de mise en oeuvre

Le transfert des messages entre un processus émetteur et un processus récepteur se fera par valeur, c'est à dire que le contenu du message devra être copié depuis le contexte du processus émetteur dans la boite aux lettre du récepteur, et depuis la boite aux lettres dans le contexte du processus récepteur. La propriété que l'on souhaite assurer est qu'apres avoir appelé la fonction mailBoxSend (mb, m), alors la structure de donnée pointée par m est utilisable pour l'envoi de prochains messages.

En outre, toute structure de type MailBox doit être gérée selon le modele Producteurs/Consommateurs étudié au 1er trimestre. En particulier, le retrait des messages doit être réalisé selon l'ordre FIFO.
 
 

5. Travail demandé

Il est demandé de :