Anda di halaman 1dari 54

EE249: Design of Embedded System (corrections) ASV/LL

Petri Nets
ee249 Fall 2000

Marco Sgroi

Most slides borrowed from


Luciano Lavagno’s lecture ee249 (1998)
1

Models Of Computation
for reactive systems
• Main MOCs:
– Communicating Finite State Machines
– Dataflow Process Networks
– Discrete Event
– Codesign Finite State Machines
– Petri Nets
• Main languages:
– StateCharts
– Esterel
– Dataflow networks 2

1
EE249: Design of Embedded System (corrections) ASV/LL

Outline

• Petri nets
– Introduction
– Examples
– Properties
– Analysis techniques
– Scheduling

Petri Nets (PNs)


• Model introduced by C.A. Petri in 1962
– Ph.D. Thesis: “Communication with Automata”
• Applications: distributed computing, manufacturing,
control, communication networks, transportation…
• PNs describe explicitly and graphically:
– sequencing/causality
– conflict/non-deterministic choice
– concurrency
• Asynchronous model (partial ordering)
• Main drawback: no hierarchy
4

2
EE249: Design of Embedded System (corrections) ASV/LL

Petri Net Graph


• Bipartite weighted directed graph:
– Places: circles
– Transitions: bars or boxes
– Arcs: arrows labeled with weights
• Tokens: black dots
p2
t2

p1 t1 2
p4

3
t3
5
p3

Petri Net
• A PN (N,M0) is a Petri Net Graph N
– places: represent distributed state by holding tokens
• marking (state) M is an n-vector (m1,m2,m3… ), where mi is the non-
negative number of tokens in place pi.
• initial marking (M0) is initial state
– transitions: represent actions/events
• enabled transition: enough tokens in predecessors
• firing transition: modifies marking
p2 t2
• … and an initial marking M0. t1 2
p1 p4

3
Places/Transition: conditions/events t3 6
p3

3
EE249: Design of Embedded System (corrections) ASV/LL

Transition firing rule


• A marking is changed according to the following rules:
– A transition is enabled if there are enough tokens in each
input place
– An enabled transition may or may not fire
– The firing of a transition modifies marking by consuming
tokens from the input places and producing tokens in the
output places

2 2
2
2

3
3 7

Concurrency, causality, choice


t1

t2
t5

t3 t4
8
t6

4
EE249: Design of Embedded System (corrections) ASV/LL

Concurrency, causality, choice

t1

Concurrency

t2
t5

t3 t4
9
t6

Concurrency, causality, choice


t1

t2
t5
Causality, sequencing

t3 t4
10
t6

5
EE249: Design of Embedded System (corrections) ASV/LL

Concurrency, causality, choice

t1

t2
t5

Choice,
t3 t4 conflict
11
t6

Concurrency, causality, choice


t1

t2
t5

Choice,
t3 t4 conflict
12
t6

6
EE249: Design of Embedded System (corrections) ASV/LL

Confusion
• t1 and t2 are concurrent but their firing order is not
irrelevant for conflict resolution (not local choice)
• From (1,1,0,0,0):
– solving a conflict (t1,t2) (0,0,0,0,1),(0,0,1,1,0)
– not solving a conflict (t2,t1) (0,0,1,1,0)

p1 t1 p3
t3 p5

p2 t2 p4
13

Communication Protocol

Send msg Receive msg

P1 P2

Send Ack

Receive Ack

14

7
EE249: Design of Embedded System (corrections) ASV/LL

Communication Protocol

Send msg Receive msg

P1 P2

Send Ack

Receive Ack

15

Communication Protocol

Send msg Receive msg

P1 P2

Send Ack

Receive Ack

16

8
EE249: Design of Embedded System (corrections) ASV/LL

Communication Protocol

Send msg Receive msg

P1 P2

Send Ack

Receive Ack

17

Communication Protocol

Send msg Receive msg

P1 P2

Send Ack

Receive Ack

18

9
EE249: Design of Embedded System (corrections) ASV/LL

Communication Protocol

Send msg Receive msg

P1 P2

Send Ack

Receive Ack

19

Producer-Consumer Problem

Produce

Buffer

Consume

