La forma di comunicazione tra le componenti parallele è uno-a-uno asincrona.
Il canale viene implementato da una coda di capacità limitata.
La limitatezza della capacità della coda è essenziale per garantire che il formalismo mantenga la finitezza dell’insieme degli stati.
Sia l’insieme delle code. Per ogni coda ,
indica l’alfabeto dei simboli che possono essere ospitati nella coda;
indica la capacità massima della coda.
Gli alfabeti delle code sono mutuamente disgiunti ().
Per ogni simbolo è univoca la coda di riferimento..
Fissato un insieme , un automa parallelo ha la forma
;
.
Canali:
Le comunicazioni sono con valore (si inseriscono e tolgono valori).
L’ vede l’ insieme di canali .
viene usata per un check di coda vuota sull’iesima coda.
viene usata per un check di presenza del simbolo z in testa alla coda d’appartenenza.
Operazioni sui Canali (con side effect):
Le transizioni vengono decorate con una coppia di simboli (in, out):
Operazioni di controllo sui Canali (senza side effect):
In entrambi i casi, le operazioni con associate operazioni di controllo permettono all’automa di transire di stato senza alterare il contenuto dello stack.
.
Oltre allo stato delle singole componenti occorre tener traccia del contenuto delle code;
Il contenuto di una coda h è una stringa di simboli di lunghezza al più ;
;
Le code nello stato iniziale sono vuote.
è l’unione dei seguenti insiemi di transizioni:
(Azione interna senza side effect sulle code)
;
(Transizione con sola ricezione)
;
(Transizione con sola trasmissione)
(Transizione con ricezione e trasmissione sulla stessa coda)
(Transizione con ricezione e trasmissione su code diverse)
(si aggiunga anche uno schema con i ruoli invertiti di i (coda di trasmissione) e j (coda di ricezione).
(Transizione con check di coda vuota; senza side effect)
(Transizione con check di presenza di simbolo; senza side effect)
Accesso ad una risorsa codivisa con politica di locking (ad esempio: accesso delle transazioni alle tabelle di un database)
Automi
Canali utilizzati per ciascuna risorsa
Automa per il gestore della risorsa per due transazioni t e t’.
F stato free, R stato R_locked, W stato W_locked.
Il numero di stati è costante.
Il numero delle transazioni è lineare rispetto al numero delle transazioni.
Problemi della specifica
a) Un numero di richieste di lettura superiore alla capacita della coda può portare a malfunzionamenti (viene inviato l’ack ma non è possibile inserire il simbolo di conteggio in coda).
b) Non viene verificato che la transazione che rilascia la risorsa sia la transazione affidataria.
Modifica della specifica di Fig.2 per tener conto del problema a):
Un numero di richieste di lettura superiore alla capacita della coda può portare a malfunzionamenti (viene inviato l’ack ma non è possibile inserire il simbolo di conteggio in coda).
La nuova versione della specifica prima aggiorna la coda di conteggio e poi fornisce l’ack (si usa il check senza side effect sulla coda delle richieste).
Se non è possibile effettuare l’inserimento nella coda di conteggio si ritorna allo stato di ricezione mediante una azione interna.
Modifica della specifica di Fig.2 per tener conto del problema b):
Non viene verificato che la transazione che rilascia la risorsa sia la transazione affidataria.
Per la gestione dei lock in lettura occorre codificare nello stato il sottoinsieme delle transazioni a cui è assegnata la risorsa.
Il numero degli stati e delle transizioni è esponenziale nel numero delle transazioni (serve codificare l’insieme delle parti dell’insieme delle transazioni).
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