IFT 2251 Génie Logiciel Spécification de Processus Concurrents

27
© Petko Valtchev Université de Montréal Février 2002 1 IFT 2251 Génie Logiciel Spécification de Processus Concurrents Hiver 2002 Petko Valtchev

description

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 . - PowerPoint PPT Presentation

Transcript of IFT 2251 Génie Logiciel Spécification de Processus Concurrents

Page 1: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 1

IFT 2251Génie Logiciel

Spécification deProcessus Concurrents

IFT 2251Génie Logiciel

Spécification deProcessus Concurrents

Hiver 2002 Petko Valtchev

Page 2: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 2

ModélisationModélisation Réseaux de Petri (Introduction)Réseaux de Petri (Introduction)

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.

Formalisme Graphique

Page 3: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 3

ModélisationModélisation Éléments d’un RéseauxÉléments d’un Réseaux

Un réseau de Petri est composé:

1. d’un ensemble fini de places

2. d’un ensemble fini de transitions

3. d’un ensemble fini de flèches reliant- soit une place à une transition, - soit une transition à une place.

p

t

Page 4: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 4

ModélisationModélisation Étiquetage des ÉlémentsÉ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.

t1

p4

p3

p2

p1

p6

p5t2

t3

23

Page 5: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 5

ModélisationModélisation Définition FormelleDé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 ».

P= {p1,p2,p3,p4} ; T={t1,t2}

Pre(p1,t1)= 2; Pre(p2,t1)=1Pre(p3,t2)=1Post(p3,t1)=1; Post(p4,t2)=1Le reste: Post(pi,tj)=0 et Pre(pi,tj)=0

Un réseau de Petri est un quadrupletR = <P,T,Pre, Post>

t1

p3

p2

p1

p4

t2

2

Page 6: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 6

ModélisationModélisation Précisions TerminologiquePrécisions Terminologique

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}

- 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}

t1

p3

p2

p1

p4

t2

2

In(t1)= {p1,p2} In(t2)= {p3}

Out(t1)= {p3} Out(t2)= {p4}

Page 7: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 7

ModélisationModélisation Réseau Marqué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.

t1

p4

p3

p2

p1

p6

t3Marquage

M(p1)=3M(p2)=1M(p3)=1M(p4)=0M(p5)=0M(p6)=0

p5t2

23

2

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>

Page 8: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 8

ModélisationModélisation Règles de FranchissementRè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.

t1

p4

p3

p2

p1

p6

t3

p5t2

23

2

Une transition t est franchissable ssi

p P, M(p) Pre(p,t),ou alternativement,

p In(t), M(p) Pre(p,t),

Page 9: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 9

ModélisationModélisation Franchissement (suite)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.

t1

p4

p3

p2

p1

p6

t3

p5t2

23

2

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)

Page 10: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 10

ModélisationModélisation Non-déterminismeNon-déterminisme

Si plus d’une transition est franchissable, le choix de la transition à

franchir est non-déterministe.

t1

p4

p3

p2

p1

p6

t3

p5t2

23

2

t2 ou t3 ?

Page 11: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 11

ModélisationModélisation Séquence FranchissementSéquence Franchissement

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.

t1

p4

p3

p2

p1

p6

t3

p5t2

23

2

Séquences defranchissementpossibles:

<t1,t2><t1, t3><t3,t1>

Mi <s> Mj

É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.

Page 12: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 12

ModélisationModélisation Sémantique des RéseauxSé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).

Page 13: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 13

ModélisationModélisation Producteur-ConsommateurProducteur-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.

Page 14: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 14

ModélisationModélisation Prod.-Cons., le RéseauProd.-Cons., le Réseau

Prêt-à-produire

Prêt-à-déposer

déposeproduitconsommeprend

Prêt-à-prendre

Prêt-à-consommer

bac

Consommateur:• prendre• consommer

Producteur:• produire• déposer

Page 15: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 15

ModélisationModélisation Modéliser la ConcurrenceModé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.

t3

t6

t5

t1

t4

t6

t6

t2

p1 p2

p4p3

p5 p6

p7 p8

p9

2 2

Plus de jeton:-Famine?-Interblocage?

Page 16: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 16

ModélisationModélisation ConcurrenceConcurrence

• 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

t3

t1

t4

t2

p1p2

p4p3

p5

p9

p6

t1 et t2 sont concurrentes…mais pas t3 et t4

Page 17: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 17

ModélisationModélisation ConcurrenceStructurelle vs Effective

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 concurrentes structurellement et sont franchissables i.e.

In(t1) In(t2) =

et p P, M(p) Pre(p,t1) et M(p) Pre(p,t2)

Page 18: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 18

ModélisationModélisation ConflitConflit

• Transitions conflictuelles : Ensemble de transitions dont le franchissement de l’une empêche le franchissement de l’autre.

t3

t1

t4

t2

p1

p4p3

p5

p9

p6

Si on tire t3, t4 n’est plus franchissable

Le choix entre t3 et t4est non déterministe.

t3 et t4 sont conflictuelles

Page 19: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 19

ModélisationModélisation

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)

ConflitStructurel vs Effectif

ConflitStructurel vs Effectif

Page 20: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 20

ModélisationModélisation Situation de FamineSituation de Famine

• 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.

t3

t1

t4

t2

p1

p4p3

p5

p9

p6

<t1,t2,t3,t1,t3,t1,t3,…>Séquence de franchissement non équitable.Processus B en famine!

Processus A

Processus B

« 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.  »

Page 21: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 21

ModélisationModélisation Situation d’InterblocageSituation d’Interblocage

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.

« Interblocage (deadlock) : un RP est dit être en situation d’interblocage lorsque, dans un marquage donné M,

aucune transition n’est franchissable.  »

t2

p4p3

t1

p2p1

Page 22: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 22

ModélisationModélisation Interblocage (exemple)Interblocage (exemple)

t3

t7

t5

t1

t4

t8

t6

t2

p1 p2

p4p3

p5 p6

p7 p8

p9

2 2

<t1,t2,t3,t4>

M0(p1)=1M0(p2)=1M0(p9)=2M0(_)=0

Mn(p5)=1

Mn(p6)=1

Mn(_) = 0

Interblocage!!

Page 23: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 23

ModélisationModélisation Bonnes Propriétés des RPBonnes 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.

Page 24: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 24

ModélisationModélisation K-Borné (exemple) K-Borné (exemple)

Réseau non borné Réseau 2-borné

Page 25: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 25

ModélisationModélisation Vivacité (exemple)Vivacité (exemple)

Réseau vivant

t2

p1

p2

t1

t1

t2

t3

t4

p1

p2

p3

Réseau non vivant

Page 26: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 26

ModélisationModélisation Réseaux de Petri, BilanRé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.

Page 27: IFT 2251 Génie Logiciel Spécification de Processus Concurrents

© Petko Valtchev Université de Montréal Février 2002 27

ModélisationModélisation Modèles Étendus de RPModè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.