**2.5. Petri nets properties**

The PN properties allow a detailed analysis of the modeled system. For this, two types of properties have been considered in a Petri net model: behavioral and structural properties. Behavioral properties are those which depend on the initial marking. Structural properties, on the other hand, are those that are marking-independent.

#### *2.5.1. Behavioral properties*

This section, based on [14], describes some behavioral properties, since such properties are very important when analyzing a given system.

#### **Reachability**

The firing of an enabled transition changes the token marking in a Petri net, and a sequence of firings results in a sequence of markings. A marking *Mn* is said to be reachable from a marking *M*<sup>0</sup> if there exists a sequence of firings that transforms *M*<sup>0</sup> to *Mn*.

A firing (or occurrence) sequence is denoted by *σ* = *t*1, *t*2, ...,*tn*. In this case, *mi* is reachable from *m*<sup>0</sup> by *σ*, and it is denoted by *m*0[*σ* > *mi*. The set of all possible reachable markings from *m*<sup>0</sup> in a net (PN, *m*0) is denoted by R(PN,*m*0), or simply R(*m*0). The set of all possible firing sequence from *m*<sup>0</sup> in a net (PN,*m*0) is denoted by L(PN, *m*0), or simply L(*m*0).

## **Boundedness**

A Petri net is said to be bounded if the number of tokens in each place does not exceed a finite number k for any marking reachable from *M*0. In a formal way, *M*(*p*) ≤ *k*, ∀*p* ∈ *P* and ∀*M* ∈ *R*(*M*0).

**Structural conservativeness**

**Structural repetitiveness**

**2.6. Stochastic Petri nets**

state variables of a Petri net.

arcs to all output places.

and leads to a state change.

extended stochastic Petri net definition similar to [9]:

there are enough tokens in all input places.

fewer tokens than the multiplicity of the arc.

Let *SPN*= (*P*, *T*, *I*,*O*, *H*, Π, *G*, *M*0, *Atts*) be a stochastic Petri net, where

• *T* = {*t*1, *t*2, ...,*tm*} is the set of transitions, which model active components.

repetitive. **Consistence**

A PN that provides a constant weighted sum of tokens for any reachable marking when

A Petri Net-Based Approach to the Quanti cation of Data Center Dependability 323

A PN is classified as repetitive if there is an initial marking *m*<sup>0</sup> and an enabled firing sequence from *m*<sup>0</sup> such that every transition of the net is infinitely fired. On the other hand, if only some of these transitions are fired infinitely often in the sequence *σ*, this net is called partially

A net is classified as consistent if there is an initial marking *m*<sup>0</sup> and an enabled firing sequence from *m*<sup>0</sup> back to *m*<sup>0</sup> such that every transition of the net is fired at least once. If only some of

Petri nets [17] are a classic tool for modeling and analyzing discrete event systems which are too complex to be described by automata or queueing models. Time (stochastic delays) and probabilistic choices are essential aspects for a performance evaluation model. We adopt the usual association of delays and weights with transitions [11] in this paper, and adopt the

• *P* = {*p*1, *p*2, ..., *pn*} is the set of places, which may contain tokens and form the discrete

• *<sup>I</sup>* <sup>∈</sup> (**N***<sup>n</sup>* <sup>→</sup> **<sup>N</sup>**)*n*×*<sup>m</sup>* is a matrix of marking-dependent multiplicities of input arcs, where *ijk* entry of *I* gives the (possibly marking-dependent) arc multiplicity of input arcs from place *pj* to transition *tk* [*A* ⊆ (*P* × *T*) ∪ (*T* × *P*) — set of arcs]. A transition is only enabled if

• *<sup>O</sup>* <sup>∈</sup> (**N***<sup>n</sup>* <sup>→</sup> **<sup>N</sup>**)*n*×*<sup>m</sup>* is a matrix of marking dependent multiplicities of output arcs, where *ojk* entry of *O* specifies the possibly marking-dependent arc multiplicity of output arcs from transition *tj* to place *pk*. When a transition fires, it removes the number of tokens specified by the input arcs from input places, and adds the amount of tokens given by the output

• *<sup>H</sup>* <sup>∈</sup> (**N***<sup>n</sup>* <sup>→</sup> **<sup>N</sup>**)*n*×*<sup>m</sup>* is a matrix of marking-dependent multiplicities describing the inhibitor arcs, where *hjk* entry of *H* returns the possibly marking-dependent arc multiplicity of an inhibitor arc from place *pj*to transition *tk*. In the presence of an inhibitor arc, a transition is enabled to fire only if every place connected by an inhibitor arc contains

• <sup>Π</sup> <sup>∈</sup> **<sup>N</sup>***<sup>m</sup>* is a vector that assigns a priority level to each transition. Whenever there are several transitions fireable at one point in time, the one with the highest priority fires first

these transitions are not fired in the sequence *σ*, this net is called partially consistent.

considering any initial marking is said to be structural conservative.

### **Safe**

When the number of tokens in each place does not exceed the number "1" (one), such Petri net is said to be safe. It is important to state that if a net is bounded or safe, it is guaranteed that there will be no overflows in any place, no matter the firing sequence adopted.

#### **Deadlock freedom**

A PN is said to be deadlock free if there is no reachable marking such that no transition is enabled.

#### **Liveness**

In an informal way, a Petri net is said to be live if it is guaranteed that no matter what firing sequence is chosen, it continues in deadlock-free operation. The formal definition, a Petri net (N,*M*0) is said to be live if, no matter what marking has been reached from *M*0, it is possible to ultimately fire any transition of the net.

Liveness is an ideal property for many real systems. However, it is very strong and too costly to verify. Thus, the liveness condition is relaxed in different levels. A transition *t* is said to be live at the following levels:


#### **Persistence**

A Petri net is said to be persistent if, for any two enabled transitions, the firing of one transition will not disable the other. Once a transition is enabled in a persistent net, it is continue to be enabled until it fires. Persistency is closed related to conflict-free nets. It is worth noting that all marked graph are persistent, but not all persistent nets are marked graphs. Persistence is a very important property when dealing with parallel system design and speed-independent asynchronous circuits.

#### *2.5.2. Structural properties*

#### **Structural liveness**

A PN *N* is said to be structurally live if there is a live initial marking for *N*.

#### **Structural boundedness**

A PN *N* is said to be structurally bounded if it is bounded for any finite initial marking *M*0.

### **Structural conservativeness**

A PN that provides a constant weighted sum of tokens for any reachable marking when considering any initial marking is said to be structural conservative.

#### **Structural repetitiveness**

A PN is classified as repetitive if there is an initial marking *m*<sup>0</sup> and an enabled firing sequence from *m*<sup>0</sup> such that every transition of the net is infinitely fired. On the other hand, if only some of these transitions are fired infinitely often in the sequence *σ*, this net is called partially repetitive.

### **Consistence**

10 Petri Nets

A Petri net is said to be bounded if the number of tokens in each place does not exceed a finite number k for any marking reachable from *M*0. In a formal way, *M*(*p*) ≤ *k*, ∀*p* ∈ *P* and

When the number of tokens in each place does not exceed the number "1" (one), such Petri net is said to be safe. It is important to state that if a net is bounded or safe, it is guaranteed

A PN is said to be deadlock free if there is no reachable marking such that no transition is

In an informal way, a Petri net is said to be live if it is guaranteed that no matter what firing sequence is chosen, it continues in deadlock-free operation. The formal definition, a Petri net (N,*M*0) is said to be live if, no matter what marking has been reached from *M*0, it is possible

Liveness is an ideal property for many real systems. However, it is very strong and too costly to verify. Thus, the liveness condition is relaxed in different levels. A transition *t* is said to be

• *L*<sup>0</sup> Live (dead), if *t* can never be fired in any firing sequence in L(*m*0), it is a dead transition. • *L*1-Live (potentially firable), if it can be fired at least once in some firing sequence in L(*m*0). • *L*2-Live if, given any positive integer k, *t* can be fired at least k times in some firing

• *L*3-Live if there is an infinite-length firing sequence in L(*m*0) in which *t* is fired infinitely.

A Petri net is said to be persistent if, for any two enabled transitions, the firing of one transition will not disable the other. Once a transition is enabled in a persistent net, it is continue to be enabled until it fires. Persistency is closed related to conflict-free nets. It is worth noting that all marked graph are persistent, but not all persistent nets are marked graphs. Persistence is a very important property when dealing with parallel system design and speed-independent

A PN *N* is said to be structurally bounded if it is bounded for any finite initial marking *M*0.

• *L*4-Live (or simply live), if it is L1-Live for every marking m in R(*m*0).

A PN *N* is said to be structurally live if there is a live initial marking for *N*.

that there will be no overflows in any place, no matter the firing sequence adopted.

**Boundedness**

∀*M* ∈ *R*(*M*0).

**Deadlock freedom**

to ultimately fire any transition of the net.

live at the following levels:

sequence in L(*m*0).

asynchronous circuits.

*2.5.2. Structural properties*

**Structural boundedness**

**Structural liveness**

**Persistence**

**Safe**

enabled. **Liveness** A net is classified as consistent if there is an initial marking *m*<sup>0</sup> and an enabled firing sequence from *m*<sup>0</sup> back to *m*<sup>0</sup> such that every transition of the net is fired at least once. If only some of these transitions are not fired in the sequence *σ*, this net is called partially consistent.
