Sei sulla pagina 1di 45

Università di degli Studi della Campania

Luigi Vanvitelli
Dipartimento di Ingegneria
Laurea Magistrale in Ingegneria Informatica

Affidabilità dei Sistemi Software Complessi


a.a. 2018-2019

Reti di Petri

Docente : Massimo Ficco


E-mail : massimo.ficco@unicampania.it
1

Caratteristiche dei formalismi di


modellazione
 Potenza di modellazione, o di rappresentazione: è la capacità di un
formalismo di modellazione di catturare gli aspetti di un sistema e del
suo comportamento
 Convenienza o efficienza: è la capacità di un formalismo di
modellazione di rappresentare in maniera il più possibile rapida,
semplice e comprensibile un sistema e il suo comportamento.
 Potenza di decisione, o di soluzione: è la capacità di analizzare e
risolvere il modello per ricavare proprietà o misure di interesse del
sistema modellato
 L’efficienza di decisione, o di soluzione: è la capacità di
analizzare e risolvere il modello in maniera rapida e semplice

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 2


Caratteristiche dei formalismi di
modellazione
La scelta del formalismo di modellazione dipende da molteplici fattori:
tra cui:

 la classe di applicazione del sistema da modellare


 la dimensione e la complessità a del sistema e del modello risultante
 la complessità dello stato e delle operazioni di cambiamento di stato
 il livello di conoscenza del formalismo da parte di chi modella

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 3

Reti di Petri
Le Reti di PETRI costituiscono un formalismo di specifica per
applicazioni orientate al controllo, e si rivelano particolarmente
adeguate per la descrizione formale di attività concorrenti e/o asincrone.

I formalismi basati sulle PN sono uno degli strumenti più usati per la
modellazione e la valutazione di misure di affidebilità, performance e
performability di sistemi di elaborazione e comunicazione.

