Département Télécommunications, Services & Usages 2007-2008
SDE-TP4
Loterie
Durée encadrée prévue : 8 heures
Avertissement : il est strictement interdit de faire ce TP en telnet ou ssh sur les serveurs du département. Utilisez un ssh sur tc-infoxxx à la place.
1.But du TP
Ce TP a pour but de vous initier à la programmation multi-processus et aux IPC (Inter-Process Communication) en C sous Linux.
2.Présentation du sujet 2.1.Vue utilisateur (cahier des charges) :
Un utilisateur inscrit des participants à une loterie. Un nombre minimum de participants à un tirage est aléatoirement calculé (seuil). Quand ce minimum est atteint, un tirage est effectué parmi les inscrits, il désigne le gagnant !
2.2.Modélisation :
On a 5 processus.
-
Inscription récupére le nom des candidats et les transmet à Ecrivain.
-
Alea tire un nombre aléatoire (le seuil: nombre minimum de participants à un tirage) et le transmet à Ecrivain.
Ecrivain récupère le seuil et les noms des candidats et inscrit ces informations dans une mémoire partagée. Tirage effectue un tirage lorsque le nombre d’inscrits a atteint ou dépassé le seuil. Il envoie le nom du gagnant à affiche. Il purge ensuite la liste des inscrits et met à 0 le seuil. -
Affiche récupère le nom du gagnant et l'affiche.
Les processus Inscription et Alea transmettent leurs informations à Ecrivain via une boîte aux lettres.
Le processus Ecrivain inscrit les informations reçues dans une mémoire partagée.
Le processus Tirage incite Alea à déterminer un nouveau seuil par l’utilisation d’un signal.
Le processus Tirage transmet le nom du gagnant à Affiche via un tube ordinaire.
Les processus s'arrêtent proprement sur réception du signal SIGINT.
Les noms sont des chaînes d’au maximum 20 caractères.
Avant de remplir la mémoire partagée, on utilisera des octets de bourrage pour aligner les noms sur exactement 20 caractères.
La mémoire partagée contient au maximum 100 noms.
3.Votre travail 3.1.Conception
Faire la conception de cet exercice. Représentez en Lâcatre les interactions entre processus, écrivez les macro-algorithmes des fonctions utiles à chaque processus, définissez les clés des éléments d’IPC…
Ne mettez des relations père-fils entre processus que si elles sont indispensables.
Prévoyez les tests à effectuer à toutes les étapes.
3.2.Préparation de l’implantation
Prévoyez un plan d’implantation très précis. Nous vous conseillons fortement de prévoir d’écrire dans un premier temps deux processus effectuant une IPC entre eux, avec des informations « en dur », puis seulement après d’ajouter le traitement réel de l’information, puis alors de lier à un autre processus via une IPC déjà implantée et validée séparément…
Réfléchissez à comment vous allez lancer cette application (comment l’automatiser ?), à comment la quitter proprement, que faire si votre application « plante » ?..
3.3.Implantation
Suivez votre plan d’implantation, notez vos tests…
Il est conseillé de vérifier l'état des processus et des IPC chaque fois que vous commencez à travailler... (ipcs pour savoir et ipcrm pour détruire).
Laisser votre machine « propre » à chaque fois que vous arrêtez ce TP (processus et IPC). Pour cela, utiliser kill -SIGINT `/sbin/pidof nomProcessus` (attention, c'est un accent grave!!!).
Bien penser, dans chaque processus, à rajouter une fonction fin() qui, entre autres, détruit les IPC et permet de sortir correctement.
Remarque: Le but de ce TP n'est pas d'apprendre à gérer les chaînes de caractères et le scanf, mais de mettre en oeuvre des IPC. Donc, vous serez notés à 90% là-dessus.
3.4.Indice
Comment prévoyez-vous de faire pour que toutes les IPC soient détruites proprement dans tous les cas de figures?
3.5.Date échéances et livrables
07/11/07 : Distribution des sujets
13 et 16/11/07 : Aide à la préparation lors de la séance de TD SDE (durant une heure.. préparez vos questions pour être efficaces !)
23/11/07 à 8h (du matin) au plus tard : Préparation à rendre au secrétariat des études (cette préparation comprend les parties « Conception » et « Préparation à l’implémentation »).
30/11/07 : Nous vous rendons cette préparation corrigée lors de la première séance de TP.
21/12/07 à 12h au plus tard : Compte rendu du TP complet à rendre au secrétariat des études. Rédigez votre compte-rendu final selon les conseils donnés sur la fiche « Un compte-rendu de TP » donnée dans les documents de référence du PIT. Longueur max. hors listing : 10 pages.
Semaine du 7 au 11 janvier 2008 : démonstration (penser à s’inscrire sur le planning !).
SDE – TP2 I. Augé-Blum, F. Laforest, N. Mitton, A. Scherrer, F. Théoleyre
Dostları ilə paylaş: |