8
2 ème année TR ENSEEIHT Page 1 sur 8 2005-2006 Travaux Dirigés n°1 Ingénierie des protocoles - Réseaux de Petri Correction Question 1. Modélisation dʼun atelier de fabrication Question 1.1. Modélisation dʼune machine de fabrication simple Considérons une première analyse du système selon une approche à la UML. Le diagramme des cas d’utilisation ci-dessous donne l’ensemble des acteurs externes du système ainsi que les interactions. Machine acteur ordonnateur acteur récepteur ordre produi Toutefois, cette figure n’aide par à préciser le mode des interactions entre les deux acteurs et la machine : est-ce une communication synchrone, du type rendez-vous, ou asynchrone ? Pour répondre à cette question, il est nécessaire d’imaginer plusieurs scénarios. La machine est décomposée, selon l’énoncé, en deux machines organisées en pipe-line : une machine d’exécution et une machine d’envoi. On peut alors décrire l’ensemble des scénarios par des diagrammes de séquences. Trois scénarios sont envisageables : 1 er scénario : Machine d'exécution acteur ordonnateur acteur récepteur Machine d'envoi ordre produit_délivré fin_exec envoi_ordre Idle_exec Idle_exec Exec début_exec produit_prêt_à_envoyer début_envoi fin_envoi Idle_envoi Idle_envoi Envoi réception_produit Ce premier scénario montre les états et les événements présents dans le système. Les états Idle_exec, Exec, Idle_envoi et Envoi deviendront des places, tandis que les événements envoi_ordre, début_exec, fin_exec… réception_produit deviendront des transitions. Toutefois, ce premier scénario n’indique toujours pas le besoin en synchronisation entre les différentes parties du système. Ce besoin apparaît avec les deux scénarios suivants.

IP_N7TR_TD1_correction_short.pdf

Embed Size (px)

