Abstract— In this paper we present a performance evaluation
of interpreted and centralized implementation techniques of
Petri nets. These implementation techniques allow the
translation of a system model expressed by a Petri net to an
actual system with the same behaviour as the model. It has been
used in different application fields such as programmable logic
controllers. Four techniques have been analysed: Brute Force,
Enabled Transitions, Static Representing Places and Dynamic
Representing Places. The analysis has been carried out over a
Petri net library composed by well know models which can be
scaled using a parameter. The analysis of results shows that the
performance of the algorithms depends on the Petri net
behaviour (concurrency v.s. effective conflicts). However, it is
also showed that Brute Force technique can be discarded and
that the Static Representing Places performs better that the
dynamic version when the selection of representing places is
done based on behavioural information.
I. INTRODUCTION
etri nets (PN) are a formalism which is well suited for
modelling concurrent discrete event systems: it has been
satisfactorily applied in fields such as communication
networks, computer systems, discrete part manufacturing
systems, etc. Net models are often regarded as self
documented specifications, because their graphical nature
facilitates communication among designers and users. Petri
Nets have a strong mathematical foundation which allows the
validation and verification of a wide set of correctness and
liveness properties. Moreover, these models are executable
and can be used to animate and simulate the behaviour of the
system and can also be used for monitoring purposes once the
system is readily working. The final system can be derived
from a Petri net model by means of hardware and software
(code generation) implementation techniques. In other words,
they can be used all along in the life cycle of a system. In this
paper we assume that the reader knows the basic concepts of
Petri Nets[1].
The implementation of Petri Nets has received
considerable attention from researchers over the last twenty
five years. The implementation is the translation of a system
model expressed by a Petri net to an actual system with the
same behaviour as the model. It has been studied in numerous
application fields such as programmable logic controllers,
digital hardware, simulation, robotic systems and other
concurrent software applications.
This work was funded by the NERO project DPI2006-07928 of the
Spanish Ministry of Science and Technology.
A Petri net implementation can be hardware or software.
However we are interested in the second approach, the
software implementation. A software implementation is a
program which fires the net transitions, observing marking
evolution rules, i.e., plays the “token game”. An
implementation is composed of a control part and an
operational part. The control part corresponds to the
structure, marking and evolution rules of the Petri net. On the
other hand, the operational part is the set of actions and/or
codes of the application, associated with the net elements.
According to different criteria, a Petri net implementation
can be mainly classified as compiled or interpreted, as
sequential or concurrent and as centralized or decentralized.
An implementation is interpreted if the net structure and
the marking are codified as data structures. These data
structures are used by one or more tasks called interpreters to
make the net evolve. The interpreters do not depend on the
implemented net. A compiled implementation is based on the
generation of one or more tasks whose control flow
corresponds to net evolutions.
A sequential implementation is composed of only one task,
even in nets with concurrency. This kind of implementation is
common in applications whose operational part is composed
by impulsional actions without significant execution time.
This is the case of programmable logic controllers, see for
example [2] or [3]. The research effort in this field produced
an important result, the Grafcet [4], a standardized language
for programmable logic controllers. A concurrent
implementation is composed by a set of tasks whose number
is equal to or greater than the actual concurrency of the net.
Examples of concurrent implementations can be seen in [5] or
in [6].
In a centralized implementation the full control part is
executed by just one task, commonly called token player or
coordinator. The operational part of the implementation can
be distributed in a set of tasks to guarantee the concurrence
expressed by the net (see for example [5]). Thus, the
coordinator acts as the operating system kernel of a
multitasking application. To characterize a centralized
implementation, the algorithm is important to determine
which transitions are enabled and can fire. Apart of the simple
exhaustive test of all transitions, there are various solutions to
reduce the costs of the enabling test.
The main objective of the current paper is to evaluate the
current interpreted and centralized implementation
techniques of Petri nets from the point of view of the overload
introduced for the control part. For this reason we have
implemented different PN execution algorithms which will be
Performance Evaluation of Petri Nets Execution Algorithms
Ramón Piedrafita Moreno, José Luis Villarroel Salcedo
Aragón Institute for Engineering Research (I3A), University of Zaragoza,
Maria de Luna, 1. 50018, Zaragoza, Spain
{piedrafi,jlvilla}@unizar.es
P
1400 1-4244-0991-8/07/$25.00/©2007 IEEE
Authorized licensed use limited to: Universidad de Zaragoza. Downloaded on March 20, 2009 at 06:28 from IEEE Xplore. Restrictions apply.