Per ampliare il loro potere di modellazione, le reti P/T sono state variamente estese per diventare, ad esempio:



Documenti analoghi
Luigi Piroddi

Appunti sulla Macchina di Turing. Macchina di Turing

Analisi matriciale delle reti di Petri (P/T) - sifoni e trappole -

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Soluzione dell esercizio del 2 Febbraio 2004

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

risulta (x) = 1 se x < 0.

1. PRIME PROPRIETÀ 2

Coordinazione Distribuita

Capitolo 2. Operazione di limite

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Automazione Industriale (scheduling+mms) scheduling+mms.

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

( x) ( x) 0. Equazioni irrazionali

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Relazioni statistiche: regressione e correlazione

Lezione 8. La macchina universale

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

4 3 4 = 4 x x x 10 0 aaa

CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Esercizio 1 Soluzione Esercizio 2 Soluzione

Transitori del primo ordine

Gestione Risorse Umane Web

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Funzioni in C. Violetta Lonati

Il concetto di valore medio in generale

Effetto reddito ed effetto sostituzione.

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

2. Leggi finanziarie di capitalizzazione

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

LE FUNZIONI A DUE VARIABILI

Corrispondenze e funzioni

Intelligenza Artificiale

Reti sequenziali sincrone

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Rapporto dal Questionari Insegnanti

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

Soluzione di equazioni quadratiche

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Capitolo 13: L offerta dell impresa e il surplus del produttore

CALCOLO COMBINATORIO

Guida Compilazione Piani di Studio on-line

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Politecnico di Milano Facoltà di Ingegneria dell Informazione AGENTI AUTONOMI E SISTEMI MULTIAGENTE Appello COGNOME E NOME

Analisi e diagramma di Pareto

Ottimizzazione delle interrogazioni (parte I)

10. Insiemi non misurabili secondo Lebesgue.

Lezioni di Matematica 1 - I modulo

4. Operazioni elementari per righe e colonne

Procedura di iscrizione alla Piattaforma On Line

Un gioco con tre dadi

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Creare una nuova spedizione personalizzata.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

RETI DI TELECOMUNICAZIONE

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

Come modificare la propria Home Page e gli elementi correlati

TECNICHE DI SIMULAZIONE

Corso di Informatica

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S A. Pisani, appunti di Matematica 1

Fondamenti e didattica di Matematica Finanziaria

Capitolo 25: Lo scambio nel mercato delle assicurazioni

Parte I. Prima Parte

Corso di. Dott.ssa Donatella Cocca

MODELLO RELAZIONALE. Introduzione

Analisi di scenario File Nr. 10

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

1. Limite finito di una funzione in un punto

SISTEMI DI NUMERAZIONE E CODICI

La f(x) dovrà rimanere all interno di questo intorno quando la x è all interno di un intorno di x 0, cioè I(x 0 ), cioè:

3 GRAFICI DI FUNZIONI

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

I NUMERI DECIMALI. che cosa sono, come si rappresentano

Dispositivi di rete. Ripetitori. Hub

Hub-PA Versione Manuale utente

e-dva - eni-depth Velocity Analysis

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

1. Distribuzioni campionarie

Il controllo della visualizzazione

Ottimizazione vincolata

