I formalismi FSM precedentemente studiati sono intrinsecamente sequenziali e non consentono la rappresentazione esplicita del parallelismo.
La rappresentazione esplicita del parallelismo permette la naturale rappresentazione di sistemi concorrenti, distribuiti e comunicanti.
Ad esempio:
La rappresentazione esplicita del parallelismo enfatizza il concetto di modularità (orizzontale) e facilita lo sviluppo modulare delle specifiche.
In letteratura sono presenti due categorie di modelli semantici per formalismi che permettono la rappresentazione del parallelismo:
Nella rappresentazione esplicita del parallelismo assumono rilievo le forme di comunicazione tra le componenti parallele.
Comunicazione mediante canale ed invio di messaggi:
Handshacking (comunicazione uno a uno):
Broadcast (comunicazione uno a molti):
La forma di comunicazione via canale può essere:
(se il numero dei possibili valori di un messaggio è finito si può simulare la comunicazione con valore mediante comunicazione pura predisponendo un canale per ogni messaggio).
Comunicazione mediante condivisione di variabili:
Adozione del modello interleaving
Rappresentazione esplicita del parallelismo nella specifica.
Rappresentazione implicita del paralleismo nel modello semantico mediante sequenzializzazione e non-determinismo.
Possibile esplosione del numero degli stati dell’LTS dovuta alla natura combinatorica dell’interfogliazione.
Introduzione del parallelismo nelle FSM.
Un automa parallelo è un collezione ordinata di automi sequenziali
Gli automi condividono il medesimo alfabeto. Non è prevista una forma di comunicazione tra le componenti.
Possono essere dotati di due modelli semantici diversi:
Una possibile semantica è data dal seguente LTS
,
Uno stato in descrive lo stato corrente in ciascuna delle componenti.
L’insieme K descrive il sottoinsieme delle componenti che fanno uno scatto simultaneo essendo stimolate dallo stesso simbolo.
A seconda della scelta dell’insieme K si possono avere diverse semantiche:
Se non ci sono condizioni su K il sincronismo non è forzato e la scelta sull’insieme delle transizioni che, essendo abilitate scattano, è non-deterministica.
Per la semantica dell’esempio si assume una semantica completamente sincrona (scatto dell’insieme massimale delle transizioni abilitate).
e
sono due copie della stessa macchina che lavorano in parallelo.
Alla richiesta di inizio lavoro (segnale init) una macchina decide non-deterministicamente se svolgere il servizio oppure restare inattiva.
L’avanzare del servizio è regolato dal segnale do e la terminazione del servizio dal segnale exit.
Nel caso in cui entrambe le macchine accettino la richiesta evolvono in maniera perfettamente sincrona.
La scelta non-determinsitica iniziale permette di sfasare tra loro i comportamenti delle due macchine altrimenti sempre costrette ad una evoluzione perfettamente sincrona.
L’assenza di forme di comunicazione tra le componenti parallele rende scarsamente utilizzabile il formalismo come strumento di specifica.
Nel prosieguo si prenderà in considerazione la composizione parallela di macchine con l’aggiunta di forme alternative di comunicazione.
I casi considerati sono:
Le tre forme di rappresentazione di parallelismo e comunicazione verranno studiate nell’ambiente di verifica SPIN considerando:
Codifica degli automi paralleli comunicanti mediante il linguaggio testuale PROMELA.
Esecuzione delle specifiche mediante il motore di SPIN.
La forma di comunicazione tra le componenti parallele è un handshaking: una coppia di automi comunica in modo sincrono, l’uno inviando un messaggio, l’altro ricevendo il messaggio.
Canali
I canali di comunicazione sono puri (non trasmettono messaggi e rappresentano il solo evento comunicativo).
Ogni automa vede un insieme di canali
.
Direzionalità della comunicazione
Per rappresentare la direzionalità della comunicazione (invio e ricezione) l’alfabeto di un automa viene ripartito in due sottoinsiemi disgiunti dei simboli di input
(ricezioni) e di output
(invii).
Ricezione proveniente dall’ambiente esterno
Elemento che non viene comunicato da nessuna componente parallela:
.
L’insieme delle ricezioni dall’ambiente esterno è denotato da .
Invio all’ambiente esterno
Elemento che non viene comunicato a nessuna componente parallela:
L’insieme degli invii all’ambiente esterno è denotato da .
Invio o ricezione tra componenti parallele
Elemento oppure
.
Interfogliazione (scatto asincrono) delle transizioni degli automi che possono evolvere indipendentemente dalle altre componenti (ricezioni e invii rispetto all’ambiente esterno ed azioni interne alle singole componenti); le transizioni sono osservabili dall’esterno.
Scatto sincrono per coppie di transizioni che ricevono da o comunicano a componenti parallele; ogni transizione di invio o ricezione interna ha bisogno dello scatto sincrono di una transizione dall’azione complementare sullo stesso canale (rappresentazione in reale concorrenza dello scatto della coppia di transizioni).
Le transizioni di comunicazione interna che non possono osservare lo scatto di una transizione complementare rimangono bloccate in attesa.
La sincronizzazione di due transizioni complementari dà luogo ad una transizione non osservabile dall’esterno etichettata da .
La semantica è espressa dall’LTS
La prima cella riceve in ingresso un segnale dall’ambiente.
Il segnale viene shiftato e restituito all’ambiente sotto forma di .
Il registro permette di memorizzare fino a n istanze del segnale inoltrato dall’ambiente.
L’automa ha la forma
con
Si osservi che .
Gli automi paralleli e comunicanti sono più succinti degli automi sequenziali.
La composizione di N automi paralleli dell’esempio precedente:
Un qualsiasi automa sequenziale che permette di contare fino a ricezioni distinte del simbolo
ha almeno
stati.
Per il guadagno in succintezza è determinante la possibilità di comunicazione tra componenti parallele (nell’esempio gestisce i riporti).
1. Introduzione ai metodi formali di specifica
2. Semantica dei formalismi di specifica
3. Astrazione e Bisimulazione debole
4. FSM: Macchine a Stati Finiti
5. FSM: Non-determinismo e succintezza
7. FSM e Parallelismo – seconda parte
8. FSM e Parallelismo – terza parte
9. Promela
10. Specifica e verifica in SPIN
11. Proprietà di liveness in SPIN
12. Specifica di proprietà in Logica Temporale Lineare
13. Comportamenti infiniti: Automi di Büchi
14. Model checking di LTL basato su automi
15. Specifica di sistemi real time: Automi Temporizzati
16. Proprietà degli Automi Temporizzati
17. Problemi di decisione negli Automi Temporizzati
18. Il sistema di verifica UPPAAL