• Non ci sono risultati.

Ptolemy

Nel documento RAPPORTO TECNICO (pagine 33-36)

Ptolemy è un framework di modellazione e di simulazione open-source ed esten-sibile sviluppato presso l’Università di Berkley (Ptolemaeus, 2014). Offre capacità di modellazione eterogenea consentendo la composizione di diversi modelli di calcolo gerarchici in modo arbitrario, che è essenziale nella modellizzazione di sistemi cyber-fisici. Ptolemy segue il paradigma orientato all’attore, in cui un sistema è composto da un insieme di attori, che possono essere visti come processi che vengono eseguiti in modo concorrente comunicando tra loro attraverso porte. In Ptolemy, il modo in cui gli attori eseguono il proprio compito e comunicano non è fissato, ma è definito da un modello di calcolo (MoC), chiamato dominio. Ogni dominio è implementato

da un direttore. Attualmente, Ptolemy supporta un certo numero di MoC, come ad esempio:

• Synchronous Dataflow (SDF) - I domini Dataflow sono appropriati per le ap-plicazioni che coinvolgono l’elaborazione di flussi di dati. Questi flussi possono fluire attraverso sequenze di attori che li trasformano in qualche modo. In SDF, l’ordine in cui gli attori vengono eseguiti non dipende dai dati che sono processati. Per altri domini di dataflow, come ad esempio Dynamic Dataflow (DDF), questo non è più vero.

• Synchronous-Reactive (SR) - SR è un modello di calcolo progettato per mo-dellare sistemi che coinvolgono sincronie, azioni concorrenti, risorse condivise e guasti. I segnali possono essere assenti. In questi sistemi esiste una nozione di logica del tempo, cioè il tempo procede come una sequenza discreta di passi. SR può essere usato per comporre macchine a stati concorrenti. Un modello SR è conducibile ad un problema di punto fisso ad ogni tick del clock logico. • Discrete Event (DE) - viene utilizzato per modellare interazioni temporizzate e

discrete tra attori simultanei. Ogni interazione è un evento, un token istantaneo inviato da un attore ad un altro. In questo dominio, gli attori reagiscono agli eventi in input secondo il loro ordine temporale. Un uso comune di DE è quello di modellare sistemi di accodamento, che sono reti di code e server.

• Continuous Time (CT) - il dominio CT modella i processi fisici, sfruttando la nozione di tempo superdenso (Cataldo et al., 2006). Le dinamiche continue dei processi fisici sono rappresentate utilizzando le equazioni differenziali ordina-rie. I modelli di tale dominio sono simili ai modelli costruiti in Simulink, ma il modello del tempo di Ptolemy fornisce una modellizzazione più pulita dei se-gnali misti. Risolutori numerici sono usati per risolvere equazioni differenziali, in particolare vengono offerte due versioni del metodo Runge-Kutta.

• Process Networks (PN) - simile ai dataflows, ma ogni attore esegue concorren-temente il proprio thread. Tutti gli attori eseguono simultaneamente.

• Extended State Machines (ESM) - macchine a stati standard estese, con varia-bili interne e azioni di output relative alle transizioni.

• Modal Models (MM) - sono modelli gerarchici in cui il modello di livello supe-riore consiste in un ESM, i cui stati sono raffinati in altri modelli, perfino in altri domini.

L’eterogeneità si ottiene combinando gerarchicamente, in modo appropriato, diret-tori differenti. Per esempio, i sistemi ibridi possono essere modellati efficacemente usando un MM come dominio di primo livello, i cui raffinamenti sono attori CT. Ovviamente, non tutte le combinazioni sono valide o hanno senso. Per esempio, DE all’esterno e CT all’interno è un modello ben strutturato, mentre DE all’interno di CT ha meno senso. Una semantica formale unificata di Ptolemy è stata resa di-sponibile in Tripakis et al. (2013), che costituisce un grande vantaggio rispetto ad altri strumenti. Inoltre, Ptolemy può essere facilmente esteso poiché il suo codice sorgente è disponibile liberamente.

Figura 3.2: Un semplice modello di Ptolemy a eventi discreti.

Macchine a stato di Ptolemy e Modal Models

Gli ESM contengono un insieme di stati, transizioni e un insieme di variabili. La co-municazione avviene tramite le porte, in contrasto con il meccanismo di trasmissione dei diagrammi di stato (Harel, 1987). Ogni transizione ha:

• una guardia, che determina l’abilitazione della transizione;

• un’azione di impostazione che aggiorna il valore di alcune variabili una volta avvenuta la transizione;

• un’azione di output, che assegna i valori alle porte di output una volta eseguita la transizione.

• transizioni ordinarie;

• transizioni preventive, che hanno una priorità di livello superiore rispetto a transizioni ordinarie;

• transizioni di default, che hanno un livello di priorità inferiore rispetto a tran-sizioni ordinarie;

• transizioni non deterministiche, ovvero, se due o più transizioni non determi-nistiche sono abilitate allo stesso tempo, una è scelto casualmente.

• transizioni immediate, ovvero, se uno stato di destinazione ha una transizione abilitata immediata, allora la transizione viene eseguita immediatamente nella stessa iterazione, producendo una potenziale catena di transizioni.

Sono disponibili combinazioni di questi tipi di transizione, ad esempio la transizione predefinita non deterministica.

Macchine a stati gerarchiche I raffinamenti dello stato corrente sono general-mente eseguiti prima di effettuare una transizione. Le transizioni potrebbero avere effetti sull’esecuzione del raffinamento. Le transizioni ordinarie ripristinano il raf-finamento dello stato di destinazione, se presente, mentre le transizioni preventive, se abilitate, impediscono che il raffinamento venga eseguito. Le macchine a stato gerarchiche forniscono le transizioni storiche e le transizioni di terminazione. Le transizioni storiche, quando si entra nello stato di destinazione, non ripristinano il proprio raffinamento. Le transizioni di terminazione sono abilitate solo quando tutti i raffinamenti dello stato corrente sono terminati.

Gli ESM e i MM possono essere combinati concorrentemente usando MoC appro-priati, come SR o SDF. Su un attento esame, il modello a stati finiti può essere visto come una composizione concorrente di FSM gerarchici con un modello di calcolo SR.

Nel documento RAPPORTO TECNICO (pagine 33-36)