0% ont trouvé ce document utile (0 vote)
61 vues37 pages

RdPColores C1

Transféré par

amine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
61 vues37 pages

RdPColores C1

Transféré par

amine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1

Master Informatique - Spcialit SAR


NI405 - Modlisation des systmes rpartis

Introduction aux
rseaux de Petri de haut niveau
(les rseaux colors)
1 - Modlisation

J.F. Peyre - C. Dutheillet

Pourquoi les rseaux de haut niveau ?


Problme :
n processus en exclusion mutuelle sur 1 ressource
Attente2

Attente

n = 12

En cours

Ressource

Repos

En cours2

Repos2

Pourquoi les rseaux de haut niveau ?


Problme 2 :
n1 processus en exclusion mutuelle sur n2 ressources

n1 = 2
n2 = 2

Pourquoi les rseaux de haut niveau ?


Les rseaux de Petri ordinaires
ne capturent pas les symtries dun problme
ne permettent pas dassocier des informations aux jetons
Ne permettent pas de paramtrer la solution dun problme

Utiliser une notation concise et paramtre des rseaux


de Petri :
les rseaux de haut-niveau

Les rseaux de Petri colors

Dfinition informelle

Chaque place p est caractrise par un


domaine de couleur C(p)
Un jeton dune place p est un lment de
C(p)

P2
C2

P1
C1
X1

Chaque transition t est caractrise par


un domaine de couleur C(t)
Le domaine de couleur dune transition
caractrise la signature de cette transition
Les fonctions de couleur sur les arcs
dterminent les instances de jetons
ncessaires, consommes et produites lors
du franchissement dune transition

X2

t
C1 x C2
<X1,X2>
P3
C1 x C2

Un exemple

n processus appartenant une


classe de processus C = {1, , n},
en exclusion mutuelle sur une
ressource non signe
Un processus est soit dans ltat
Attente, soit dans ltat EnCours,
soit dans ltat Repos.

Attente
X

EnCours

Ressource

Pour passer de Attente


EnCours, un processus a besoin
de la ressource.
C(Attente) = C(EnCours) = C(Repos) = C
C(Ressource) = {}

Repos

M0(Repos) = C. All
X : Bag(C) Bag(C)
cc

Un autre exemple

n1 processus appartenant une


classe de processus C1 = {1, , n1},
en exclusion mutuelle sur n2
ressources appartenant
C2 = {1, , n2}
Un processus X1 est soit dans ltat
Attente, soit dans ltat EnCours,
soit dans ltat Repos.

Attente
X1

X1

<X1,X2>
<X1,X2>
X1

X2
EnCours

X2

Ressources

X1
Pour passer de Attente EnCours,
Repos
un processus X1 a besoin dune
ressource X2.
C( Attente) = C(Repos) = C1
M0(Repos) = C1 . All
C(EnCours) = C1 x C2
M0(Ressource) = C2 . All
C(Ressource) = C2

Multi-ensemble
Soit A un ensemble fini et non vide.
Un multi-ensemble a sur A est une fonction de A vers
IN.
On note

a=

a(x).x
x A

o a(x) dsigne le nombre doccurrences de x dans a.


Bag(A) dsigne lensemble des multi-ensembles sur A

10

Notations fonctionnelles
f1 : Bag(C1) Bag(C2)
f2 : Bag(C'1) Bag(C'2)
g : Bag(C) Bag(C1)

< f1, f2> : Bag(C1) x Bag(C'1) Bag(C2) x Bag(C'2)


(x, y) < f1 (x), f2 (y)>
f1

g : Bag(C) Bag(C2)
x f1 (g(x))

11

Notations vectorielles
Soit F un vecteur sur A index par I ( F(i) A )
F(i) dsigne la ime composante de F
On note F par une somme formelle :

F = F(i).i
iI

12

Dfinition formelle : la structure


Un rseau de Petri color est un 6-uplet
<P, T, C, W-, W+, M0>
P est lensemble des places, T est lensemble des
transitions (P T = , P T )
C dfinit pour chaque place et chaque transition son
domaine de couleur
W- ( = Pr) (resp. W+ = Post), indexe sur P x T, est la
matrice dincidence arrire (resp. avant) du rseau
W-(p, t) et W+ (p, t) sont des fonctions linaires de couleurs
dfinies de Bag(C(t)) dans Bag(C(p))

13