20

10
EE249: Design of Embedded System (corrections) ASV/LL

Producer-Consumer Problem

Produce

Buffer

Consume

21

Producer-Consumer Problem

Produce

Buffer

Consume

22

11
EE249: Design of Embedded System (corrections) ASV/LL

Producer-Consumer Problem

Produce

Buffer

Consume

23

Producer-Consumer Problem

Produce

Buffer

Consume

24

12
EE249: Design of Embedded System (corrections) ASV/LL

Producer-Consumer Problem

Produce

Buffer

Consume

25

Producer-Consumer Problem

Produce

Buffer

Consume

26

13
EE249: Design of Embedded System (corrections) ASV/LL

Producer-Consumer Problem

Produce

Buffer

Consume

27

Producer-Consumer Problem

Produce

Buffer

Consume

28

14
EE249: Design of Embedded System (corrections) ASV/LL

Producer-Consumer Problem

Produce

Buffer

Consume

29

Producer-Consumer Problem

Produce

Buffer

Consume

30

15
EE249: Design of Embedded System (corrections) ASV/LL

Producer-Consumer Problem

Produce

Buffer

Consume

31

Producer-Consumer Problem

Produce

Buffer

Consume

32

16
EE249: Design of Embedded System (corrections) ASV/LL

Producer-Consumer Problem

Produce

Buffer

Consume

33

Producer-Consumer Problem

Produce

Buffer

Consume

34

17
EE249: Design of Embedded System (corrections) ASV/LL

Producer-Consumer with priority


A
Consumer B can
consume only if
buffer A is empty

Inhibitor arcs

35

PN properties
• Behavioral: depend on the initial marking (most
interesting)
– Reachability
– Boundedness
– Schedulability
– Liveness
– Conservation
• Structural: do not depend on the initial marking
(often too restrictive)
– Consistency
– Structural boundedness 36

18
EE249: Design of Embedded System (corrections) ASV/LL

Reachability
• Marking M is reachable from marking M0 if there
exists a sequence of firings σ = M0 t1 M1 t2 M2… M
that transforms M0 to M.
• The reachability problem is decidable.
p2
t2
p1 t1 p4
Μ 0 = (1,0,1,0)
t3

M1 = (1,0,0,1)
t3
p3 t2
Μ 0 = (1,0,1,0)
M = (1,1,0,0)
M = (1,1,0,0) 37

Liveness
• Liveness: from any marking any transition can
become fireable
– Liveness implies deadlock freedom, not viceversa

Not live

38

19
EE249: Design of Embedded System (corrections) ASV/LL

Liveness
• Liveness: from any marking any transition can
become fireable
– Liveness implies deadlock freedom, not viceversa

Not live

39

Liveness
• Liveness: from any marking any transition can
become fireable
– Liveness implies deadlock freedom, not viceversa

Deadlock-free

40

20
EE249: Design of Embedded System (corrections) ASV/LL

Liveness
• Liveness: from any marking any transition can
become fireable
– Liveness implies deadlock freedom, not viceversa

Deadlock-free

41

Boundedness
• Boundedness: the number of tokens in any place
cannot grow indefinitely
– (1-bounded also called safe)
– Application: places represent buffers and registers (check
there is no overflow)

Unbounded
42

21
EE249: Design of Embedded System (corrections) ASV/LL

Boundedness
• Boundedness: the number of tokens in any place
cannot grow indefinitely
– (1-bounded also called safe)
– Application: places represent buffers and registers (check
there is no overflow)

Unbounded
43

Boundedness
• Boundedness: the number of tokens in any place
cannot grow indefinitely
– (1-bounded also called safe)
– Application: places represent buffers and registers (check
there is no overflow)

Unbounded
44

22
EE249: Design of Embedded System (corrections) ASV/LL

Boundedness
• Boundedness: the number of tokens in any place
cannot grow indefinitely
– (1-bounded also called safe)
– Application: places represent buffers and registers (check
there is no overflow)

Unbounded
45

Boundedness
• Boundedness: the number of tokens in any place
cannot grow indefinitely
– (1-bounded also called safe)
– Application: places represent buffers and registers (check
there is no overflow)

