next up previous contents
suivant: Récupération d'un message monter: Mécanisme de communication : précédent: Création d'un message   Table des matières

Envoi d'un message

L'envoi d'un message s'effectue en utilisant la fonction de la libc système :

  int send_msg(t_msg *msg_hdr);
.

Il suffit à l'utilisateur de passer en paramètre la structure de message précédemment crée et remplie.

Encore une fois, cette fonction est un appel système et c'est donc le noyau qui se charge d'envoyer le message. Ce dernier commence par lire dans le header du message l'identifiant de tâche du destinataire (en se plaçant dans l'espace d'adressage de l'emetteur). Puis il initialise et remplie une autre structure de message, dit ``message noyau''. Cette structure est composée des champs suivants:

Il ne reste alors plus qu'à délivrer ce message à la tâche destinatrice. Tout d'abord un petit complément sur les tâches : chacune d'elles possède un ensemble de messages, en fait une liste chaînée dans laquelle sont stockées les messages à destination de la tâche. Le noyau ajoute donc simplement la structure message noyau créée dans la file de messages du destinataire et rend la main à la tâche émettrice.


next up previous contents
suivant: Récupération d'un message monter: Mécanisme de communication : précédent: Création d'un message   Table des matières
nicolas 2006-07-30