(liberamente interpretato da SCHEDA ALUNNI. Descrizione dell attività:

Testi di Esercizi e Quesiti 1

Matematica generale CTF

Trasformazione dei Processi in Progetti DIB 1

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Controlli Automatici T. Trasformata di Laplace e Funzione di trasferimento. Parte 3 Aggiornamento: Settembre Prof. L.

LINGUAGGI DI PROGRAMMAZIONE

1 Serie di Taylor di una funzione

Esponenziali elogaritmi

Transcript:

ALCUNE ESTENSIONI DELLE RETI DI PETRI Le reti di Petri classiche o P/T sono reti untimed (senza tempo) e risultano utili per analisi qualitative di un sistema, es. per verificare se una marcatura è raggiungibile a partire da un altra. L analisi può basarsi sulla costruzione dell albero di raggiungibilità o sulla rappresentazione matematica di una rete. Per ampliare il loro potere di modellazione, le reti P/T sono state variamente estese per diventare, ad esempio: 1. reti che ammettono archi inibitori (o negatori) 2. reti temporizzate 3. reti di alto livello, genericamente dette anche reti colorate. Nel caso 1 si consente che l abilitazione di una transizione dipenda anche dall assenza di token in qualche posto. Nelle reti di cui al punto 2, nel modello è esplicitamente presente la variabile tempo. Essa può essere agganciata ai posti e/o alle transizioni. La nozione di tempo può essere sfruttata per ragioni di analisi di sistemi in tempo reale, es. per verificare se una marcatura può essere raggiunta entro un certo tempo (deadline). In questa classe rientrano le Time Petri Nets di Merlin e Farber. Il tempo può anche essere introdotto per scopi di simulazione e si parla spesso di reti temporizzate (Timed Petri Nets o TPN) e stocastiche. In queste reti il tempo è spesso associato alle transizioni e serve ad esprimere la durata (delay) di un attività del sistema modellato. Nelle TPN sono normalmente presenti transizioni immediate (o istantanee) che corrispondono alle transizioni di una rete P/T, e transizioni timed. Alle transizioni immediate possono essere legate informazioni di priorità e probabilità. Nelle reti di alto livello, i token (e quindi i posti) diventano tipati ed è possibile esprimere l abilitazione delle transizioni non solo in relazione alla disponibilità di un certo numero di token ma anche al contenuto informativo di questi token. L abilitazione può essere condizionata da funzioni (es. guardie) associate agli archi e alle transizioni. In questo capitolo l attenzione è posta esclusivamente su estensioni di cui ai punti 1 e 2. Si osserva, infine, che le estensioni, mentre aumentano il potere espressivo dei modelli di reti di Petri, purtroppo ne compromettono o complicano le possibilità di analisi. Ad esempio, la limitatezza diviene una questione non decidibile se la rete ammette archi negatori o priorità. Le estensioni avvicinano le reti a dei veri linguaggi di programmazione ad alto livello. Un modello corrisponde così ad un programma. Diventa difficile provare (ossia dimostrare) proprietà di un modello esteso e spesso ciò che rimane al modellatore è l esecuzione diretta della rete. Questo è quanto accade, ad es., nella simulazione di modelli TPN la cui finalità è la valutazione quantitativa delle prestazioni di un sistema. 130

ARCHI INIBITORI L utilità degli archi inibitori può essere messa in evidenza con un esempio. Si consideri il problema del pigrone (lazy lad) che vive da solo e mangia ciò che si cucina. Quando il pigrone ha fame ed il frigo è vuoto, allora egli passa a cucinare un certo numero di pietanze e a metterle nel frigo. L operazione di cottura di cibo termina non appena il pigrone diventa affamato nel qual caso egli consuma le pietanze riposte nel frigo fino a svuotare completamente il frigo, e cosi via ripetendo. Un modello di rete di Petri per questo problema è mostrato in Figura 1. p3 Figura 1:Modello del pigrone con arco negatore L arco inibitore collega il posto p1 con la transizione t3. Tale arco termina con un cerchietto nero e non con la freccia. La transizione t3 è abilitata quando esiste almeno un token in p3 ma non esistono token in p1. La marcatura iniziale del modello consiste nel porre un solo token nel posto p2. Tale token rappresenta il pigrone. Nel posto p2 il pigrone cucina una serie di pietanze (token) che vengono depositate, ad ogni sparo di t1, in p1 (frigo). Il pigrone è affamato quando scatta t4, nel qual caso il token-pigrone si sposta in p3. In questo stato si modella il pigrone che consuma tutto il contenuto del frigo, una pietanza alla volta, tramite la transizione t2. Per via dell arco negatore, la transizione t3 che specifica il cambio di stato da mangia a cucina del pigrone, non può scattare sino a quando in p1 esiste almeno un token (il frigo non è vuoto). È facile convincersi che un tale modello non è esprimibile con una normale rete P/T nell ipotesi che il posto p1 sia illimitato. Se, invece, si fissa un tetto massimo al numero di token che il frigo può contenere, allora si riesce a modellare il sistema con una rete P/T introducendo il posto p1 complementare di p1 (si veda la Figura 3.2 in cui il posto p1 è limitato a 7 token). 131

7 7 Figura 2 Modello P/T del pigrone con p1 limitato a 7 In letteratura è possibile trovare una definizione più generale di arco inibitore che ha associato anche un peso, diciamolo k. In questo caso, l abilitazione della transizione è possibile solo se nel posto da cui origina l arco esistono meno di k token. Secondo questa definizione, il normale arco inibitore, utilizzato in Figura 1, ha associato a sé il peso 1. In questa tesi si considerano solo archi inibitori semplici (peso implicito unitario). Si mostra, per completezza, in Figura 3 una differente modellazione del problema del pigrone che non fa uso di arco inibitore ma di transizioni con priorità. Mentre per altri dettagli sulle priorità si rimanda a più avanti in questo capitolo, qui è sufficiente assumere che le transizioni di un modello P/T siano etichettabili con un parametro priorità. Di momento in momento, intuitivamente, tra le transizioni abilitate può scattare quella (o una) avente priorità massima. Assumendo che t2 sia più prioritaria di t3 che, ad es., ha la minima priorità del modello (t1, t2 e t4 possono essere egualmente alla stessa priorità) anche il modello di Figura 3 costituisce una specifica accettabile del comportamento del pigrone. Infatti, la maggiore priorità di t2 impedisce a t3 di scattare anche se t3 è abilitata, purchè t2 sia abilitata a sua volta (nel frigo ci sono altre pietanze da consumare). Figura 3 Modello del pigrone con t3 meno prioritaria di t2 132

Quanto discusso in precedenza ha carattere di generalità: è possibile implementare un modello basato con archi inibitori mediante transizioni prioritarie e viceversa. Si nota, comunque, che la soluzione con archi inibitori è graficamente più visibile che non l utilizzo delle priorità, e pertanto preferibile nei casi pratici. RETI DI PETRI ESTESE COL TEMPO Il parametro tempo può essere aggiunto al formalismo in diversi modi, dando luogo a differenti tipi di reti di Petri temporizzate, ad esempio: - Transition-Timed Petri Nets (TTPN) τ : T IR assegna tempi di scatto τ i alle transizioni t i T. Le transizioni sono viste come attività: un attività inizia non appena la corrispondente transizione diventa abilitata; il termine dell attività è segnalato dallo scatto della transizione. - Place-Timed Petri Nets (PTPN) τ : P IR assegna tempi di conservazione τ i ai posti p i P. I token che arrivano in un posto devono rimanervi per un certo tempo di conservazione, prima di rendersi disponibili per lo scatto di una transizione alimentata da quel posto. La Figura 4 mostra come l aggiunta del tempo ad un posto di una PTPN possa essere riprodotta con una sotto rete (un posto, una transizione timed, un posto) di una TTPN. Per queste ragioni, così come spesso si fà in letteratura, ci si limita, nel seguito, a considerare solo le TTPN. In più, anche quando dovesse essere genericamente utilizzata la sigla TPN Timed Petri Nets, si farà implicito riferimento alle TTPN. τ* τ Figura 4 Trasformazione di una PTPN in una TTPT e viceversa 133

TPN=(P, T, F, W, τ, M) dove UNA DEFINIZIONE DI TIMED PETRI NETS P = {p 1, p 2,..., p np } è un insieme finito di posti T = {t 1, t 2,..., t nt } è un insieme finito di transizioni, con P T = e un insieme non vuoto di nodi ( P T ) F ( P T) ( T P) è un insieme finito di archi tra posti e transizioni WF : Ν assegna pesi w(f) agli elementi f Fche denotano la molteplicità degli archi unitari tra gli elementi connessi τ :T R assegna ritardi di sparo τ i agli elementi ti T M: P N +0 è la marcatura degli elementi pi P. Esistono tre casi importanti nella definizione dei ritardi di sparo (firing delays): (a) il caso quando τ i =0 (transizioni immediate), cioè le transizioni sparano consumando un tempo nullo (b) il caso quando τ i R è un valore deterministico (deterministic timed transitions o reti D-TPN) e (c) il caso quando τ i è un istanza di una variabile casuale (stochastic timed transitions). Se T contiene solo transizioni temporizzate e stocastiche in cui il ritardo di sparo è una variabile casuale con distribuzione esponenziale, la rete TPN appartiene alla classe delle Stochastic Petri Nets (SPNs). Le reti Generalized SPNs (GSPNs) (Marsan et al., 1987) consentono l utilizzo di una combinazione di transizioni senza tempo (o immediate) e transizioni temporizzate stocastiche. Più precisamente, una GSPN è formalmente una tripla GSPN=(TPN, Π, P) in cui Π :T N assegna priorità π i alle transizioni immediate ti T P : T [0,1] assegna pesi di selezione (probabilità) P i alle transizioni immediate t i T. Una transizione ABILITAZIONE TEMPORIZZATA E SEMANTICA DI SPARO REGOLA DI ABILITAZIONE IN UNA TPN t T è abilitata nella marcatura Μ al tempo τ, se e solo se ( p ) w( p t ) p pre ( t ), M, in Μ E τ ( M ) rappresenta l insieme di tutte le transizioni abilitate in Μ, al tempo τ. 134

REGOLA DI SELEZIONE DELLE TRANSIZIONI IMMEDIATE IN UNA TPN Nell ipotesi che ( M ) E τ contenga solo transizioni immediate, t, t T sono in conflitto effettivo al tempo τ ( i EC t j ) ' Μ e t, t E ( M ), e M ti M potrebbe causare che E ( M ' ) i j τ per il firing (sparo) al tempo τ secondo la probabilità: i t τ se e solo se al tempo τ la marcatura attuale è P[ t selected for firing at τ ] = t j P τ ( t ) i ( t EC t ) P ( t j ) j i Una transizione immediata selezionata per lo sparo deve scattare. T j i j. t i è selezionata PRIORITÀ DELLE TRANSIZIONI IMMEDIATE Se E τ ( M ) contiene transizioni immediate e temporizzate, le transizioni immediate sono sempre selezionate prima di quelle temporizzate ai fini dello sparo. Inoltre, tra le transizioni immediate viene fatta sparare sempre quella (o una) avente priorità massima. A parità di priorità, si applicano le probabilità come spiegato nella sezione 3.2.2.2. SCELTA DELLE TRANSIZIONI TEMPORIZZATE Si supponga che E τ ( M ) contenga solo transizioni temporizzate e sia RET(t i ), E ( M ), il tempo rimanente di abilitazione di t i. La transizione t E τ ( M ) che t i τ prossimamente deve sparare è quella che ha minimo RET(t i ). Se p pre( t), M ( p) c* w( p, t) SEMANTICA SINGLE SERVER E INFINITE SERVER, e c > 1, allora t è detta essere multiplamente abilitata di grado c. Se t può sparare una sola abilitazione alla volta, essa adotta la semantica Single Server (SS). La semantica Infinite Server (IS) consente invece di sparare un qualunque ammontare di abilitazioni ad uno stesso tempo. Se una transizione t segue SS allora il tempo di occorrenza (occurrence time) ot(t(tok i )) di t che consuma l i-esima tupla abilitante, sarà ot(t(tok i ))=ot(t(tok i-1 ))+ X i dove X i ~ exp(λ i ) è una variabile casuale con distribuzione esponenziale. Se t applica IS allora ot(t(tok i )) = X i, per ogni tupla abilitante, così esprimendo una nozione di parallelismo tra gli spari. 135

