petri nets copyright, 2003 © jerzy r. nawrocki [email protected] models and analysis of...
TRANSCRIPT
Petri NetsPetri Nets
Copyright, 2003 © Jerzy R. Nawrocki
www.cs.put.poznan.pl/jnawrocki/mse/mss/
Models and Analysis of Software Models and Analysis of Software
Lecture 7Lecture 7
Models and Analysis of Software Models and Analysis of Software
Lecture 7Lecture 7
J. Nawrocki, Models & Analysis of Soft.
From the previous lecture..From the previous lecture..From the previous lecture..From the previous lecture..
A Be(c) / a
e - event
c - conditiona - actionExamples:
• sending a signal,• assignment statement.
Action:
• an instantaneous occurrence
• ideally takes zero time.
J. Nawrocki, Models & Analysis of Soft.
From the previous lecture..From the previous lecture..From the previous lecture..From the previous lecture..
whilewhile (a != b) (a != b)
ifif (a > b) (a > b)
a -= b;a -= b;
elseelse b -= a; b -= a;
whilewhile (a != b) (a != b)
ifif (a > b) (a > b)
a -= b;a -= b;
elseelse b -= a; b -= a;
E
S
Loop
A B
(a>b) /a-=b
(b>a) /b-=a
B
(a=b)
a:a:
b:b:
J. Nawrocki, Models & Analysis of Soft.
OrthogonalityOrthogonalityOrthogonalityOrthogonality
B
C
(in G)
AE
F
G
D
J. Nawrocki, Models & Analysis of Soft.
From the previous lecture..From the previous lecture..From the previous lecture..From the previous lecture..
Activity:• similar to action but• takes a nonzero amount of time
Examples:• reading input• beeping• displaying• lengthy computations
J. Nawrocki, Models & Analysis of Soft.
Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture
• From the previous lecture..
• Introduction• Simple examples• Concurrent transitions• Transitions in conflict• Another example• Readers and writers• Properties of Petri Nets
J. Nawrocki, Models & Analysis of Soft.
Carl Adam PetriCarl Adam PetriCarl Adam PetriCarl Adam Petri
Born on July, 12, 1926 in Leipzig
Since 1988:Honorary Prof. at the Univ. of Hamburg
Kommunikation mit Automaten. Petri, C.A., Bonn: Institut für Instrumentelle Mathematik, Schriften des IIM Nr. 2, 1962, Second Edition:, New York: Griffiss Air Force Base, Technical Report RADC-TR-65--377, Vol.1, 1966, English translation.
J. Nawrocki, Models & Analysis of Soft.
IntroductionIntroductionIntroductionIntroduction
Petri nets:• a graphical language• a good mathematical
background
Applications:• modelling concurrent and/or
distributed systems• communication protocols,
computer networks, manufacturing system, public transport systems etc.
J. Nawrocki, Models & Analysis of Soft.
TerminologyTerminologyTerminologyTerminology
A placeA place
A transitionA transition
A tokenA token
An inputAn input
arcarc
An outputAn output
arcarc
J. Nawrocki, Models & Analysis of Soft.
Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture
• From the previous lecture..• Introduction
• Simple examples• Concurrent transitions• Transitions in conflict• Another example• Readers and writers• Properties of Petri Nets
J. Nawrocki, Models & Analysis of Soft.
A very simple exampleA very simple exampleA very simple exampleA very simple example
A reader in a library:• waiting,• reading.
waiting
reading
strt_reading
stop_reading
J. Nawrocki, Models & Analysis of Soft.
A very simple exampleA very simple exampleA very simple exampleA very simple example
A reader in a library:• waiting,• reading.
waiting
reading
strt_reading
stop_reading
J. Nawrocki, Models & Analysis of Soft.
A very simple exampleA very simple exampleA very simple exampleA very simple example
A reader in a library:• waiting,• reading.
waiting
reading
strt_reading
stop_reading
J. Nawrocki, Models & Analysis of Soft.
A very simple exampleA very simple exampleA very simple exampleA very simple example
A reader in a library:• waiting,• reading.
waiting
reading
strt_reading
stop_reading
J. Nawrocki, Models & Analysis of Soft.
A very simple exampleA very simple exampleA very simple exampleA very simple example
A reader in a library:• waiting,• reading.
waiting
reading
strt_reading
stop_reading
J. Nawrocki, Models & Analysis of Soft.
waiting
reading
strt_reading
stop_reading
Another simple exampleAnother simple exampleAnother simple exampleAnother simple example
Two readers in a library:
• waiting,• reading.
J. Nawrocki, Models & Analysis of Soft.
waiting
reading
strt_reading
stop_reading
Another simple exampleAnother simple exampleAnother simple exampleAnother simple example
Two readers in a library:
• waiting,• reading.
J. Nawrocki, Models & Analysis of Soft.
waiting
reading
strt_reading
stop_reading
Another simple exampleAnother simple exampleAnother simple exampleAnother simple example
Two readers in a library:
• waiting,• reading.
J. Nawrocki, Models & Analysis of Soft.
waiting
reading
strt_reading
stop_reading
Another simple exampleAnother simple exampleAnother simple exampleAnother simple example
Two readers in a library:
• waiting,• reading.
J. Nawrocki, Models & Analysis of Soft.
Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture
• From the previous lecture..• Introduction• Simple examples
• Concurrent transitions• Transitions in conflict• Another example• Readers and writers• Properties of Petri Nets
J. Nawrocki, Models & Analysis of Soft.
Concurrent transitionsConcurrent transitionsConcurrent transitionsConcurrent transitions
2
J. Nawrocki, Models & Analysis of Soft.
Concurrent transitionsConcurrent transitionsConcurrent transitionsConcurrent transitions
2
J. Nawrocki, Models & Analysis of Soft.
Concurrent transitionsConcurrent transitionsConcurrent transitionsConcurrent transitions
2
J. Nawrocki, Models & Analysis of Soft.
Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture
• From the previous lecture..• Introduction• Simple examples• Concurrent transitions
• Transitions in conflict• Another example• Readers and writers• Properties of Petri Nets
J. Nawrocki, Models & Analysis of Soft.
Transitions in conflictTransitions in conflictTransitions in conflictTransitions in conflict
J. Nawrocki, Models & Analysis of Soft.
Transitions in conflictTransitions in conflictTransitions in conflictTransitions in conflict
J. Nawrocki, Models & Analysis of Soft.
Transitions in conflictTransitions in conflictTransitions in conflictTransitions in conflict
A decision pointA decision point
J. Nawrocki, Models & Analysis of Soft.
Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture
• From the previous lecture..• Introduction• Simple examples• Concurrent transitions• Transitions in conflict
• Another example• Readers and writers• Properties of Petri Nets
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (true)
{
t1;
. . .
t2;
. . .
t3;
}
while (.. t4 ..)
{
... t5; ...
}
Client
Server
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
J. Nawrocki, Models & Analysis of Soft.
Another exampleAnother exampleAnother exampleAnother example
while (1)
{
t1;
. . .
t2;
. . .
t3;
}
while (..t4..)
{
... t5; ...
}
t1
t2
t3
t4t5
(t1 (t2 || t4 (t5 t4)*) t3)*
J. Nawrocki, Models & Analysis of Soft.
Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture
• From the previous lecture..• Introduction• Simple examples• Concurrent transitions• Transitions in conflict• Another example
• Readers and writers• Properties of Petri Nets
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
while(1) { Read(d); Use(d); }
while(1) { Think(d); Write(d); }
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
LibraryLibrary
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
LibraryLibrary
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
while(1) { Read(d); Use(d); }
while(1) { Think(d); Write(d); }
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
void StartRead() { ReadersIn++; }
void StartWrite() { WritersIn++; }
void StopRead() {ReadersIn--; }
void StopWrite() {WritersIn--; }
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
void StartRead() { wait(Readers); ReadersIn++; }
void StartWrite() { wait(Writers); WritersIn++; }
void StopRead() {ReadersIn--; signal(Writers); }
void StopWrite() {WritersIn--; signal(Writers); signal(Readers); }
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
void StartRead() {if(WritersIn > 0) wait(Readers); ReadersIn++; }
void StartWrite() {if(ReadersIn > 0 || WritersIn > 0) wait(Writers); WritersIn++; }
void StopRead() {ReadersIn--; if(ReadersIn == 0) signal(Writers); }
void StopWrite() {WritersIn--; if(!Empty(Writers)) signal(Writers); else if(!Empty(Readers)) signal(Readers); }
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Readers and writersReaders and writersReaders and writersReaders and writers
StartRead
while(1) { StartRead(); Read(d); StopRead(); Use(d); }
while(1) { Think(d); StartWrite(); Write(d); StopWrite(); }
StopReadStopWrite
StartWrite
2
2
J. Nawrocki, Models & Analysis of Soft.
Plan of the lecturePlan of the lecturePlan of the lecturePlan of the lecture
• From the previous lecture..• Introduction• Simple examples• Concurrent transitions• Transitions in conflict• Another example• Readers and writers
• Properties of Petri Nets
J. Nawrocki, Models & Analysis of Soft.
Properties of Petri NetsProperties of Petri NetsProperties of Petri NetsProperties of Petri Nets
Reachability of a given marking
k-Boundedness:
A number of tokens in each place never exceeds k for any marking M reachable from the initial marking.
K-Boundedness
J. Nawrocki, Models & Analysis of Soft.
Properties of Petri NetsProperties of Petri NetsProperties of Petri NetsProperties of Petri Nets
A PN is live if for every marking M reachable from the initial marking M0 it is possible eventually to fire every transition in the net in some marking M’ which is reachable from M.
Liveness
J. Nawrocki, Models & Analysis of Soft.
Properties of Petri NetsProperties of Petri NetsProperties of Petri NetsProperties of Petri Nets
An infinite firing sequence s is said to be globally fair if every transition appears in s infinitely often.
Global fairness
J. Nawrocki, Models & Analysis of Soft.
SummarySummarySummarySummary
Petri nets: a simple modelling tool oriented towards concurrent and distributed systems.
Timed Petri Nets
Coloured Petri Nets
Stochastic Petri Nets
J. Nawrocki, Models & Analysis of Soft.
Further readingsFurther readingsFurther readingsFurther readings
James L. Peterson, Petri Nets,
Computing Surveys, vol. 9, No. 3, September 1977, 223 – 252.
N. Nissanke, Realtime Systems, Prentice Hall, London, 1997.
J. Nawrocki, Models & Analysis of Soft.
HomeworkHomeworkHomeworkHomework
Translate the statechart given below to Petri Nets.
B
C
(in G)
AE
F
G
D
J. Nawrocki, Models & Analysis of Soft.
HomeworkHomeworkHomeworkHomework
• Prepare a model of a file access control protocol allowing up to four concurrent readers in read-only mode or a single writer in exclusive read and write mode.
• Draw statechart counterparts of the presented Petri Nets.
J. Nawrocki, Models & Analysis of Soft.
Quality assessmentQuality assessmentQuality assessmentQuality assessment
1. What is your general impression? (1 - 6)
2. Was it too slow or too fast?
3. What important did you learn during the lecture?
4. What to improve and how?