Unbounded
46

23
EE249: Design of Embedded System (corrections) ASV/LL

Conservation
• Conservation: the total number of tokens in the
net is constant

Not conservative

47

Conservation
• Conservation: the total number of tokens in the
net is constant

Not conservative

48

24
EE249: Design of Embedded System (corrections) ASV/LL

Conservation
• Conservation: the total number of tokens in the
net is constant

Conservative

2
49

Analysis techniques

• Structural analysis techniques


– Incidence matrix
– T- and S- Invariants
• State Space Analysis techniques
– Coverability Tree
– Reachability Graph

50

25
EE249: Design of Embedded System (corrections) ASV/LL

Incidence Matrix
t2
p1 t1 p2 p3

t1 t2 t3
t3 -1 0 0 p1
A= 1 1 -1 p2
0 -1 1 p3

• Necessary condition for marking M to be reachable


from initial marking M0:
there exists firing vector v s.t.:
M = M0 + A v 51

State equations
• E.g. reachability of M =|0 0 1|T from M0 = |1 0 0|T
t2
p1 t1 p2 p3 -1 0 0
A= 1 1 -1
0 -1 1
t3

1 0 1 -1 0 0 1
v1 = 0 0 = 0 + 1 1 -1 0
1 1 0 0 -1 1 1

but also v2 = | 1 1 2 |T or any vk = | 1 (k) (k+1) |T52

26
EE249: Design of Embedded System (corrections) ASV/LL

Necessary Condition only


t2

t3
t1

2
2
Firing vector: (1,2,2) Deadlock!!
53

State equations and invariants


• Solutions of Ax = 0 (in M = M0 + Ax, M = M0)
T-invariants
– sequences of transitions that (if fireable) bring back to original marking
– periodic schedule in SDF
– e.g. x =| 0 1 1 |T

t2
p1 t1 p2 p3 -1 0 0
A= 1 1 -1
0 -1 1
t3 54

27
EE249: Design of Embedded System (corrections) ASV/LL

Application of T-invariants

• Scheduling
– Cyclic schedules: need to return to the initial state
i *k2 + o

*k1

T-invariant: (1,1,1,1,1)
Schedule: i *k2 *k1 + o
55

State equations and invariants

• Solutions of yA = 0
S-invariants
– sets of places whose weighted total token count does not
change after the firing of any transition (y M = y M’)
– e.g. y =| 1 1 1 |T

t2
p1 t1 p2 p3 -1 1 0
AT= 0 1 -1
0 -1 1
t3
56

28
EE249: Design of Embedded System (corrections) ASV/LL

Application of S-invariants

• Structural Boundedness: bounded for any


finite initial marking M0
• Existence of a positive S-invariant is CS for
structural boundedness
– initial marking is finite
– weighted token count does not change

57

Summary of algebraic methods

• Extremely efficient
(polynomial in the size of the net)
• Generally provide only necessary or sufficient
information
• Excellent for ruling out some deadlocks or
otherwise dangerous conditions
• Can be used to infer structural boundedness

58

29
EE249: Design of Embedded System (corrections) ASV/LL

Coverability Tree
• Build a (finite) tree representation of the markings

Karp-Miller algorithm
• Label initial marking M0 as the root of the tree and tag it as new
• While new markings exist do:
– select a new marking M
– if M is identical to a marking on the path from the root to M, then tag M as
old and go to another new marking
– if no transitions are enabled at M, tag M dead-end
– while there exist enabled transitions at M do:
• obtain the marking M’that results from firing t at M
• on the path from the root to M if there exists a marking M’’such that
M’(p)>=M’’(p) for each place p and M’ is different from M’’, then replace M’(p)
by ω for each p such that M’(p) >M’’(p)
• introduce M’as a node, draw an arc with label t from M to M’ and tag M’as
new. 59

Coverability Tree
• Boundedness is decidable
1000
with coverability tree

t2
p1 t1 p2 p3

p4
t3

60

30
EE249: Design of Embedded System (corrections) ASV/LL

Coverability Tree
• Boundedness is decidable
1000
with coverability tree
t1
t2 0100
p1 t1 p2 p3

p4
t3

61