Figura 5 Orizzonte temporale e semantica SS, IS e k-s La Figura 5 esemplifica l orizzonte temporale rispetto al quale sono valutati i ritardi di sparo di una transizione supposta dotata di 3 abilitazioni al tempo corrente. Nella parte a) si mostra l applicazione della semantica Single Server; nella parte b) della semantica Infinite Server, nella parte c) di una semantica intermedia tra SS ed IS (k- Server) che fissa il livello di concorrenza a k (qui assunto 2) e non al massimo valore possibile. Si nota che, senza ledere alla generalità, un motore di esecuzione per le TPN può limitarsi ad offrire la semantica IS. Il modellatore, infatti, può comunque ottenere la semantica SS aggiungendo un posto di auto-anello con un token ad ogni transizione temporizzata. POLITICHE DI SPARO RACE E PRE-SELECTION Una varietà di regole di sparo possono essere definite per le TPN, ciascuna delle quali ha una differente semantica e finalità di intenti rispetto a specifici domini di modellazione. In SPN, ad esempio, l operazione di sparo di una transizione è atomica, nel senso che la rimozione dei token dai posti d ingresso e il deposito dei token nei posti di uscita costituisce una singola operazione indivisibile. Un tempo random trascorre tra l abilitazione e lo scatto di una transizione t i, durante il quale i token abilitanti risiedono nei posti di ingresso. La transizione t i deve rimanere continuamente abilitata durante il tempo τ i, e spara a quel tempo (politica race o pre- 136

emptiva). Nel caso t i perde l abilitazione durante il periodo τ i, o un nuovo valore, calcolato secondo la funzione distribuzione, τ i o la parte rimanente (non trascorsa) di τ i (age memory) possono essere usati per la prossima abilitazione di t i. Un altra regola di esecuzione per le TPN definisce lo sparo di una transizione in tre tempi (scatto tri-fase): nella prima fase ( start firing ) i token sono prelevati dai posti di ingresso e rimangono invisibili per altre abilitazioni per tutta la durata della seconda fase ( firing in progress ); nella terza fase ( end firing ) i token sono finalmente rilasciati nei posti di output (meglio: i token di uscita sono generati) (politica preselettiva o non pre-emptiva). L adozione della politica race con o senza memoria è esemplificata in Figura 6. Nella parte a) la transizione dimentica il tempo residuo dello sparo interrotto. Infatti, la successiva abilitazione usa un ritardo valutato ex-novo. Nella parte c), il tempo rimanente allo sparo al momento della disabilitazione è utilizzato come ritardo di sparo nella prossima abilitazione. La parte b) illustra una situazione intermedia. La porzione rimanente allo sparo interrotto è dimenticata come in a) ma alla prossima abilitazione si ripropone come ritardo di sparo lo stesso valore dell ultimo ritardo (interrotto). È utile osservare che la politica race assume una visione delle transizioni temporizzate come serventi. Quando una transizione timed è abilitata, il server comincia a processare i token, salvo poi accusare un problema di pre-emption e di interruzione se lo sparo di un altra transizione ruba qualche token di abilitazione (fenomeno di corsa). Tutto ciò è rilevante in presenza appunto di conflitti. Se due transizioni temporizzate t1 e t2, che condividono qualche posto di ingresso, si abilitano nello stesso momento, t1 e t2 iniziano il loro processo secondo il proprio ritardo di sparo valutato indipendentemente. Ovviamente, la transizione col minimo ritardo pre-empta l altra. In questo modo, la politica race risolve i conflitti automaticamente e dinamicamente sulla base di quale transizione scatta prima. Diverso è il discorso della preselezione. In questo caso, essendo t1 e t2 in conflitto, una scelta a priori tra le due deve essere fatta (es. randomaticamente od anche sulla base dei possibili tempi di sparo), della transizione scelta viene valutato il ritardo di sparo e fatta partire la prima fase di acquisizione dei token. Le osservazioni di cui sopra sono rilevanti nella realizzazione di un motore di simulazione discreta ad eventi di modelli TPN. Un tale motore processa eventi del tipo: transition-fire (per schedulare lo sparo di una transizione) e transition-unfire (per de-schedulare un corrispondente transition_fire). Un evento del primo tipo ammette come attributi: l identificatore della transizione, il tipo di transizione (se immediata o temporizzata) e, a seconda dei casi, ulteriori parametri come il ritardo di sparo etc. Un evento di transition_unfire si accompagna all identificatore della transizione il cui evento di fire va de-schedulato etc. 137

