270 likes | 412 Views
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 .
E N D
IFT 2251Génie LogicielSpécification deProcessus 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.
É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 p6 2 p4 p2 p5 t2
Définition Formelle Un réseau de Petri est un quadruplet R = <P,T,Pre, Post> 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 ». 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é 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 t est franchissable ssi p P, M(p) ³ Pre(p,t), ou alternativement, p In(t), M(p) ³ Pre(p,t), 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. t3 p1 p3 t1 3 2 p6 2 p4 p5 p2 t2
Franchissement (suite) 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) 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 jetonsretirées/rajoutées pour une place donnée correspond à l’étiquette sur la flèche correspondante. t3 p1 p3 t1 3 2 p6 2 p4 p5 p2 t2
Non-déterminisme 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. Séquences de franchissement possibles: <t1,t2> <t1, t3> <t3,t1> t3 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 à satisfaireavant 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.
Prêt-à-produire Prêt-à-prendre bac produit dépose prend consomme Prêt-à-consommer Prêt-à-déposer Prod.-Cons., le Réseau Producteur: • produire • déposer Consommateur: • prendre • consommer
Modéliser la Concurrence p1 p2 p9 t1 Plus de jeton: • Famine? • Interblocage? t2 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. p3 p4 t3 t4 p5 p6 2 2 t5 t6 t6 t6 p7 p8
Concurrence • 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 p9 t1 t2 t1 et t2 sont concurrentes … mais pas t3 et t4 p3 p4 t3 t4 p5 p6
ConcurrenceStructurelle 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 concurrentesstructurellement et sont franchissables i.e. In(t1) In(t2) = et p P, M(p) ³ Pre(p,t1) et M(p) ³ Pre(p,t2)
Conflit • Transitions conflictuelles : Ensemble de transitionsdont 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 p9 t1 t2 p3 p4 t3 t4 p5 p6
ConflitStructurel 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. In(t1) In(t2) 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 p9 t1 t2 p3 p4 <t1,t2,t3,t1,t3,t1,t3,…> Séquence de franchissement non équitable. Processus B en famine! t3 t4 Processus A p6 p5
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) p1 p2 M0(p1)=1 M0(p2)=1 M0(p9)=2 M0(_)=0 p9 t1 t2 p3 p4 t3 t4 <t1,t2,t3,t4> p5 p6 2 2 t5 Mn(p5)=1 Mn(p6)=1 Mn(_) = 0 t6 t8 t7 p7 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) p1 t1 t3 p2 p1 t1 p3 p2 t4 t2 t2 Réseau vivant Réseau non vivant
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’évaluationdes 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.