Con le PN`e possibile descrivere aspetti qualitativi e quantitativi di


sistemi complessi sia in termini di rappresentazione grafica (simile a
diagrammi di flusso o a diagrammi a blocchi) che in termini di modelli
matematici (ad esempio, mediante equazioni di stato o equazioni
algebriche).
http://www.informatik.uni-hamburg.de/TGI/PetriNets

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 4


Reti di Petri
Possono essere viste come un’estensione delle automi a stati finiti.

Automi a stati finiti: si considera sempre lo stato del sistema nel suo
complesso: inoltre le transizioni di stato sono tra loro mutuamente
esclusive.

Reti di Petri: lo stato e le transazioni sono concetti distribuiti


Stato: è l’insieme di più stati parziali e indipendenti
Transazioni: non riguarda lo stato globale del sistema, ma si limita a
variare solo una parte; inoltre due transazioni possono verificarsi
contemporaneamente

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 5

Reti di Petri
Permette di modellare sistemi asincroni, in cui gli eventi
non sono forzati ad accadere secondo un frequenza
definita.
E’ un modello non deterministico: facoltà
completamente libera di scegliere una qualsiasi tra le
transazioni che possono aver luogo (non probabilistico)

Astrae da ogni nozione di tempo, definisce soltanto un


ordine parziale tra gli eventi (precedenze con cui le
transazioni devono intervenire nel corretto funzionamento
del sistema)

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 6


Reti di Petri Posti/Transazioni (P/T)
Una rete N è una tripla:
N = (P,T;F)
dove P è detto insieme dei posti, T è detto insieme delle transizioni
e F è detta relazione di flusso. P e T sono due insiemi finiti.

Devono valere inoltre le seguenti proprietà

(1) gli insiemi dei posti e delle transizioni sono disgiunti


(2) la rete non è vuota (esiste nella rete almeno un posto oppure una
transizione)
(3) posti e transizioni sono tra loro in relazione (ma non posti con
posti o transizioni con transizioni)

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 7

Reti di Petri (P/T)


Grafo bipartito, i cui nodi sono di due tipi distinti (i
posti e le transizioni) e sono collegati tramite archi
orientati (gli elementi della relazione di flusso)

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 8


Reti di Petri

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 9

Reti di Petri
 Rete (rappresenta la parte statica del sistema modellato):
• Posti - contengono informazioni relative ai possibili stati
parziali della rete
• Transizioni - indicano le modifiche elementari dello stato della
rete (eventi, ciascuno produce un cambiamento negli stati
parziali)
• Struttura topologica - indicando quale sia l'ordinamento parziale
che deve valere tra i nodi, ossia quali eventi possono avere
luogo e in che ordine data una certa configurazione di stati
parziali e quali nuove configurazioni di stati parziali possono
essere generate

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 10


Rappresentazione grafica
delle reti di Petri
Marcatura di una rete (rappresenta lo stato del sistema):
Una rete Posti/Transizioni (o rete P/T) è una quintupla:
P/T = (P,T;F,W,M0)
dove P, T e F definiscono una rete e W e M0 sono due funzioni:

(4) W associa a ogni elemento della relazione di flusso (arco) un


numero intero positivo detto peso o molteplicità
(5) M0, detta marcatura iniziale della rete P/T, associa a ogni
posto un numero intero non negativo
La marcatura iniziale M0 indica l'insieme degli stati parziali, ossia
lo stato globale, in cui la rete si trova all'inizio della sua
evoluzione

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 11

Reti di Petri
Consente simulazioni o almeno animazioni, per esaminare rapidamente
e chiaramente il comportamento del sistema
• Rete P/T come un grafo bipartito
• La funzione peso W viene rappresentata con un'annotazione sull'arco
corrispondente
• La funzione marcatura M viene rappresentata con dei token (marche)
rappresentati da tondini neri all'internodi un posto in numero uguale al
valore che la funzione M assume nel posto

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 12


Preset e Postset
Preset
Detto n un nodo della rete (posto oppure transizione), il suo
preset è l’insieme dei nodi dai quali parte un arco che arriva a n.
Il preset di n s’indica con pre(n).
Postset
Detto n un nodo della rete (posto oppure transizione), il suo
postset è l’insieme dei nodi ai quali arriva un arco che parte da n.
Il postset di n s’indica con post(n).
Osservazione
Poiché la relazione di flusso F connette posti a transizioni (o
viceversa) e non posti a posti né transizioni a transizioni, il preset
ed il postset di un posto sono composti di sole transizioni, mentre
il preset ed il postset di una transizione sono fatti di soli posti.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 13

Reti di Preset e Postset

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 14


Evoluzione della rete
Il sistema modellato da una rete P/T evolve tramite il verificarsi
di uno o più eventi

Per il verificarsi di un evento, occorre considerare due aspetti:


• possibilità che l'evento si verifichi, detto abilitazione di
una transizione (esame della marcatura)
• effetto che l'evento ha sullo stato del sistema, detto
regola di scatto di una transizione (generazione di
preesistente a tale scatto)

Una transizione t è abilitata (può scattare) quando in M


ogni posto p d'ingresso a t contiene un numero di token
almeno uguale (>=) al peso dell'arco che collega p a t

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 15

Abilitazione di una transizione

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 16


Scatto di una transizione
Può avvenire solo se la transizione è abilitata a scattare
nella marcatura M
Produce una nuova marcatura M' tale che:
• da ogni posto p in ingresso a t viene rimosso un numero
di token uguale al peso dell'arco che collega p a t
• in ogni posto q in uscita a t viene depositato un numero
di token uguale al peso dell'arco che collega t a q
• la marcatura dei posti che non siano né d'ingresso né
d'uscita a t rimane inalterata

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 17

Scatto di una transizione

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 18


Diamogli un “senso fisico”

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 19

Evoluzione della rete


Non determinismo
Si consideri una rete P/T con marcatura corrente M e sia S
l’insieme delle transizioni abilitate in M: solamente una
transizione di S viene scelta, a caso, per lo scatto.

Osservazioni
 Il criterio di scelta è del tutto non-deterministico
 Il criterio garantisce il rispetto della località dell’evoluzione del
sistema, cioè l’indipendenza degli eventi
 Una volta che una transizione abilitata scatta, per decidere quale
sarà la futura transizione abilitata a scattare si deve attuare una
nuova valutazione della rete, in quanto la marcatura creatasi dallo
scatto della precedente transizione può aver abilitato nuove
transizioni e aver disabilitato alcune di quelle abilitate in precedenza

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 20


Criterio alternativo di evoluzione
La questione di come scegliere la transizione da far
scattare se ve n’è più d’una abilitata?
è ancora oggetto di dibattito ed esistono convenzioni
diverse

Tra le transizioni abilitate ve ne sono alcune che non


sono in conflitto tra loro, queste scattano tutte.
Quanto a quelle in conflitto, vi sono molte convenzioni
diverse: scelta casuale, priorità, e così via

Questa regola di scelta alternativa è molto diffusa


perché molto intuitiva (ancora oggetto di dibattito ed
esistono convenzioni diverse)

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 21

Evoluzione della rete

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 22


Esempio
1 Produttore – 1 Consumatore – 1 Magazzino a 2 posti

Tre Reti di Petri:

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 23

Esempio
1 Produttore – 1 Consumatore – 1 Magazzino a 2 posti

La rete combinata si ottiene a partire dalle singole


componenti identificando le transizioni comuni

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 24


Esempio
n Produttori – n Consumatori

Tre produttori (rappresentati dai tre token nel posto p1), due consumatori
(rappresentati dai due token in p3)
Il token in p5 rappresenta un oggetto che, creato dai produttori, attende di
essere utilizzato da un consumatore
Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 25

Esempio
n Produttori – n Consumatori
Scatta t2 (unica abilitata)
• Viene depositato un token in p2 e si aggiungono tre token in p5

Ora possono scattare tre transizioni, corrispondenti agli eventi possibili:


• la produzione ancora di 3 oggetti (scatto di t2)
• il rifornimento del processo che ha appena prodotto i tre oggetti e il cui
token corrispondente si trova ora in p2 (scatto di t1)
• l'appropriazione di due qualsiasi degli oggetti prodotti, rappresentati
dai token in p5, da parte di un consumatore (scatto di t3)

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 26


Esempio
n Produttori – n Consumatori
Assumendo che scatti t3:

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 27

Esempio
n Produttori – n Consumatori
A partire da questa nuova marcatura si avrà tra le
transizioni abilitate (in questo caso t1, t2, t3 e t4) una
transizione che scatta (a esempio t4):

e così via l'evoluzione della rete prosegue

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 28


Esempio elaborazione ordini*
Tre ordini in attesa, uno in elaborazione, due evasi

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 29

Abilitazione di una transizione*


Una transizione sotto una determinata marcatura
può avere più di una tupla abilitante

Esempio: la transizione t1 è abilitata


indipendentemente da due token in p1

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 30


Abilitazione di una transizione*
Uno stesso token può appartenere a due
diverse tuple abilitanti che possono anche
riguardare due transizioni diverse

Esempio: i token in p1 abilitano sia t1 sia t2

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 31

Situazioni riguardanti coppie di


transizioni
Sequenza

Nell'esempio, l'unica transizione abilitata è t,


visto che u, il cui scatto richiede la presenza di
due token in p2, può scattare solo dopo che è
scattata t

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 32


Situazioni riguardanti coppie di
transizioni
Concorrenza
Due transizioni t1 e t2 sono fra loro in
concorrenza strutturale quando non
condividono alcun posto d’ingresso, cioè lo
scatto di una delle due transizioni non
disabilita l’altra. Si introduce, come nel
caso del conflitto, il concetto di
concorrenza effettiva, situazione che si
presenta solo durante l’evoluzione della
rete. Due transizioni t1 e t2 si dicono in
concorrenza effettiva nella marcatura M
se sono abilitate entrambe in M. Si osservi
che la concorrenza strutturale implica che
possa verificarsi quella effettiva.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 33

Situazioni riguardanti coppie di


transizioni

Conflitto strutturale
Si verifica quando due transizioni t e u
hanno almeno un posto d'ingresso in
comune

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 34


Situazioni riguardanti coppie di
transizioni
Conflitto effettivo
Due transizioni si dicono in conflitto effettivo nella marcatura M se sono
in conflitto strutturale, sono entrambe abilitate in M e il numero di token
che i loro posti d'ingresso contengono non è sufficiente a soddisfare tutti
i pesi degli archi che li collegano alle due transizioni

Conflitto strutturale, rispettivamente tra le transizioni t e u e tra le


transizioni u e v
Solo il conflitto tra u e v è però un conflitto effettivo: se infatti scatta t, u
permane abilitata e viceversa, mentre lo scatto di u rende impossibile lo
scatto di v e viceversa

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 35

Reti Condizioni/Eventi (C/E)*


Tre limitazioni rispetto alle RdP:
- Sono reti con archi di peso unitario
- Tutti i posti hanno capacità unitaria, ossia non
possono contenere più di un token, e ciò implica
che: una transizione è abilitata se e solo se tutti
i suoi posti d'ingresso contengono un token e
tutti i suoi posti d'uscita sono vuoti

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 36


Vantaggi*
Non vi è distinzione tra conflitto strutturale e conflitto
effettivo: ciò rende l'analisi statica della rete molto più
efficace che nel caso delle reti P/T
• Qualunque rete P/T (con numero massimo di token in
ogni posto) è trasformabile in una rete C/E equivalente
• Modellare un sistema tramite una rete di Petri è utile
poiché sulla rete possono essere svolte svariate analisi
che diano un'indicazione sull'effettivo comportamento
del sistema, anche se ...
... alcune proprietà di interesse sono nel caso generale
indecidibili o comunque decidibili, ma a prezzo di una
complessità assai elevata

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 37

Proprietà delle Reti di Petri*


Binarietà (Safeness)
Una rete P/T si dice binaria (safe) se in ogni suo posto,
quale che sia l'evoluzione della rete, non si può mai avere
più di un token
Condizione sufficiente: marcatura iniziale binaria e che
tutte le marcature raggiungibili siano anch'esse binarie

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 38


Proprietà delle Reti di Petri
Vitalità (Liveness)
Da una misura dell'esistenza di transizioni che non possono (più)
avvenire (situazioni di blocco critico, deadlock)
• Gradi di vitalità di una transizione
Grado 0
Una transizione t è a grado 0 di vitalità se non può mai scattare in
qualunque marcatura raggiungibile della rete (la transizione t è
morta)
...
Grado 4
Una transizione t è a grado 4 di vitalità se data una qualunque
marcatura raggiungibile esiste una sequenza di scatti che a partire
da tale marcatura abiliti t (la transizione t è viva)

Una rete P/T si dice viva se e solo se ogni sua transizione è viva (è
al quarto grado di vitalità)

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 39

Proprietà delle Reti di Petri


• t0 ha grado 0 di vitalità (non si può mai avere un token in p1 e uno in p3)
• t1 può scattare solo una volta (grado di vitalità 1)
• t2 può scattare tante volte quanto è il numero di token che si trovano in
p2, ovvero dal numero di scatti della transizione t3 avvenuti in precedenza
(grado 2 di vitalità)
• t3 può scattare a partire dalla marcatura iniziale un numero di volte che
non è definito a priori (grado 3 di vitalità)
• Da ogni marcatura raggiungibile esiste sempre una
sequenza di scatti che rende abilitata la transizione t4 (grado 4 di vitalità)

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 40


Proprietà delle Reti di Petri
Raggiungibilità (Reachability)
M' raggiungibile dalla marcatura M se e solo se esiste almeno una
sequenza di scatti che a partire da M produca la marcatura M'
Consente di determinare se da una certa marcatura iniziale si possono
raggiungere stati indesiderati

Limitatezza (Boundedness)
 Un posto di una rete P/T si dice k-limitato se in una qualunque
marcatura raggiungibile della rete il numero di token non supera mai
il valore intero prefissato k (per analizzare da overflow in code, buffer
e registri, o dal superamento di un numero massimo di componenti
guasti o di errori.)

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 41

In definitiva:
Le reti di Petri P/T consentono di modellare tipici aspetti del
comportamento dei sistemi, come :
 il fatto che per eseguire un’azione è necessaria prima l’occorrenza di
altre azioni (dipendenza causale),
 ìl fatto che azioni possono occorrere in alternativa ad altre (conflitto),
 il fatto che tra più azioni non esiste nessuna relazione di dipendenza
o possono capitare simultaneamente (concorrenza)
 ed il fatto che attività non possono essere eseguite
contemporaneamente a causa di vincoli sull’uso di risorse condivise
(mutua esclusione).
 le reti di Petri P/T si possono modellare anche situazioni in cui
concorrenza e conflitto coesistono (confusione).

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 42


Albero di raggiungibilità: esempio di
costruzione del grafo

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 43

Rappresentazione matriciale o algebrica


Oltre alla comoda rappresentazione grafica, le reti di Petri sono dotate
anche di una relativamente semplice rappresentazione matematica.
Tale rappresentazione, detta matriciale o algebrica, può essere utile per
eseguire analisi automatiche della rete, al fine di verificare il
soddisfacimento di alcune proprietà di base.

La rappresentazione algebrica delle reti di Petri si basa sui concetti di


 Matrice d’ingresso
 Matrice d’uscita
 Matrice d’incidenza
 Vettore marcatura
 Sequenza di scatti
 Vettore delle occorrenze

Inoltre, con tale rappresentazione si può descrivere l’evoluzione di una


rete di Petri in termini di equazione di stato, cioè in modo molto simile a
come si descrive l’evoluzione di un qualunque sistema dinamico.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 44


Rappresentazione matriciale o algebrica

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 45

Rappresentazione matriciale o algebrica

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 46


Rappresentazione matriciale o algebrica

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 47

Rappresentazione matriciale o algebrica

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 48


Rappresentazione matriciale o algebrica
Equazione di stato
Si supponga che M0 sia la marcatura corrente di una data rete con matrice di
incidenza C, e si supponga inoltre che sia possibile applicare una certa
sequenza di scatti S, con vettore delle occorrenze s. Sia M1 la marcatura
raggiunta dopo l’applicazione della sequenza S. Si può facilemente osservare
che:

Il vettore delle occorrenze s, associato ad una sequenza di scatti S, è un vettore


colonna di dimensioni |T|, la cui componente generica s i è pari al numero delle
occorrenze della transizione ti nella sequenza S.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 49

Esempio 1

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 50


Esempio 1

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 51

Esempio 1

Plastico ferroviario con un incrocio e due treni

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 52


Esempio 1
Concetti appresi
Il comportamento desiderato è stato espresso come vincolo sulla
marcatura (non più di una marca nel posto che rappresenta
l’incrocio). Si è dunque posto e risolto un problema di stati vietati
(forbidden-state).

L’incrocio è dunque un esempio di risorsa condivisa.

Il controllore opera permettendo o impedendo lo scatto di certe


transizioni (nel caso presente le due d’ingresso dei treni
nell’incrocio) avendo rilevato la marcatura della rete (nel caso
presente, vedendo scattare una transizione d’ingresso all’incrocio,
esso “sa” che questo è occupato da un treno, mentre vedendo
scattare una delle due d’uscita “sa” che si è liberato).

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 53

Esempio 2
Plastico ferroviario con un incrocio e (almeno)
due treni
Il problema è lo stesso ma con più di due treni, col
che ai semafori si possono formare delle code (in
realtà poteva succedere anche prima, se si fosse
previsto che i treni potessero fermarsi lungo il
percorso talché uno potesse raggiungere l’altro,
ma non lo si è considerato per semplicità).

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 54


Esempio 2
Plastico ferroviario con un incrocio e (almeno) due treni

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 55

Esempio 2
Plastico ferroviario con un incrocio e (almeno) due treni

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 56


Esempio 2
Concetti appresi

Il comportamento desiderato è stato espresso come vincolo sulla


marcatura (problema forbidden-state) e come sequenza
desiderata di scatti nel rispetto del vincolo sulla marcatura
(problema di sequenziamento).

La gestione delle risorse condivise è dunque un problema duplice:


evitare le “collisioni” (in senso lato) e gestire le richieste concorrenti.
Questo è un problema tipico e si riconduce, come moltissimi altri,
alla risoluzione di un problema di stati vietati (che non dice nulla
sull’ordine con cui saranno soddisfatte le richieste d’uso della
risorsa, limitandosi a non farle collidere) seguito da uno di
sequenziamento.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 57

Esempio 3

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 58


Esempio 3

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 59

Estensioni alle Reti di Petri

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 60


Reti di Petri con priorità
Le reti di Petri con priorità (dette anche estese) sono
ottenute dalle reti di Petri P/T con l’aggiunta di:
 priorità: un numero intero non negativo associato ad
ogni transizione
 archi inibitori : archi che connettono posti, detti posti
inibitori, a transizioni (e non il viceversa), terminano con
un cerchietto al posto della freccia,
 posti inibitori: posti a cui è connesso un arco inibitore,
possono essere anche posti di output, ma non posti di
input, della stessa transizione.
Se non altrimenti specificato, tutte le transizioni hanno
priorità uno.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 61

Reti di Petri con priorità


Condizione di abilitazione: Una transizione t è abilitata in
una marcatura m se e solo se tutte le seguenti condizioni
sono vere:
 il numero di token in ciascun posto di input di t è maggiore
o uguale alla molteplicità a dell’arco di input che unisce il
posto a t
 il numero di token in ciascun posto inibitore di t è minore
della molteplicità dell’arco inibitore che unisce il posto a t
 non esistono altre transizioni con una priorità maggiore di
quella di t per cui sono vere le condizioni dei due punti
precedenti

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 62


Reti di Petri con priorità
Conflitto indiretto

Priorità

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 63

Analisi delle reti di Petri


Due tipi di analisi possono essere effettuate sui sistemi modellati con
reti di Petri:
 Analisi qualitative: consentono di verificare le proprietà dei sistemi
e sono basate sulle reti di Petri P/T (e con priorità). Per questo tipo di
analisi solitamente il tempo non è un aspetto rilevante.
 Analisi quantitative: consentono di valutare numericamente misure
di interesse per i sistemi modellati, come ad esempio le misure di
dependability e performability, tipiche per i sistemi di elaborazione e
comunicazione, e sono basate sulle reti di Petri stocastiche. Per
questo tipo di analisi il concetto di tempo è essenziale.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 64


Analisi delle reti di Petri*
Le analisi quantitative di performance, dependability e
performability possono essere classificate, a seconda delle
tecniche di soluzione del modello, in:

 Valutazioni analitiche: che utilizzano tecniche basate


sul grafo di raggiungibilità
 Valutazioni simulative: che utilizzano tecniche basate
su simulazioni ad eventi discreti.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 65

Analisi delle reti di Petri


Esempi di misure di dependability e performability di interesse per i sistemi
di elaborazione e comunicazione sono:
 il numero medio di servizi eseguiti da un sistema in un intervallo di tempo,
 la lunghezza media di una coda di servizio ad un determinato istante di
tempo,
 il tempo medio al fallimento di un sistema,
 la probabilità che il sistema funzioni correttamente al termine di una
missione,
 la distribuzione della durata di una missione,
 la probabilità che un servizio venga fornito correttamente da un sistema
ad ogni richiesta,
 la probabilità che in un sistema vi siano ad ogni istante di tempo almeno
un certo numero di componenti funzionanti correttamente

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 66


Stochastic Petri Nets (SPN)
 Sono una sottoclasse delle reti di Petri stocastiche
ottenuta aggiungendo il tempo alle reti di Petri P/T

 Le SPN mantengono la stessa struttura delle reti di Petri


P/T e la stessa rappresentazione grafica, eccetto che per
le transizioni, che sono rappresentate graficamente
mediante rettangoli vuoti

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 67

Transizioni temporizzate
Le reti di Petri temporizzate sono ottenute associando un tempo locale
(ritardo) ad ogni transizione ed un tempo globale alla rete di Petri
 Il comportamento di una transizione è descritto associando ad ogni transizione un
timer
 Al momento dell’attivazione della transazione, il timer della transizione viene
settato ad un valore iniziale T
 Il timer viene decrementato ad una velocità costante, e quando assume il valore
zero la transizione scatta
 Se, a causa di un cambiamento di marcatura, la transizione viene disabilitata
prima che il timer assuma il valore zero, allora il timer si ferma e la transizione
non può scattare
Ogni attività che impiega del tempo per poter essere eseguita, come ad
esempio l’esecuzione di un task su un processore, può essere naturalmente
modellata mediante una transizione temporizzata. Il valore associato alla
transizione al momento della sua attivazione rappresenta la durata
dell’attività
Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 68
Generalized Stochastic Petri Nets (GSPN)

Sono una sottoclasse delle reti di Petri stocastiche ottenuta


aggiungendo alle SPN le transizioni immediate (o istantanee),
cioè transizioni cui è associato un tempo uguale a zero, e gli
archi inibitori.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 69

Estensioni delle reti di Petri


Reti di Petri colorate: nelle reti di Petri originali i token non
hanno alcuna informazione implicita. Attraverso l’uso di token
di colore diverso essi vengono tipizzati

Reti di Petri stocastiche: si hanno se si modellano gli


intervalli di tempo delle reti di Petri temporizzate come
variabili casuali, oppure si hanno se vengono aggiunte
distribuzioni di probabilità per la risoluzione dei conflitti
Altre estensioni:
- si aggiungono vincoli di capacità ai posti
- si aggiungono limiti di scatti alle transizioni

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 70


Simulazione

Time Petri Net Analyzer: TINA (TIme petri Net Analyzer) è


il toolbox utilizzato per la modellazione del sistema.

Simulazione

Oltre all’editing del modello, il tool permette di simulare


il modello creato per testarne le capacità.
[ http://projects.laas.fr/tina//home.php ]

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 71

HiPS : Hierarchical Petri net Simulator

 HiPS tool has a GUI which enable hierarchical and/or timed-net


design.
 HiPS tool has functions of static/dynamic analysis : T-invariant
detection, Reachability path analysis, deadlock state detection, and
k-boundedness analysis.
 In addition, it is possible to perform a random walk simulation with
each firing steps.
Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 72
Stochastic Activity Networks (SAN)
Le SAN sono un formalismo di modellazione ad
alto livello basato su quattro primitive grafiche:
posti
attività
gate di input
gate di output

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 73

SAN
 I posti, con i token in essi contenuti, corrispondono ai posti delle
GSPN e sono usati per rappresentare lo stato del sistema modellato
 Le attività corrispondono alle transizioni delle GSPN e
rappresentano le azioni del sistema modellato.
 I gate di input e di output sono un modo generale per specificare la
condizione di abilitazione e la regola di firing, rispettivamente.

I gate di input sono usati per controllare l’abilitazione delle attività, cioè
per definire la condizione di abilitazione, e per cambiare lo stato della
rete quando un’attività scatta, o completa, mentre i gate di output sono
usati per cambiare lo stato della rete quando un’attività completa

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 74


SAN: Attività
 Le Attività rappresentano azioni del sistema modellato che
spendono del tempo per terminare
 Ci sono due tipi di attività: immediate (o istantanee - sottili
barre) e temporizzate (barre verticali tondeggianti vuote)
 La durata (o tempo) di una attività è una variabile casuale
definita mediante una funzione di distribuzione
 I parametri delle distribuzioni possono essere definiti
mediante espressioni matematiche e possono essere
anche dipendenti dalla marcatura della SAN del tempo di
attività

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 75

SAN: Attività
 Ad ogni attività possono essere associati due o più case,
rappresentati graficamente mediante piccoli cerchi posti sulla
parte destra della attività
 Ai case di ogni attività è associata una distribuzione di
probabilità (la distribuzione dei case). Per le attività senza
cerchi associati, si assume un solo case con probabilità uno.
La probabilità di ogni case rappresenta l’incertezza associata
con il completamento di un’attività
 La distribuzione dei case può essere definita mediante
espressioni matematiche e può dipendere dalla marcatura
della rete al momento del completamento dell’attività.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 76


SAN: Attività
 Ad ogni attività temporizzata è associata una funzione di riattivazione,
cioè un meccanismo che consente di definire le condizioni dipendenti
dalla marcatura sotto cui un’attività abilitata può essere riattivata al
momento in cui una qualunque attività completa.
 Riattivare un’attività abilitata significa applicare il meccanismo di restart,
cioè, disabilitare (abortire) l’attività scartando il valore corrente del timer
ed immediatamente ricavare (campionare) un nuovo valore del tempo
di attività di come definita nella nuova marcatura di riattivazione. Il
tempo di attività al momento di una riattivazione può essere selezionato
da una distribuzione con differenti valori dei parametri rispetto a quella
che ha generato il valore di tempo precedente, se i parametri della
distribuzione sono cambiati nella nuova marcatura.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 77

SAN: Attività
 Il predicato di riattivazione di una attività T abilitata è
una espressione booleana che definisce le marcature
che devono essere raggiunte per riattivare T al
completamento di una qualunque altra attività, a
condizione che T sia ancora abilitata dopo il
completamento.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 78


SAN: Gate di input
 I gate di input controllano l’abilitazione delle attività e definiscono i
cambiamenti di marcatura quando un’attività completa
 Ogni gate di input è definito mediante un predicato di abilitazione e una
funzione.
• Il predicato di abilitazione è una espressione booleana che controlla se
l’attività connessa è abilitata e può essere funzione della marcatura dei posti
di input.
• La funzione del gate di input è una sequenza di comandi che definiscono i
cambiamenti di marcatura quando l’attività completa ed è eseguita
indipendentemente dal case selezionato al momento del completamento
dell’attività
 Un arco che connette un posto di input ad un’attività è equivalente ad un
gate di input con il predicato di abilitazione che abilita l’attività se nel
posto c’è almeno un token e con la funzione che rimuove un token dal
posto.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 79

SAN: Gate di output


 I gate di output definiscono i cambiamenti di marcatura
quando un’attività completa
 Ciascun gate di output può essere associato ad un
singolo case
 Ogni gate di output è definito mediante una funzione. La
funzione del gate di output è una sequenza di comandi
che definisce i cambiamenti di marcatura quando l’attività
completa
 Un arco che connette un’attività ad un posto di output è
equivalente ad un gate di output con la funzione che
aggiunge un token al posto quando l’attività completa

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 80


SAN
 Con le SAN non è possibile assegnare esplicitamente una priorità alle attività
 I gate di input e di output sostituiscono ed estendono la molteplicità degli archi, la
priorità delle transizioni e gli archi inibitori delle GSPN
 Comunque, i predicati di abilitazione di differenti attività immediate possono
essere definiti in modo da garantire che le attività completino in un certo ordine, a
partire da una data marcatura

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 81

Esempio di condizione di
abilitazione di una attività

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 82


Esempio

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 83

Tools

 SHARPE
 SPNP
 SURF-2
 GreatSPN
 UltraSAN
 PANDA
 WebSPN
 TimeNET
 DEEM
 Mobius

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 84


Mobius
Mobius può essere usato per analizzare sistemi
ad eventi discreti appartenenti a numerosi domini
applicativi, tra cui: sistemi di elaborazione e
comunicazione, sistemi hardware e software di
telecomunicazione, sistemi aeronautici e
aerospaziali, reti e sistemi di informazione sicura
e sistemi biologici.
Esso è il successore del tool UltraSAN

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 85

Mobius

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 86


Mobius

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 87

Mobius

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 88


Attack Execution Graph (AEG)

 L’AEG rappresenta il
flusso di esecuzione
dell’attacco ad opera
dell’avversario.

 Tramite un editor grafico


messo a disposizione da
Möbius, l’AEG può
essere costruito in
maniera molto semplice
e immediata.

Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 89

Potrebbero piacerti anche