Figura 6 Politica race senza o con memoria Naturalmente, la politica race utilizza tutte e due i tipi di eventi. La politica preselection può basarsi solo sugli eventi transition_fire in quanto la schedulazione di un evento di sparo costituisce un evento committed, ossia non più revocabile. Un motore simulativo che supporta le TPN descritte in questo capitolo, con in più gli archi negatori, è disponibile nell ambito dello strumento TPN Designer descritto nel capitolo che segue, utile per modellare e simulare sistemi complessi e scalabili. RACE O PRE-SELECTION? Si consideri il modello TPN di Figura 7 che ammette diversi tipi di transizioni in conflitto. Tale modello consente di verificare che, in generale, più politiche di sparo possono essere richieste da una stessa rete TPN. Le transizioni disegnate come rettangolini sono timed, quelle rappresentate da lineette sono immediate. In Figura 7 esistono le seguenti situazioni di conflitto: a) (free-choice) conflitto tra le transizioni timed t1 e t2 b) (non free-choice) conflitto tra le transizioni timed t3 e immediata t4 c) (free-choice) conflitto tra le transizioni immediate t5 e t6. 138

Figura 7 Conflitti e politiche di sparo Per risolvere il conflitto a) potrebbe essere utilizzata tanto la politica race quanto quella preselection. Con race, come già spiegato in precedenza, al tempo τ in cui si abilitano t1 e t2, si valutano (sampling) i tempi di sparo di t1 e t2 separatamente (in accordo alla funzione distribuzione associata) e si lascia che quella col minimo tempo di sparo preempti l altra in modo spontaneo. L adozione di preselection comporta che a priori, al tempo τ, si effettua una scelta tra t1 e t2, e per la transizione vincente si valuta il tempo di sparo e si pre-seleziona il token in p1. La transizione non vincente viene trascurata: è come se essa non fosse mai stata abilitata al tempo τ. Per il caso c) che coinvolge solo transizioni immediate, la scelta più ovvia è la politica preselection in cui una transizione tra t5 e t6 viene prescelta (tenendo conto dei parametri di priorità/probabilità associati; per transizioni equi-prioritarie ed equiprobabili la scelta ridiventa non deterministica come nelle P/T) e quindi spara in modo committed. Il caso b) è in un certo senso anomalo dal momento che il conflitto coinvolge una transizione timed ed una immediata. Qui potrebbe essere più naturale la politica race, dal momento che t3 e t4 potrebbero non essere abilitate allo stesso tempo. Se prima si abilita t3, essa inizia a sparare. Se però, durante il firing, si abilita anche t4, allora il firing di t3 è interrotto in quanto t4 è più prioritaria. Volendo, si può simulare la pre-selection tra transizioni timed ed in conflitto adottando comunque la politica race e sostituendo i casi come a) con casi come c) in cui le transizioni immediate sono seguite subito dopo dalle transizioni temporizzate (Figura 8). 139

Figura 8 Simulazione di preselection con race, per transizioni timed in conflitto Si osserva, infine, che per evitare comportamenti diversi di uno stesso modello a seconda della politica di sparo scelta, uno strumento può richiedere che i casi freechoice siano uniformi, ossia riguardino o solo transizioni temporizzate o solo transizioni istantanee. UN PROTOCOLLO CON TIMEOUT La politica race è naturale in modelli che coinvolgono timer e timeout. In Figura 9 si riporta un semplice modello di un protocollo di comunicazione. I rettangoli trasparenti sono transizioni timed. Le altre transizioni sono immediate. Il token in p1 rappresenta un messaggio che il sender (rappresentato dal posto p1) trasmette al ricevitore (posto p3). La trasmissione è seguita dall invio da parte del receiver di un messaggio di acknowledgment (o di conferma) al sender. L invio del messaggio è catturato dallo sparo di t1. Il ritardo di sparo di t2 esprime il ritardo di comunicazione del messaggio. Quando t2 scatta, un token è rilasciato in p3 (il receiver). p3 è un posto free-choice: t3 e t4 sono entrambe abilitate ma solo una delle due transizioni potrà scattare. Lo sparo di t3 corrisponde (in modo alquanto semplificato) alla perdita del messaggio o alla sua corruzione etc. Lo scatto di t4, invece, denota la corretta ricezione del messaggio e la spedizione indietro al mittente dell acknowledgment. La transizione timed t5 rappresenta il ritardo di comunicazione associato al messaggio di ack. Lo scatto di t5 genera un token in p1 e uno in p6. Il token in p1 consente al sender di spedire un nuovo messaggio. Quello in p6 ha una diversa finalità. In realtà il mittente usa un timer ed un massimo ammontare di tempo (timeout, riflesso dal ritardo associato a t6) per aspettare il messaggio di ack. Se t6 scatta prima di t5 allora il messaggio di replica si considera inesistente e si rigenera in p1 un token con l obiettivo di rispedire il messaggio originario (non confermato e dunque perso). Se invece, il messaggio di replica arriva prima che scatti t6, allora il firing di t6 è interrotto, in quanto il token in p6 toglie (per l arco negatore) l abilitazione alla t6. Ciò corrisponde a disattivare il timer. La t7 serve a consumare il token in p5 per evitare che esso influenzi, erroneamente, la gestione del prossimo messaggio. 140