Complments la dfinition
M0 est le marquage initial du rseau ; cest un vecteur
index par P et M0(p) est un lment de Bag(C(p))
Les transitions peuvent tre gardes par une fonction
Bag(C(t)) {0, 1}
Les domaines de couleurs sont gnralement des produits
cartsiens

14

Dfinition formelle : la dynamique


Soit CN = <P, T, C, W-, W+, M0> un rseau color.
Un marquage M de CN est un vecteur index par P,
avec M(p) Bag(C(p))
Une transition t est franchissable pour une instance
ct C(t) et un marquage M si et seulement si :
Soit t est non garde, soit la garde vaut 1 (= vrai) pour ct
p P, M(p) W-(p, t)(ct)

15

La dynamique (suite)
Le marquage M atteint aprs le franchissement de t
pour une instance ct partir du marquage M est dfini
par :
p P, M(p) = M(p) - W-(p, t)(ct) + W+(p, t)(ct)
On note :

M [(t, ct)> M
(t, ct)

M M

16

Exemple de franchissement

P2
C2

P1
C1

X1

X2

Soit x1 C1, x2 C2

t est franchissable pour (x1, x2) ssi


1) P1 contient au moins un jeton de couleur x1
(X1(x1, x2) = x1)

t
C1 x C2
<X1,X2>

2) P2 contient au moins un jeton de couleur x2

P3
C1 x C2

Si on franchit t pour (x1, x2) alors


1) Un jeton de couleur x1 est retir de P1
2) Un jeton de couleur x2 est retir de P2
3) Un jeton de couleur <x1, x2> est produit dans
P3 : <X1, X2> (x1, x2) = <x1, x2>

17

Exemple (suite)
C1 = {a, b, c}

C2 = {, }

X1

P2
C2

P1
c
C1

P2

C2

P1 a+c
C1

X1

X2

t, (a, )
t
C1 x C2
<X1,X2>
P3
<c,> C x C
1
2

X2

t
C1 x C2
<X1,X2>
P3
<c,>
+<a,>
C1 x C2

18

Fonctions de couleur de base


n

C=

ei

Ci
i=1 j=1

un domaine de couleur construit par produit


cartsien des classes de couleurs, dans lequel
la classe Ci apparat ei fois.
Dans la pratique, C est le domaine dune transition.

c = <c11, c12, , c1e1, , cn1, cn2, , cnen > C

Identit/Projection :
Note par une variable : X, Y, ou X1, ou X11, ou p, q,

Xij(c) = cij

Y(<x, y>) = y
q(<p, q, r>) = q

19

Fonctions (suite)
Successeur (sur Ci ordonne circulairement)
Note Xi++ ou (Xi 1) ou Xi!

Xij++(c) = successeur(cij)

La relation successeur est dfinie par


lordre dnumration des lments
de la classe Ci

Diffusion / Synchronisation (sur Ci)


Note Ci.All ou SCi

Ci. All(c) =

x
x C i

La valeur est indpendante de llment


choisi dans Ci

20

Modlisation du problme des trains


Problme :
n1 trains sont rpartis sur une voie circulaire
dcompose en n2 sections
Pour des raisons de scurit, un train ne peut entrer
dans une section que si cette section et la suivante sont
libres (distance de scurit)

21

Modle(s) ?
Domaines de couleurs :
C1 = {tr_1, , tr_n1}
C2 = {sc_1, , sc_n2}

Dynamique :
Ltat du systme est donn par un ensemble dassociations <n
train, n section> place Tr_Sc
Une section disponible est une ressource permettant le mouvement
dun train place Sc_Dispo
Une transition permet de reprsenter la progression dun train

22

Des solutions
Tr_Sc
C1 x C2
<t,s>
<t,s++>

C1 x C2
<s> +
<(s++)++>

<s++> +
<(s++)++>
Sc_Dispo
C2

Tr_Sc
C1 x C2
<t,s>

[y = s++]

<s> +
<y++>

<t,y>

C1 x C2
<y> +
<y++>
Sc_Dispo
C2

23

Ou encore
Tr_Sc
C1 x C2
<t,s>
<t,s++>

C1 x C2
<s-->

<s++>

Sc_Dispo
C2

s reprsente maintenant la
section demande

Attention au marquage initial !

24

Dpliage de rseau
Pour obtenir un rseau ordinaire ayant le mme
comportement que le rseau color
Pour chaque place ou transition, on cre autant dinstances que son
domaine de couleur contient dlments
Les connexions sont obtenues en dpliant les fonctions de
couleur

Parfois le seul moyen dobtenir des rsultats sur le