Coverability Tree
• Boundedness is decidable
1000
with coverability tree
t1
0100
t2
p1 t1 p2 p3 t3
0011

p4
t3

62

31
EE249: Design of Embedded System (corrections) ASV/LL

Coverability Tree
• Boundedness is decidable
1000
with coverability tree
t1
t2 0100
p1 t1 p2 p3 t3
0011
t2
p4 0101
t3

63

Coverability Tree
• Boundedness is decidable
1000
with coverability tree
t1
0100
t2
p1 t1 p2 p3 t3
0011
t2
t3 p4 010ω

Cannot solve the reachability and liveness problems


64

32
EE249: Design of Embedded System (corrections) ASV/LL

Coverability Tree
• Boundedness is decidable
1000
with coverability tree
t1
t2 0100
p1 t1 p2 p3 t3
0011
t2
t3 p4 010ω

Cannot solve the reachability and liveness problems


65

Reachability graph

t2
p1 t1 p2 p3 100

t3

• For bounded nets the Coverability Tree is called


Reachability Tree since it contains all possible
reachable markings
66

33
EE249: Design of Embedded System (corrections) ASV/LL

Reachability graph

t2
p1 t1 p2 p3 100
t1
010
t3

• For bounded nets the Coverability Tree is called


Reachability Tree since it contains all possible
reachable markings
67

Reachability graph

t2
p1 t1 p2 p3 100
t1
010
t3
t3
001

• For bounded nets the Coverability Tree is called


Reachability Tree since it contains all possible
reachable markings
68

34
EE249: Design of Embedded System (corrections) ASV/LL

Reachability graph

t2
p1 t1 p2 p3 100
t1
010
t3
t2 t3
001

• For bounded nets the Coverability Tree is called


Reachability Tree since it contains all possible
reachable markings
69

Subclasses of Petri nets


• Reachability analysis is too expensive
• State equations give only partial information
• Some properties are preserved by reduction rules
e.g. for liveness and safeness

• Even reduction rules only work in some cases


• Must restrict class in order to prove stronger results
70

35
EE249: Design of Embedded System (corrections) ASV/LL

Subclasses of Petri nets: SMs


• State machine: every transition has at most 1
predecessor and 1 successor
• Models only causality and conflict
– (no concurrency, no synchronization of parallel activities)

71

Subclasses of Petri nets: MGs


• Marked Graph: every place has at most 1 predecessor
and 1 successor
• Models only causality and concurrency (no conflict)

• Same as underlying graph of SDF


72

36
EE249: Design of Embedded System (corrections) ASV/LL

Subclasses of Petri nets: FC nets


• Free-Choice net: every transition after choice
has exactly 1 predecessor

73

Free-Choice Petri Nets (FCPN)

Free-Choice (FC)
t1

t2
Confusion (not-Free-Choice) Extended Free-Choice
Free-Choice: the outcome of a choice depends on the
value of a token (abstracted non-deterministically)
rather than on its arrival time.
Easy to analyze 74

37
EE249: Design of Embedded System (corrections) ASV/LL

Free-Choice nets
• Introduced by Hack (‘72)
• Extensively studied by Best (‘86) and Desel and
Esparza (‘95)
• Can express concurrency, causality and choice without
confusion
• Very strong structural theory
– necessary and sufficient conditions for liveness and safeness,
based on decomposition
– concurrency, causality and choice relations are mutually
exclusive
– exploits duality between MG and SM 75

MG (& SM) decomposition


• An Allocation is a control function that chooses which
transition fires among several conflicting ones ( A: P T).
• Eliminate the subnet that would be inactive if we were to use
the allocation...
• Reduction Algorithm
– Delete all unallocated transitions
– Delete all places that have all input transitions already
deleted
– Delete all transitions that have at least one input place
already deleted
• Obtain a Reduction (one for each allocation) that is a conflict
free subnet 76

38
EE249: Design of Embedded System (corrections) ASV/LL

MG reduction and cover


• Choose one successor for each conflicting place:

77

MG reduction and cover


• Choose one successor for each conflicting place:

78

39
EE249: Design of Embedded System (corrections) ASV/LL

MG reduction and cover