Figura 9 Un semplice protocollo con timeout Si intuisce che in questa modellazione l ammontare del timeout possa e debba essere definito ogni volta ex-novo in quanto non occorre avere memoria del firing interrotto. Ogni nuovo messaggio trasmesso dal mittente deve avere il suo nuovo timeout. La transizione t4 anche se ridondante preserva l uniformità del free-choice p3 (composto solo di transizioni immediate). Il modello di Figura 9 è dimostrativo ma incompleto. Nella realtà, non solo i messaggi normali ma anche le repliche possono perdersi per cui il protocollo è necessariamente più complesso. RIFERIMENTI G. Chiola. Timed Petri Nets. The MATCH Performance Book Draft. http://www.disi.unige.it/project/match/ A. Ferscha. Concurrent execution of timed Petri Nets. Proc. Of 1994 Winter Simulation Conference (WSC94), Lake Buena Vista, Florida, USA, pp. 229-236, 1994. M.A Marsan, G. Balbo, G. Conte. A class of generalized stochastic Petri nets for the performance evaluation of systems. ACM Transactions on Computer Systems, vol. 2, n. 2, pp. 93-122, 1984. 141

TIME PETRI NETS In quanto segue, le Time Petri Nets verranno riferite con la sigla MF (Merlin&Farber Nets). Esse sono utili per specificare i vincoli di temporizzazione di sistemi in tempo reale. In una rete MF alle transizioni sono associati intervalli temporali [a,b] con a b, in cui a può essere 0 e b può essere infinito. L esistenza di un tale intervallo indica che ad una transizione è associata un attività la cui durata minima è a e quella massima è b. La durata effettiva è non deterministicamente un valore scelto nell intervallo. Una classica rete P/T corrisponde ad una rete MF nella quale tutti gli intervalli sono del tipo [0, ]. Se una transizione di una rete MF non ha un intervallo esplicito, essa possiede l intervallo di default [0, ]. Le transizioni obbediscono ad una semantica forte dello sparo. Detto τ l istante temporale in cui una transizione t diviene abilitata, essa non può sparare prima di τ+a, ma deve sparare entro τ+b, o al più a τ+b, a patto che nel frattempo non perda token a causa dello sparo di qualche altra transizione in conflitto. Si capisce che per stabilire se una transizione t può sparare, non basta esaminare solo il suo preset, ma occorre indagare in generale tutte le altre transizioni della rete per stabilire se esse devono sparare prima di t. Figura 10 riporta un semplice esempio di una rete MF. Nell ipotesi che t1 risulti abilitata al tempo 0, e che essa spari al tempo (minimo) 2, allora si può verificare che tra le due transizioni che si abilitano al tempo 2, e cioè t2 e t3, solo t3 spara in quanto essa è costretta a farlo tra i tempi 2+4=6 e 2+7=9, mentre t2 non può sparare prima dell istante 2+9=11. Dunque spara certamente t3 e con questo disabilita t2 che non può più sparare. p1 t1 [2,5] p2 p3 [9,14] t2 t3 [4,7] p4 p5 Figura 10 Una rete MF Una rete MF è una sestupla MF=(P,T,F,W,M 0,SI) in cui le prime cinque componenti definiscono una classica rete P/T. SI (Static Interval) denota una funzione per il mapping statico di intervalli temporali alle transizioni: SI: T Q + x(q + { }) Cioè: t T, SI(t)=[α S,β S ], α S β S. 142

La quantità α S è detta anche Earliest Firing Time (EFT), mentre β S è il Latest Firing Time (LFT) della transizione. Si definisce stato di una rete MF una tupla S=(M,I) dove M è un marking della rete, I un vettore di possibili tempi di sparo delle transizioni abilitate in M: I:T (R + x(r + { })). È possibile in modo ovvio esprimere la situazione di una transizione t abilitata in M, M[t>, anche come S[t>, ossia t è abilitata nello stato S. Lo stato iniziale di una rete MF è S 0 =(M 0,I 0 ), dove M 0 è la marcatura iniziale della rete, I 0 è il vettore iniziale dei possibili intervalli di sparo, cosi definito: t T, se S 0 [t>, allora I 0 (t)=si(t). Nello stato S=(M,I) una transizione t è sparabile (firable) al tempo θ R+, e si scrive S[t> θ, se solo se: a) t è abilitata in S, S[t> b) θ appartiene all intervallo di sparo, ossia θ I(t)=[α,β] c) nessun altra transizione t i t spara prima di t: S[t i > θ β i, essendo I(t i )=[α i,β i ]. Il punto c) implica che una qualsiasi transizione abilitata t con intervallo [a,b] deve sparare entro b, se nessun altra transizione spara prima che disabilita t. Si nota ancora, che t può sparare ad un tempo appartenente al suo intervallo e minore o uguale al minimo degli upper bound degli intervalli delle transizioni abilitate in S. Lo scatto di una transizione t sparabile al tempo θ nello stato S=(M,I), cambia istantaneamente lo stato in S =(M,I ) dove M è definito dalla regola di scatto delle reti classiche P/T: p P, M (p)=m(p)-w(p,t)+w(t,p) se p è coinvolto nello scatto di t, M (p)=m(p) altrimenti. il nuovo vettore I degli intervalli di sparo è calcolabile da I in tre passi come segue: 1) si eliminano da I le transizioni che si disabilitano a seguito dello sparo di t. Queste transizioni formano l insieme Disabled(S,t) 2) si shiftano a sinistra di θ tutti gli intervalli relativi a transizioni che erano abilitate in M e restano abilitate in M. Queste transizioni definiscono l insieme Shifted(S,t). Detta t j una transizione in Shifted(S,t) si ha: 143