Citation preview

  • 2me anne TR ENSEEIHT

    Page 1 sur 8 2005-2006

    Travaux Dirigs n1 Ingnierie des protocoles - Rseaux de Petri

    Correction

    Question 1. Modlisation dun atelier de fabrication

    Question 1.1. Modlisation dune machine de fabrication simple Considrons une premire analyse du systme selon une approche la UML. Le diagramme des cas dutilisation ci-dessous donne lensemble des acteurs externes du systme ainsi que les interactions.

    Machine

    acteur

    ordonnateur

    acteur

    rcepteurordre

    produit

    Toutefois, cette figure naide par prciser le mode des interactions entre les deux acteurs et la machine : est-ce une communication synchrone, du type rendez-vous, ou asynchrone ? Pour rpondre cette question, il est ncessaire dimaginer plusieurs scnarios. La machine est dcompose, selon lnonc, en deux machines organises en pipe-line : une machine dexcution et une machine denvoi. On peut alors dcrire lensemble des scnarios par des diagrammes de squences. Trois scnarios sont envisageables : 1er scnario :

    Machine

    d'excutionacteur

    ordonnateur

    acteur

    rcepteur

    Machine

    d'envoi

    ordre

    produit_dlivr

    fin_exec

    envoi_ordre

    Idle_exec

    Idle_exec

    Exec

    dbut_exec

    produit_prt__envoyerdbut_envoi

    fin_envoi

    Idle_envoi

    Idle_envoi

    Envoi

    rception_produit

    Ce premier scnario montre les tats et les vnements prsents dans le systme. Les tats Idle_exec, Exec, Idle_envoi et Envoi deviendront des places, tandis que les vnements envoi_ordre, dbut_exec, fin_exec rception_produit deviendront des transitions. Toutefois, ce premier scnario nindique toujours pas le besoin en synchronisation entre les diffrentes parties du systme. Ce besoin apparat avec les deux scnarios suivants.

  • M1 Info Ingnierie des Protocoles Corrig du TD RdP ENSEEIHT

    Page 2 sur 8 2008-2009

    2me scnario : arrive dun ordre alors que la machine dexcution travaille

    Machine

    d'excutionacteur

    ordonnateur

    acteur

    rcepteur

    Machine

    d'envoi

    ordre

    produit_dlivrproduit_prt__envoyer

    ordre produit_prt__envoyer

    produit _dlivr

    ncessit de "stoker" le second ordre reu

    => analogue une communication asynchrone Ce second scnario montre que la communication entre lacteur ordonnateur et la machine dexcution ncessite une place pour stocker les ordres (qui seront donc modliss comme des jetons) en attendant leur traitement par la machine. 3me scnario : sortie dun produit envoyer alors que la machine denvoi travaille

    Machine

    d'excutionacteur

    ordonnateur

    acteur

    rcepteur

    Machine

    d'envoi

    ordre

    produit_dlivr

    produit_prt__envoyerordre

    produit_prt__envoyer

    produit _dlivr

    ncessit de "stoker" le second produit avant son envoi

    => analogue une communication asynchrone Ce troisime scnario montre que la communication entre la machine dexcution et la machine denvoi ncessite une place pour stocker les produits envoyer (qui seront donc modliss comme des jetons) en attendant leur traitement par la machine denvoi. De mme on fera lhypothse que la communication entre la machine denvoi et lacteur rcepteur est asynchrone. Les produits dlivrs seront stocks dans une place avant rception effective (vnement rception_produit) par lacteur rcepteur. Modlisation de lacteur ordonnateur : Lacteur ordonnateur se contente, daprs ces trois scnarios, denvoyer un ordre indpendamment de ltat des machines. Cet ordre est stock en attendant son traitement par la machine. Ce comportement peut tre modlis par le RdP suivant :

    P_Ordres

    envoi_ordre

  • M1 Info Ingnierie des Protocoles Corrig du TD RdP ENSEEIHT

    Page 3 sur 8 2008-2009

    La place P_Ordres contiendra autant de jetons que dordres mis et en attente de traitement. Cette place assurera la communication de type asynchrone entre lacteur ordonnateur et la machine dexcution identifie par le deuxime scnario. Lenvoi dun ordre est modlis par le tir de la transition envoi_ordre , transition qui na aucune prcondition, et qui peut donc tre tire tout moment. Modlisation de la machine dexcution : Un modle simple de cette machine est donn par le RdP suivant :

    P_Idle_execP_Ordres

    P_Exec

    P_produit_prt__envoyer

    dbut_exec

    fin_exec

    Cette machine, selon ce modle, a deux tats : idle et en excution. Ces deux tats correspondent aux deux places P_Idle_exec et P_Exec. On retrouve les deux tats identifis sur le digramme de squence du premier scnario. La fin dune excution provoque la production dun produit envoyer, modlis par un jeton dans la place P_produit_prt__envoyer . Cette dernire place assurera la communication de type asynchrone entre les machines dexcution et denvoi identifie par le troisime scnario. Modlisation de la machine denvoi : La machine denvoi est similaire la machine dexcution :

    P_Idle_envoi

    P_Envoi

    P_produit_prt__envoyer

    dbut_envoi

    fin_envoi

    P_produit_dlivr Cette machine a deux tats : idle et en envoi. Elle passe didle envoi sur rception dun produit envoyer. Enfin, la fin de lenvoi provoque la production dun produit_dlivr modlis par la production dun jeton dans la place P_produit_dlivr. Cette dernire place assurera la communication de type asynchrone entre la machine denvoi et lacteur rcepteur. Modlisation de lacteur rcepteur : Lacteur rcepteur se contente, daprs ces trois scnarios, dattendre et consommer les produits les uns aprs les autres ds que ceux-ci sont dlivrs. Ce comportement peut tre modlis par le RdP suivant :

  • M1 Info Ingnierie des Protocoles Corrig du TD RdP ENSEEIHT

    Page 4 sur 8 2008-2009

    P_produit_dlivr

    rception_produit Modlisation du systme global : Les communications entre les diffrents acteurs et machines tant asynchrones, le modle global est construit en fusionnant les places de mme nom. Ce qui donne le modle RdP suivant :

    P_Idle_exec

    P_Ordres

    P_Exec

    P_produit_prt__envoyer

    dbut_exec

    fin_exec

    envoi_ordre

    P_Idle_envoi

    P_Envoi

    dbut_envoi

    fin_envoi

    P_produit_dlivr

    rception_produit Il apparat clairement que la place P_ordres nest pas borne. De mme, les places P_produit_prt__envoyer et P_produit_dlivr ne sont pas bornes (il est facile de construire un marquage M1 tel que M1(P_Idle_exec)=1, M1(P_Idle_envoi)=1, M1(P_produit_prt__envoyer)=1 et M1(P_produit_dlivr)=1 et M1(p)=0 pour toutes les autres places p. Ce marquage est strictement suprieur au marquage initial, en particulier pour les places P_produit_prt__envoyer et P_produit_dlivr , ce qui montre que ces places ne sont pas bornes. Ce caractre non born traduit une incorrection dans la modlisation. Pour corriger ce problme, il est ncessaire dintroduire une capacit maximale pour ces places, capacits notes respectivement k1, k2 et k3, et introduire un mcanisme interdisant la production dun ordre, dun produit prt tre envoy, et dun produit dlivr, lorsque ces capacits sont respectivement atteintes. Un tel mcanisme peut tre modlis par lajout de places supplmentaires caractrisant les cases libres pouvant stocker des ordres, des produits prts tres envoys, et des produits dlivrs. Le modle global est donn par le RdP suivant :

  • M1 Info Ingnierie des Protocoles Corrig du TD RdP ENSEEIHT

    Page 5 sur 8 2008-2009

    P_Idle_exec

    P_Ordres

    P_Exec

    P_produit_prt__envoyer

    dbut_exec

    fin_exec

    envoi_ordre

    P_Idle_envoi

    P_Envoi

    dbut_envoi

    fin_envoi

    P_produit_dlivr

    rception_produit

    P1_cases_libres

    (initialement,

    k1 jetons)

    P2_cases_libres

    (initialement,

    k2 jetons)

    P3_cases_libres

    (initialement,

    k3 jetons)

    Selon ce nouveau modle, lacteur ordonnateur ne peut envoyer un ordre que sil y a encore au moins un jeton dans la place P1_cases-libres, cest--dire sil y a encore un espace pour stocker cet ordre. De mme pour la production dun produit prt tre envoy et dun produit dlivr. Il est facile de voir que les couples de places ( P1_cases_libres , P_ordres ), ( P2_cases_libres , P_produit_prt__envoyer ) et ( P3_cases_libres , P_produit_dlivr ) forme chacun des composantes conservatives positives. Le nombre de jetons contenus dans ces places est donc born, et cette borne est donne par le marquage initial : le nombre maximum de jetons dans P_ordres est k1 le nombre maximum de jetons dans P_produit_prt__envoyer est k2 le nombre maximum de jetons dans P_produit_dlivr est k3

    Question 1.2. Modlisation dun atelier de fabrication On suppose que les machines sont maintenant atomiques. Nous ne modliserons donc plus ce niveau le fonctionnement interne de chaque machine comme dans la question prcdente, mais nous nous concentrerons en revanche sur le fonctionnement global de latelier. La premire tape de latelier est compose de la machine M1 avec les deux oprateurs F1 et F2. A ce niveau, M1, F1 et F2 peuvent tre modliss comme des smaphores, cest--dire des ressources libres ou utilises. Cette tape peut tre modlise par le RdP suivant :

  • M1 Info Ingnierie des Protocoles Corrig du TD RdP ENSEEIHT

    Page 6 sur 8 2008-2009

    envoi_ordre

    P_ordres_M1

    P_F1

    P_F2

    P_M1

    P_F1M1

    P_F2M1

    dbut_exec_M1F1

    dbut_exec_M1F2

    fin_exec_M1F1

    fin_exec_M1F2

    P_ordres_M2ouM3

    Lenvoi dun ordre provoque la production dun jeton dans la place P_ordres_M1 (notons que l encore nous avons fait le choix dune communication asynchrone entre latelier et lacteur ordonnateur externe). Ensuite, si la machine M1 est libre (un jeton dans P_M1) et si loprateur F1 (resp. F2) est libre (un jeton dans P_F1 (resp. dans P_F2)), alors la transition dbut_exec_M1F1 est franchissable, ce qui conduit occuper M1 et F1 (resp. F2) (on retire le jeton dans P_M1 et P_F1 (resp. P_F2)), et produire un jeton dans P_M1F1 (resp. P_M1F2). En fin dexcution, on rend nouveau disponible la machine et loprateur en remettant un jeton dans les places respectives, puis on produit un ordre vers la seconde tape de latelier (un jeton dans P_ordres_M2ouM3). La seconde tape est peu prs similaire la seconde, ceci prs quelle met en jeu deux machines M2 (oprateur F1) et M3 (oprateur F3). La encore F1, F2, M2 et M3 sont vus comme des smaphores :

    envoi_produit

    P_ordres_M2ouM3

    P_F1

    P_F2

    P_M2

    P_F1M2

    P_F2M3

    dbut_exec_M2F1

    dbut_exec_M3F2

    fin_exec_M2F1

    fin_exec_M3F2

    P_produitsP_M3

    Il est clair que les places P_ordres_M1 , P_ordres_M2ouM3 et P_produits ne sont pas bornes. Par corriger ce problme on applique la mme mthode que dans la question prcdente.

  • M1 Info Ingnierie des Protocoles Corrig du TD RdP ENSEEIHT

    Page 7 sur 8 2008-2009

    Question 2. Protocole Producteur - Consommateur

    Question 2.1. Mdium = buffer une case Modle du producteur :

    P_Idle_prod

    P_Init_prod

    P_prt__mettre

    activation_prod

    fin_init_prod

    mission_prod

    P_mdium_libre

    P_mdium_occup_message

    P_messages__mettre

    (initialement,

    N jetons)

    P_messages_mis

    P_mdium_occup_dconnexionN

    dconnexion_prod

    P_Off_prod Modle du consommateur :

  • M1 Info Ingnierie des Protocoles Corrig du TD RdP ENSEEIHT

    Page 8 sur 8 2008-2009

    P_Idle_cons

    P_Init_cons

    P_prt__consommer

    activation_cons

    fin_init_cons

    consommation

    P_mdium_libre

    P_mdium_occup_message

    P_traitement_cons

    P_mdium_occup_dconnexion

    dconnexion_cons

    P_Off_cons

    fin_traitement_cons