IFT 2251 Génie Logiciel Spécification de Processus Concurrents Hiver 2002 Petko Valtchev
Réseaux de Petri (Introduction) Formalisme Graphique Objectif: Modéliser le comportement dynamique d’un système discret. Modèle opérationnel exprimant à la fois le flot de contrôle et le flot de données. Avantages: Permet de considérer la structure du système et l’évolution du flot de données. Permet de représenter les changements d’états et la causalité des événements que provoquent ces changements. Modèle solidement assis sur des bases formelles.
Un réseau de Petri est composé: Éléments d’un Réseaux Un réseau de Petri est composé: d’un ensemble fini de places d’un ensemble fini de transitions d’un ensemble fini de flèches reliant - soit une place à une transition, - soit une transition à une place. p t
Étiquetage des Éléments Chaque place est étiquetée par son nom. Chaque transition est étiquetée par son nom. Une flèche peut être étiquetée d’un nombre entier (>1) indiquant le nombre d’occurrence de cette flèche, c’est-à-dire, le nombre de jetons nécessaires pour que la flèche soit « activée ». S’il n’y a pas d’étiquette, l’occurrence est 1, par défaut. t3 p1 p3 t1 3 2 p6 p2 p4 t2 p5
Un réseau de Petri est un quadruplet Définition Formelle P est un ensemble fini de places, T est un ensemble fini de transitions, Pre : P x T N est l’application « place d’entrée », Post : P x T N est l’application « place de sortie ». Un réseau de Petri est un quadruplet R = <P,T,Pre, Post> P= {p1,p2,p3,p4} ; T={t1,t2} Pre(p1,t1)= 2; Pre(p2,t1)=1 Pre(p3,t2)=1 Post(p3,t1)=1; Post(p4,t2)=1 Le reste: Post(pi,tj)=0 et Pre(pi,tj)=0 p1 t1 2 p2 t2 p3 p4
Précisions Terminologique Places de sortie d’une transition t = places vers lesquelles sont orientées les flèches qui sortent de la transition. Out(t) = {p P | Post(p,t) > 0} Places d’entrée d’une transition t = places dont proviennent les flèches entrant de la transition. In(t) = {p P | Pre(p,t) > 0} p1 In(t1)= {p1,p2} In(t2)= {p3} Out(t1)= {p3} Out(t2)= {p4} t1 2 p2 t2 p3 p4
Réseau Marqué Marquage M(p1)=3 M(p2)=1 M(p3)=1 M(p4)=0 M(p5)=0 M(p6)=0 On définit l’état d’un réseau de Petri en plaçant des jetons dans ses places. Chaque état est caractérisé par un marquage indiquant le nombre de jetons contenus par chaque place. Un marquage = Affectation d’un entier non-négatif à chaque place. R est un réseau de Petri <P,T,Pre, Post> M est un marquage, cad une application M : P N, M(p) est le nombre de jetons dans p P Un réseau marqué est un couple N = <R, M> Marquage M(p1)=3 M(p2)=1 M(p3)=1 M(p4)=0 M(p5)=0 M(p6)=0 t3 p1 p3 t1 3 2 p6 2 p4 p5 p2 t2
Règles de Franchissement Une transition est dite « franchissable » si chacune de ses places d’entrée contient un nombre de jetons supérieur ou égal à celui indiqué sur la flèche correspondante. Une transition t est franchissable ssi p P, M(p) ³ Pre(p,t), ou alternativement, p In(t), M(p) ³ Pre(p,t), t3 p1 p3 t1 3 2 p6 2 p4 p5 p2 t2
Franchissement (suite) Une transition franchissable peut être franchie (ou tirée). Lorsqu’une transition est franchie, des jetons des places d’entrée sont déplacés vers les places de sortie. Le nombre exact des jetons retirées/rajoutées pour une place donnée correspond à l’étiquette sur la flèche correspondante. Le franchissement d’une transition franchissable t transforme le marquage initial M en le nouveau marquage M’ tel que: p P, M’(p) = M(p) – Pre(p,t) + Post(p,t) p1 t3 p3 t1 3 2 p6 2 p4 p5 p2 t2
Non-déterminisme t2 ou t3 ? Si plus d’une transition est franchissable, le choix de la transition à franchir est non-déterministe. t2 ou t3 ? t3 p1 p3 t1 3 2 p6 2 p4 p5 p2 t2
Séquence Franchissement Étant donnée un marquage initial d’un RP, une séquence de franchissement est une suite de transitions franchies dans l’ordre, l’une après l’autre. Cette séquence est dénotée par une chaîne de transitions <t1, …, tn> telle que: t1 est franchissable depuis le marquage initial t2 est franchissable depuis le marquage obtenu par la tirée de t1, etc. t3 Séquences de franchissement possibles: <t1,t2> <t1, t3> <t3,t1> p1 p3 t1 3 2 p6 2 p4 p5 Mi <s> Mj p2 t2
Sémantique des Réseaux Un réseaux de Petri peut être interprété en termes de processus, d’actions et de ressources. Les transitions servent à modéliser les actions des processus. Les jetons représentent des ressources consommables. Le franchissement d’une transition représente l’exécution d’une action (consommation & production de ressources). Les flèches entrantes indiquent les conditions à satisfaire avant l’action (ressources nécessaires). Les flèches sortantes représentent les conditions à satisfaire après l’action (ressources à produire). La présence d’un jeton marque la satisfaction, partielle ou totale, d’une condition (i.e. présence d’une ressource).
Producteur-Consommateur Un exemple concret (et simple!) de réseau de Petri. Objectif : Modéliser la coordination entre deux processus dont un est le producteur et l’autre le consommateur d’une ressource. Le producteur produit un objet (item) et le dépose dans un tampon (bac), Le consommateur prend l’objet dans le bac et le « consomme ». Contrainte: avant que le consommateur ne puisse exécuter l’action « consommer », le producteur doit avoir fini l’action « produire ». Utilité: simulation de processus industriels (à de fins d’automatisation), modélisation de traitement de données asynchrone.
Prod.-Cons., le Réseau Producteur: Consommateur: produire prendre déposer Consommateur: prendre consommer Prêt-à-produire Prêt-à-déposer Prêt-à-prendre Prêt-à-consommer bac dépose produit consomme prend
Modéliser la Concurrence Dans la réalité, les ressources doivent souvent être partagées. De plus, celles-ci ont leurs limites, c’est-à-dire qu’elles sont épuisables. p1 p2 t1 p9 t2 Plus de jeton: Famine? Interblocage? p3 p4 t3 t4 p5 p6 2 2 t5 t6 t6 t6 p7 p8
Concurrence t1 et t2 sont concurrentes … mais pas t3 et t4 Transitions concurrentes : un couple de transitions dont le franchissement de l’une n’empêche pas celui de l’autre (quel que soit le marquage). Un réseau de Petri modélise la concurrence comme un entrelacement non-déterministe: a || b = a.b V b.a p1 p2 t1 p9 t2 t1 et t2 sont concurrentes … mais pas t3 et t4 p3 p4 t3 t4 p5 p6
Concurrence Structurelle vs Effective Concurrence structurelle: Deux transitions t1 et t2 sont concurrentes structurellement si elles n’ont aucune place d’entrée commune i.e. In(t1) In(t2) = Concurrence effective: Deux transitions t1 et t2 sont concurrentes effectivement pour un marquage donnée M ssi elles sont concurrentes structurellement et sont franchissables i.e. et p P, M(p) ³ Pre(p,t1) et M(p) ³ Pre(p,t2)
Conflit Transitions conflictuelles : Ensemble de transitions dont le franchissement de l’une empêche le franchissement de l’autre. p1 Si on tire t3, t4 n’est plus franchissable Le choix entre t3 et t4 est non déterministe. t3 et t4 sont conflictuelles t1 p9 t2 p3 p4 t3 t4 p5 p6
Conflit Structurel vs Effectif Conflit structurel: Deux transitions t1 et t2 sont en conflit structurel si elles ont au moins une place d’entrée en commun i.e. In(t1) In(t2) Conflit effectif: Deux transitions t1 et t2 sont en conflit effectif pour un marquage M ssi elles sont en conflit structurel et sont franchissables de façon exclusive i.e. p P, M(p) ³ Pre(p,t1) et M(p) ³ Pre(p,t2) et p P, M(p) < Pre(p,t1) + Pre(p,t2)
Situation de Famine « Famine (starvation) : Un processus (une partie du réseau) est en situation de famine s’il se voit refuser l’accès à une ressource pendant un temps indéfini. » Le modèle des RP de base n’impose pas de politique pour résoudre les conflits et ordonnancer le franchissement des transitions. Il se peut donc qu’un processus soit privé, pendant une période indéfinie, d’une ressource, car la séquence des transitions franchies ne lui permet jamais de consommer cette ressource. p1 Processus B t1 p9 t2 p3 p4 <t1,t2,t3,t1,t3,t1,t3,…> Séquence de franchissement non équitable. Processus B en famine! t3 t4 Processus A p5 p6
Situation d’Interblocage « Interblocage (deadlock) : un RP est dit être en situation d’interblocage lorsque, dans un marquage donné M, aucune transition n’est franchissable. » Cas typique: Privation mutuelle Le processus A est arrêté car il a besoin d’une ressource détenue par B, alors que le processus B est arrêté car il a besoin d’une ressource détenue par A. p1 p2 p3 p4 t1 t2
Interblocage (exemple) <t1,t2,t3,t4> p5 p6 2 2 t5 Mn(p5)=1 Mn(p6)=1 Mn(_) = 0 t6 t8 p7 t7 p8 Interblocage!!
Bonnes Propriétés des RP K- borné: Un RdP est k-borné si le marquage de chaque place est toujours inférieur ou égal à k, quelle que soit la séquence de franchissement réalisée. Vivant: Un RdP est vivant si pour toute transition et pour tout marquage accessible, il existe une séquence de franchissement permettant de franchir cette transition. N.B. Un RP vivant ne peut pas se retrouvé en situation d’interblocage.
K-Borné (exemple) Réseau non borné Réseau 2-borné
Vivacité (exemple) Réseau vivant Réseau non vivant p1 t1 t3 p2 p1 p3
Réseaux de Petri, Bilan Bien adapté pour la modélisation de systèmes concurrents et/ou temps-réel. Possibilités intéressantes de vérification et d’évaluation des performances. Outils CASE pour développés, analyser et vérifier les modèle de réseaux de Petri. Complexité Lacunes: la version « classique» des RdP ne permet pas : d’éviter les situations de famine, de distinguer les données d’une place selon les valeurs de leurs attributs, de prendre en compte les contraintes temporelles, d’offrir une représentation à différents niveaux d’abstraction.
Modèles Étendus de RP Il existe des modèles avancés de réseaux de Petri permettant d’étendre leur expressivité: Réseaux de Petri avec politique d’ordonnancement : possibilité d’attacher des priorités aux transitions permettant de déterminer quelle transition tirée parmi toutes celles franchissables. Réseaux de Petri hiérarchiques : partitionnement des grands réseaux de Petri de manière récursive. Réseaux de Petri colorés : affectation de valeurs aux jetons. Réseaux de Petri temporisés : ajout de contraintes temporelles au niveau des transitions.