Simulateur de vente de dérnier moment de places d'avions
€30-250 EUR
Paid on delivery
Le but de ce TP est de nous familiariser avec la programmation multi processus ainsi
qu’aux IPC (Inter Process Communications). Le langage de programmation utilisé est le C
sous Linux.
Nous devons réaliser un simulateur de vente au dernier moment de places invendues,
sur des vols commerciaux. Pour réaliser ce simulateur, le cahier des charges nous impose
l’utilisation de 5 processus et les modes de communication inter processus :
- Utilisateur : envoi la destination et le nombre de places saisies par l’utilisateur au
processus Agence à l’aide d’une boîte aux lettres.
- Agence : lit dans la mémoire partagée et vérifie si la transaction est possible.
Agence répond à Utilisateur à l’aide de signaux.
- Tirage : tire périodiquement et aléatoirement des destinations et un nombre de
places, puis les envois à Ecrivain à l’aide d’un tube ordinaire.
- Ecrivain : récupère les informations contenues dans le tube et les inscrits dans la
mémoire partagée s’il reste de la place, sinon il attend.
- Affiche : lit la mémoire partagée et affiche les destinations non complètes. Il doit
également effacer les destinations complètes de la mémoire partagée.
Le cahier des charges nous impose également un nombre maximum de 20 caractères
pour les destinations. Avant de remplir la mémoire partagée, il faut que Ecrivain ajuste les
noms des destinations à 20 caractères (à l’aide de bourrage).Le nombre de vols est limité à 20.
Les mémoires partagées, les sémaphores ainsi que les files de messages nécessitent
une clef pour pouvoir utiliser ces IPC. Voici les clefs que nous avons décidé d’utiliser :
• Clef de la mémoire partagée : 100
• Clef de la boîte aux lettres (BAL) : 200
• Clef du sémaphore mutex : 300
Le compte rendu ni le LACATRE n'est pas à faire.
Il faudra juste faire la partie codage en C, puis détailler le code de manière précise à l'aide de beaucoup de commentaires (il est préférable de le faire de manière pédagogique).
Le code doit compiler, se lancer et les processus doivent communiquer entre eux.
Les bibliothèques nécessaires pour manipuler les sémaphores sont joints.
Project ID: #12677430