I (t j )=[max(0,α j -θ), β j -θ] Proprio a causa delle operazioni di shift, gli intervalli di sparo, durante l evoluzione di una rete MF, sono intervalli dinamici per distinguerli dagli intervalli statici attributi dalla specificazione 3) si assegnano gli intervalli statici [α i S,β i S ] a quelle transizioni t i che erano disabilitate in M ma che si abilitano in M. Queste transizioni formano l insieme Enabled(S,t). Detto Empty(S,t)={t i T not S[t i >), è possibile verificare le seguenti proprietà: Shifted(S,t) Enabled(S,t)= Shifted(S,t) Disabled(S,t)= Shifted(S,t) Empty(S,t)= Enabled(S,t) Empty(S,t)= Shifted(S,t) Enabled(S,t) Empty(S,t)=T Spesso, in letteratura, una rete MF viene studiata nell ipotesi che sussista, di momento in momento, al più un solo enabling per transizione (safe net). Tutto ciò evita la questione semantica di dover specificare il comportamento di una transizione multiplamente abilitata al tempo τ. Come nel caso delle reti temporizzate per scopi di simulazione, due soluzioni sono possibili: semantica single-server la transizione spara i suoi enabling in successione temporale, vale a dire se il primo spara al tempo θ, il secondo potrà avvenire con riferimento alla finestra [α+θ,β+θ] che è re-interpretata da capo dopo ogni sparo, etc. semantica multiple-server (o infinite-server): tutti gli enabling possono sparare nell ambito della stessa finestra corrente di sparo, con i tempi di sparo dei vari enabling che ovviamente sono non decrescenti. In realtà, alcune sottigliezze semantiche accompagnano l infinite server, in particolare la possibilità che più finestre temporali possano essere associate ai vari enablings della transizione, per cui lo sparo propone il dilemma di quale finestra utilizzare per prima. Infatti, se una transizione t abilitata al tempo τ, ad es. con un solo enabling, non scatta ma viene preceduta da un altra transizione che genera token in grado di creare qualche altro enabling per t, allora il vecchio enabling è regolato dall intervallo dinamico, il nuovo da quello statico. Per evitare queste situazioni, si preferisce spesso la strategia single-server o si considerano reti in cui le transizioni ammettono in ogni momento al più un solo enabling. Si osserva, infine, che nella definizione originale di Merlin e Farber, l intervallo statico è definito da una coppia di numeri reali. Altri autori, come riportato nelle 144

definizioni precedenti, assumono che gli estremi dell intervallo statico possano essere razionali, anche se poi i tempi di sparo sono reali. ALBERO DI RAGGIUNGIBILITÀ E PROBLEMATICHE DI ANALISI Una rete MF è utile per analisi di temporizzazione di sistemi di controllo in tempo reale, es. per verificare proprietà end-to-end (bounded liveness o deadline), es. succede sempre che dall arrivo di un evento esterno, il sistema reagisce ad esso entro un intervallo di tempo prestabilito?, o di sicurezza (safety) è possibile che le luci dei due semafori ad un incrocio possano valere verde contemporaneamente?, etc. Per far questo, oltre che ispezionare a mano un modello MF, sono utili strumenti in grado di costruire l albero di raggiungibilità anche in presenza del tempo. Ovviamente, la cosa è complicata, dal momento che i tempi di sparo associati alla sequenza di sparo che determina una certa marcatura, possono essere infiniti a causa degli intervalli associati alle transizioni e al modello denso di tempo adottato dalle reti MF. Per rendere compatto l albero di raggiungibilità, è pratica comune riunire un gruppo di stati in una singola classe di stati, ossia partizionare l insieme degli stati in classi di equivalenza. Si parla di classe di stati (state class) per denotare un insieme di stati caratterizzati da una stessa marcatura, determinata da una certa sequenza di sparo. Una classe di stati C è una coppia C=(M,D) dove M è una marcatura, D un dominio di sparo. C è rappresentativa di tutti gli stati che si possono generare sparando a tutti i possibili tempi ammissibili le transizioni della sequenza di sparo che dalla marcatura iniziale porta ad M. Il dominio di sparo D è l unione dei domini di sparo di tutti gli stati rappresentati da C. Una transizione t abilitata in M può sparare, come si è visto in precedenza, sino ad un tempo minore o uguale del minimo degli upper bound dei domini di sparo delle altre transizioni abilitate in M. Infatti, stante il carattere di semantica forte dello sparo nelle reti MF, una di queste altre transizioni tk, al più al suo upper bound, deve scattare e dunque se scatta potrebbe influenzare l abilitazione di t. Per capire in che modo un albero di raggiungibilità possa essere costruito in termini di classi di stati, è utile riferirsi al semplice esempio di Figura 11 che mostra due transizioni concorrenti entrambe abilitate al tempo 0 nella marcatura iniziale. p1 p2 t1 [2,4] t2 [3,5] p3 Figura 11 Una semplice rete MF Inizialmente (ossia al tempo 0) esiste la classe C 0 =(M 0,D 0 ), in cui M 0 =(1100) e D 0 è definito dall unione degli intervalli statici di t1 e t2 entrambe abilitate: D 0 (t1)=[2,4], p4 145

D 0 (t2)=[3,5]. Una qualsiasi transizione tra t1 e t2 può sparare per prima. In particolare, t1 può sparare tra 2 e 4 (il minimo degli upper bound o LFT delle transizioni abilitate), mentre t2 può sparare tra 3 e 4. In realtà, siccome le transizioni sono indipendenti, nulla impedisce a t2 di sparare anche al tempo 5. Quando si computa il minimo upper bound, ci si riferisce ad un tempo prima del quale nessun altra delle transizioni abilitate è forzata a sparare prima. Se spara t1, si genera una nuova classe C 1 =(M 1,D 1 ) in cui M 1 =(0110) e D 1 (t2)=[0,3]. Per comprendere perché il dominio D 1 (t2) sia [0,3] è utile osservare che il tempo di sparo di t1 è scelto non deterministicamente nell intervallo [2,4]. L albero di raggiungibilità riflette il non determinismo: pertanto, se (considerando solo i valori interi dell intervallo di t1) l istante di sparo θ 1 di t1 fosse 2, allora la finestra dinamica di t2 (che rimane abilitata) si modificherebbe in [1,3], se θ 1 fosse 3, allora la finestra di t2 cambierebbe in [0,2], se θ 1 fosse 4, la finestra di t2 diventerebbe [0,1]. Stante il non determinismo nel tempo di sparo di t1, si può riassumere la finestra dei possibili tempi di sparo che rimangono per t2 (da qui il significato di dominio di sparo) proprio con [0,3], che ingloba gli intervalli [1,3] [0,2] e [0,1] (si prende il minimo dei tempi EFT ed il massimo degli LFT di tutti gli intervalli). Dunque il tempo di sparo di t2, a partire dalla nuova classe, cadrà nella finestra [0,3]. Attenzione: questa finestra non è l intervallo dinamico di t2 nella nuova situazione. Quest ultimo sarà concretamente stabilito dal valore (specifico) di θ 1 e dalla regola di scorrimento a sinistra vista precedentemente. In generale, il dominio di sparo associato ad una transizione tk che rimane abilitata nel passaggio da una classe C i a una classe C j a seguito dello scatto di tj, è calcolabile come: [max(0,eft i (tk)-lft i (tj)), LFT i (tk)-eft i (tj)] ossia, l estremo inferiore è determinato dal caso peggiore che tj sia scattata al suo tempo ultimo; l estremo superiore che sia scattata al suo tempo minimo (EFT). La notazione EFT i (tk) indica il tempo EFT di tk nella classe C i, etc. Se, invece, a partire da C 0 scatta prima la t2, si raggiunge la classe C 2 =(M 2,D 2 ) dove M 2 =(1001) e D 2 (t1)=[0,1]. Infatti, se t2 scatta al tempo 3, resterebbe solo una unità di tempo a t1 per scattare a sua volta; se t2 scattasse al tempo 4, allora a t1 non resterebbe alcun altro tempo di sparo se non scattare anch essa al tempo 4. Dunque il dominio di sparo di t1 in D 2 è rappresentato dall intervallo [0,1]. A partire dalla classe C 1 può scattare solo la t2. Dalla classe C 2 solo la t1. In ogni caso si ottiene la classe C 3 =(M 3,D 3 ) in cui M 3 =(0011) (marcatura finale di deadlock) e D 3 consiste dell insieme vuoto. Tutto l albero di raggiungibilità è mostrato in Figura 12. Naturalmente, se in una classe si abilita una nuova transizione, il suo dominio di sparo coincide con il suo intervallo statico. Le classi di stato utilizzate in Figura 12 sono dette classiche. Esse hanno il vantaggio di mostrare come cambiano i domini di sparo. Tuttavia soffrono di limitazioni nel 146

momento in cui si cerchi di derivare dall albero di raggiungibilità informazioni di time span ossia di distanza temporale tra gli istanti in cui due classi sono visitate, ad es. una classe finale è raggiunta a partire da un altra o addirittura dalla classe iniziale C 0. C 0 : M 0 =(1100) D 0 : D 0 (t1)=[2,4] D 0 (t2)=[3,5] t1 C 1 : M 1 =(0110) D 1 : D 1 (t2)=[0,3] t2 t2 C 2 : M 2 =(1001) D 2 : D 2 (t1)=[0,1] t1 C 3 : M 3 =(0011) D 3 : Figura 12 Albero di raggiungibilità della rete MF di Figura 11 Ad esempio, sommando gli intervalli di cui ai domini di sparo, si potrebbe esser tentati di dire che la sequenza di sparo t1t2 (quella a sinistra in Figura 12) consente di raggiungere la marcatura finale M 3 in un tempo compreso nella finestra [2,4]+[0,3]=[2,7]. Similmente, la sequenza t2t1 porterebbe la rete da M 0 ad M 3 in un tempo appartenente alla finestra [3,5]+[0,1]=[3,6]. Tuttavia, entrambe le conclusioni sono errate. Infatti, essendo le due transizioni t1 e t2 indipendenti e concorrenti, si può affermare con certezza che M 3 non sarà raggiunta prima di 3 (EFT di t2) e nel caso peggiore sarà raggiunta al tempo 5 (LFT di t2) allorquando sicuramente anche la t1 sarà scattata. Dunque la finestra effettiva degli istanti di arrivo alla classe C 3 è [3,5]. CLOCK-STAMPED STATE CLASSES Wang ed altri hanno proposto una diversa definizione di classi di stato e quindi di costruzione dell albero di raggiungibilità, che meglio si presta ad analisi di temporizzazione. E utile osservare che nelle classi di stato classiche, i domini di sparo sono relativi all istante (non deterministico) in cui la classe è raggiunta. Proprio da questa nozione relativa nascono le difficoltà a compiere analisi end-to-end di temporizzazione. La nuova nozione di classe di stati è detta Clock-stamped state class (CS-class). In pratica, ad ogni classe si associa ora una finestra temporale che esprime l intervallo di tempi globali (cioè relativi all istante iniziale di funzionamento della rete) in cui la 147

classe è visitata. In più, anche gli intervalli di sparo delle transizioni abilitate sono ridefiniti in modo da essere essi stessi globali. Una clock-stamped state class C è una tripla C=(M,D,ST) in cui ST è il clock stamp della classe. Nella classe iniziale C 0, ST 0 è l intervallo [0,0] e, come prima, il dominio D 0 è costituito dagli intervalli statici delle transizioni abilitate in M 0. Sono utili le definizioni che seguono. Una transizione tf è sparabile (firable) in una classe C h, se EFT h (tf) è minore o uguale al minimo LFT di tutte le transizioni abilitate in C h. Sia Fr(C h ) l insieme delle transizioni sparabili di C h. Si definisce MLFT(C h )=min{ LFT h (tk), tk Fr(C h ) } MLFT è il minimo degli upper bound degli intervalli di tutte le transizioni sparabili in C h. Se a partire da C h spara una transizione tk Fr(C h ), allora si raggiunge una nuova classe C k =(M k,d k,st k ). Il clock stamp di C k è dato da: ST k =ST(C k )=[EFT h (tk),mlft(c h )] Riguardo alle modifiche indotte al dominio di sparo, sussiste quanto segue: Se la transizione tf era abilitata in C h e rimane abilitata in C k, allora il suo intervallo di sparo nel nuovo dominio D k cambia in: D k (tf)=[max(eft h (tf),eft h (tk)), LFT h (tf)] ossia, l estremo inferiore dell intervallo di tf in D k è aggiustato in modo da non essere pregresso rispetto all estremo inferiore della transizione che ha sparato tk. Se invece la transizione tf era disabilitata in C h e si abilita in C k, allora essa riceve come intervallo di sparo: D k (tf)=si(tf)+st(c k ) dove SI(tf) rappresenta al solito l intervallo statico di sparo associato a tf. Questa stessa regola, governa anche l aggiornamento dell intervallo di tk, ossia la transizione che ha portato nella nuova classe C k, qualora essa risulti ancora abilitata in C k. In altre parole, sussiste il modello semantico single-server, per cui una transizione multiplamente abilitata spara un solo enabling per volta. Dopo ogni sparo, ogni enabling è considerato come uno appena formatosi. Ovviamente, se tf era abilitata in C h ma si disabilita a causa dello sparo di tk, in D k scompare il suo intervallo di sparo. 148

Le regole di sparo richiamate di sopra sono esemplificate nella costruzione del nuovo albero di raggiungibilità secondo Wang ed altri in Figura 13, sempre con riferimento alla rete MF di Figura 11. C 0 : ST 0 : [0,0] M 0 =(1100) D 0 : D 0 (t1)=[2,4] D 0 (t2)=[3,5] t1 t2 C 1 : ST 1 : [2,4] M 1 =(0110) D 1 : D 1 (t2)=[3,5] t2 C 2 : ST 2 : [3,4] M 2 =(1001) D 2 : D 2 (t1)=[3,4] t1 C 3 : ST 3 : [3,5] M 3 =(0011) D 3 : C 4 : ST 4 : [3,4] M 4 =(0011) D 4 : Figura 13 Albero di raggiungibilità della rete MF di Figura 11 con classi CS Poiché le informazioni di clock stamp ST sono globali, risulta ora dall albero di Figura 13, che la marcatura finale (0011) è raggiunta nella sequenza t1t2 in un tempo in [3,5], e nella sequenza t2t1 in un tempo in [3,4]. Complessivamente, si può dire che partendo dalla marcatura iniziale (1100), la marcatura finale (0011) non è raggiunta prima di 3 unità di tempo ma sicuramente entro 5 unità di tempo. Il risultato è quello corretto che ci si aspettava. ESERCIZIO Data la rete MF di Figura 14, costruire il suo albero di raggiungibilità secondo le classi di stato classiche e quindi utilizzando classi CS. Verificare se la marcatura finale [0,0,0,0,0,1] è raggiungibile a partire dalla marcatura iniziale [1,1,0,0,0,0] entro 150 unità di tempo. OSSERVAZIONI CONCLUSIVE Affinché si possano compiere analisi di temporizzazione, il numero delle classi di stato deve essere finito. Diversamente l albero di raggiungibilità non è costruibile per via dell esplosione degli stati. La finitezza del numero delle classi è in relazione alla limitatezza della rete. Purtroppo, in una rete MF le proprietà di raggiungibilità e limitatezza non sono decidibili. Pertanto, il progettista deve considerare attentamente gli aspetti di limitatezza di un modello. Alcune condizioni sufficienti sulla limitatezza sono proposte da Berthomieu e Diaz. 149

t1: [30,50] p2 p4 p1 t2: [10,70] t5: [10,30] p6 p3 t3: [40,90] t4: [20,40] Figura 14 Un altro esempio di rete MF Più avanti nel corso verrà presentato un approccio all analisi di reti di Petri di Merlin e Farber basato su una traduzione preliminare di un modello sui Timed Automata che rappresentano un formalismo più potente. L approccio, applicato ben inteso a sistemi di non elevata dimensione, permette l analisi completa funzionale e temporale mediante verifica esaustiva (model checking) di proprietà consultando lo spazio degli stati del modello. RIFERIMENTI P. Merlin, Farber D. Recoverability of communication protocols-implication of a theoretical study. IEEE Transactions on Software Engineering, Vol. 15, nr. 7, pp. 1036-1045, 1976. C. Ghezzi, D. Mandrioli, S. Morasca, M. Pezzè. A unified high-level Petri net formalism for timed-critical systems. IEEE Transactions on Software Engineering, Vol. 17, nr. 2, pp.160-172, 1991. B. Berthomieu, M. Diaz. Modeling and verification of time-dependent systems using Time Petri Nets. IEEE Transactions on Software Engineering, Vol. 17, nr. 3, pp.259-273, 1991. J. Wang, Y. Deng, G. Xu. Reachability analysis of real-time systems using Time Petri Nets. IEEE Transactions on Systems, Man and Cybernetics, Vol. 30, nr. 5, pp. 725-736, October, 2000. J.J.P. Tsai, S.J. Yang, Y.H. Chang. Timing constraint Petri nets and their applications to schedulability analysis of real-time system specification. IEEE Transactions on Software Engineering, Vol. 21, nr. 1, pp. 32-49, 1991. p5 150