modle
Mais on ne sait pas exprimer les rsultats sur le modle dorigine
-> interprtation parfois difficile

Facilement automatisable

25

Dpliage de rseau
Soit CN = <P, T, C, W-, W+, M0> un rseau color.
Le rseau ordinaire sous-jacent (dpli) est le rseau
CNd = <Pd, Td, Cd, W-d, W+d, M0d> o
Pd =
Td =

( p,c p ) est lensemble des places

p P,c p C ( p )

(t,c t ) est lensemble des transitions

t T ,c t C (t )

M0d (p, cp) = M0 (p)(cp) est le marquage initial


/

26

Dpliage (suite)
W-d (p, cp)(t, ct) = W- (p, t)(ct)(cp) est la fonction
dincidence arrire
W+d (p, cp)(t, ct) = W+ (p, t)(ct)(cp) est la fonction
dincidence avant
Proposition :
M [ (t, ct) >CN M Md [ (t, ct) >CNd Md
o Md(p, c) = M(p)(c)

27

Exemples de dpliage (1)


P
C

(P,1)

(P,2)

(P,3)

(t,1)

(t,2)

(t,3)

(Q,1)

(Q,2)

(Q,3)

X
t
C

Dpliage

X
Q
C
C = {1, 2, 3}

28

Exemples de dpliage (2)


P
C

(P,1)

(P,2)

(P,3)

(t,1)

(t,2)

(t,3)

(Q,1)

(Q,2)

(Q,3)

X
t
C

Dpliage

X++
Q
C
C = {1, 2, 3}

29

Exemples de dpliage (3)


(P,1)

P
C

(P,2)

(P,3)

All.C
t

Dpliage
t

All.C
Q
C
C = {1, 2, 3}

(Q,1)

(Q,2)

(Q,3)

30

Exemples de dpliage (4)


(P,1) (Q,2) (Q,3) (P,3) (Q,1) (P,2)

S-X

Dpliage

(t,3)

(t,2)

S-X++

X++
R

(t,1)

S
(R,2) (S,3) (S,1) (R,1) (S,2) (R,3)

C = {1, 2, 3}
C(P)= C(Q)= C(R)=
C(S)= C

31

Arc inhibiteur color


Pour tester quune place est vide
P

Pour tester quune place ne contient pas de jeton de


couleur a
P
t
X

[X = a]

Les ensembles de couleur sont finis


pas de modlisation du type lecteur/crivain avec un nombre infini
de lecteurs

32

Dpliage darc inhibiteur


C = {a, b, c}
Pa

Pb

Pc

Pb

Pc

S
t

t
Pa

P
C
X
t

[X = a]

ta

33

Modlisation : les philosophes


N philosophes sont assis autour dune table et pensent.
De temps en temps, ils mangent dans un bol de riz pos
devant eux
Problme : il ny a que N baguettes, et chaque
philosophe a besoin de 2 baguettes pour manger
Version 1 : il y a N baguettes poses au milieu de la table.

34

Les philosophes (suite)


Version 2 : les baguettes sont disposes entre les
philosophes. Pour manger, un philosophe doit prendre
la baguette sa gauche et celle sa droite.
a) Un philosophe prend ses 2 baguettes en mme temps
b) Il prend dabord celle de droite, puis celle de gauche
c) Il prend lune puis lautre

35

Modlisation : lalgorithme de Peterson


But :

raliser lexclusion mutuelle de 2 processus au moyen de


variables partages

Processus x (x == 1 ou x == 2)
Flag[x] = 0;

Flag[x] == 1 : x demande la section


critique

Turn : identit du dernier processus


ayant demand la section critique

While (1) {
Flag[x] = 1;
Turn = x;
wait until
((Flag[x++] = 0) || (Turn = x++));
Section critique
Flag[x] = 0;
}

36

Gnralisation N processus

Principe :
escalier (N-1) niveaux
Un processus peut passer du niveau
j au niveau j+1 si :

N=3

Soit il nest pas le dernier arriv au


niveau j,
Soit il est seul au niveau j et tous les
niveaux suprieurs sont libres

SC
nv2

Un seul processus peut aller au del


du niveau N-1

section critique

nv1
nv0

37

Lalgorithme pour N processus


Processus x (x == 1 . . N-1)
Flag[x] = 0;
While (1) {
For (j=1; j<N; j++) {
Flag[x] = j;
Turn[j] = x;
wait until
((y x, (Flag[y] < j)) || (Turn[j] x))
}
Section critique
Flag[x] = 0;
}

Vous aimerez peut-être aussi