• Choose one successor for each conflicting place:

79

MG reduction and cover


• Choose one successor for each conflicting place:

80

40
EE249: Design of Embedded System (corrections) ASV/LL

MG reduction and cover


• Choose one successor for each conflicting place:

81

MG reductions
• The set of all reductions yields a cover of MG
components (T-invariants)

82

41
EE249: Design of Embedded System (corrections) ASV/LL

MG reductions
• The set of all reductions yields a cover of MG
components (T-invariants)

83

SM reduction and cover


• Choose one predecessor for each transition:

84

42
EE249: Design of Embedded System (corrections) ASV/LL

SM reduction and cover


• Choose one predecessor for each transition:

85

SM reduction and cover


• Choose one predecessor for each transition:

• The set of all reductions yields a cover of SM


components (S-invariants) 86

43
EE249: Design of Embedded System (corrections) ASV/LL

Hack’s theorem (‘72)

• Let N be a Free-Choice PN:


– N has a live and safe initial marking (well-formed)
if and only if
• every MG reduction is strongly connected and not empty, and
the set of all reductions covers the net
• every SM reduction is strongly connected and not empty, and
the set of all reductions covers the net

87

Hack’s theorem

• Example of non-live (but safe) FCN

88

44
EE249: Design of Embedded System (corrections) ASV/LL

Hack’s theorem

• Example of non-live (but safe) FCN

89

Hack’s theorem

• Example of non-live (but safe) FCN

90

45
EE249: Design of Embedded System (corrections) ASV/LL

Hack’s theorem

• Example of non-live (but safe) FCN

91

Hack’s theorem

• Example of non-live (but safe) FCN

92

46
EE249: Design of Embedded System (corrections) ASV/LL

Hack’s theorem

• Example of non-live (but safe) FCN

93

Hack’s theorem

• Example of non-live (but safe) FCN

94

47
EE249: Design of Embedded System (corrections) ASV/LL

Hack’s theorem

• Example of non-live (but safe) FCN

95

Hack’s theorem

• Example of non-live (but safe) FCN

96

48
EE249: Design of Embedded System (corrections) ASV/LL

Hack’s theorem

• Example of non-live (but safe) FCN

97

Hack’s theorem

• Example of non-live (but safe) FCN

98

49
EE249: Design of Embedded System (corrections) ASV/LL

Hack’s theorem

• Example of non-live (but safe) FCN

99

Hack’s theorem

• Example of non-live (but safe) FCN

100

50
EE249: Design of Embedded System (corrections) ASV/LL

Hack’s theorem

• Example of non-live (but safe) FCN

101

Hack’s theorem

• Example of non-live (but safe) FCN

102

51
EE249: Design of Embedded System (corrections) ASV/LL

Hack’s theorem

• Example of non-live (but safe) FCN

Not live

103

Other results for LSFC nets


• Let t1 and t2 be two transitions of a live and safe Free-
Choice net.
Then t1 and t2 are:
– sequential if
there exists a simple cycle to which both belong
– concurrent if
they are not ordered, and
there exists an MG component to which both belong
– conflicting otherwise

104

52
EE249: Design of Embedded System (corrections) ASV/LL

Summary of LSFC nets

• Largest class for which structural theory really


helps
• Structural component analysis may be
expensive
(exponential number of MG and SM components in
the worst case)
• But…
– number of MG components is generally small
– FC restriction simplifies characterization of
behavior
105

Petri Net extensions


• Add interpretation to tokens and transitions
– Colored nets (tokens have value)
• Add time
– Time/timed Petri Nets (deterministic delay)
• type (duration, delay)
• where (place, transition)
– Stochastic PNs (probabilistic delay)
– Generalized Stochastic PNs (timed and immediate
transitions)
• Add hierarchy
– Place Charts Nets
106

53
EE249: Design of Embedded System (corrections) ASV/LL

Summary of Petri Nets

• Graphical formalism
• Distributed state (including buffering)
• Concurrency, sequencing and choice made
explicit
• Structural and behavioral properties
• Analysis techniques based on
– linear algebra (only sufficient)
– structural analysis (necessary and sufficient only for
FC)
107

54

Anda mungkin juga menyukai