Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Luigi Vanvitelli
Dipartimento di Ingegneria
Laurea Magistrale in Ingegneria Informatica
Reti di Petri
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.
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
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)
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
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
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
Esempio
1 Produttore – 1 Consumatore – 1 Magazzino a 2 posti
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
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):
Conflitto strutturale
Si verifica quando due transizioni t e u
hanno almeno un posto d'ingresso in
comune
Una rete P/T si dice viva se e solo se ogni sua transizione è viva (è
al quarto grado di vitalità)
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.)
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).
Esempio 1
Esempio 1
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à).
Esempio 2
Plastico ferroviario con un incrocio e (almeno) due treni
Esempio 3
Priorità
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)
Simulazione
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
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à.
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.
Esempio di condizione di
abilitazione di una attività
Tools
SHARPE
SPNP
SURF-2
GreatSPN
UltraSAN
PANDA
WebSPN
TimeNET
DEEM
Mobius
Mobius
Mobius
L’AEG rappresenta il
flusso di esecuzione
dell’attacco ad opera
dell’avversario.