Modelli per la descrizione di processi concorrenti def
1. MODELLI PER LA DESCRIZIONE DI PROCESSI CONCORRENTI RELATORE Prof. Ruggero LANOTTE Candidato Simone MAZZOTTA ANNO ACCADEMICO 2009-2010 UNIVERSIT DEGLI STUDI DELL'INSUBRIA Facolt di Scienze, Matematiche, Fisiche e Naturali Corso di laurea in Scienze e Tecnologie dell Informazione
2. MACCHINE A STATI GERARCHICI E una tupla (K 1 ,,K n ) di moduli, in cui ogni modulo K i ha i seguenti componenti: Un insieme di nodi N i ; Un insieme di superstati, o box B i ; Un sottoinsieme di nodi di ingresso I i N i ; Un sottoinsieme di nodi di uscita O i N i ; Una funzione di indicizzazione Y i :B i ->{i+1n} che mappa ogni box dell i-esimo modulo ad un indice pi湛 grande di i ; Un insieme di archi E i , che connettono nodi e box .
3. ESPANSIONE Ad ogni struttura gerarchica se ne pu嘆 associare una ordinaria espansa in modo ricorsivo, sostituendo ogni box con la struttura indicizzata da questultimo. Si noti che ogni stato della struttura espansa 竪 una stringa di lunghezza massima uguale alla profondit di annidamento e la dimensione dellespansione pu嘆 essere esponenziale in tale profondit, ovvero O(|K| nd (K) ).
4. MODEL CHECKING E uno strumento pratico per la rilevazione degli errori logici nelle prime fasi di progettazione dei sistemi complessi, risolvendo vari problemi quali : Raggiungibilit: verifica se vi 竪 un percorso dal top-level alla regione di destinazione, eseguita con lalgoritmo di ricerca depth-first, che effettua questa analisi con complessit in tempo lineare nella dimensione della struttura gerarchica ad ingresso singolo. Procedure DFS(u) f u 狼 T then print (il nodo 竪 raggiungibile); break // terminare lesecuzione dellintero algoritmo end if; visited := visited {u}; if u 狼 N then foreach (u,v) 狼 E do if v visited then DFS(v); end if; end do; else i:= Y(u); if in I visited then DFS(in I ); end if ; foreach ((u,v),w) 狼 E do if v 狼 visited and w visited then DFS(w); end if; end do; end if; end DFS. DFS(in 1 ); Print (il nodo non 竪 raggiungibile).
5. MODEL CHECKING rilevamento di un ciclo: verifica se un determinato stato pu嘆 essere raggiunto pi湛 volte, utilizzando una ricerca primaria ed una secondaria. Anchesso ha complessit in tempo lineare. Procedure DFS P (u) Push(u, Stack); visited P := visited P {u}; if u 狼 N then foreach (u,v) 狼 E do if v visited P then DFS P (v); end do; if u 狼 T and u visited s then DFS S (u); else i:= Y(u); if in i visited P then DFS P (in i ); foreach ((u,v),w) 狼 E do if v 狼 visited P and w visited P then DFS P (w); if v 狼 visited S then if w 狼 Stack then print (ciclo trovato); break end if; if w visited S then DFS S (w); end if; end do; end if; Pop(Stack); end DFS P . Procedure DFS S (u) Visited S := visited S {u}; if u 狼 N then foreach (u,v) 狼 E do if v 狼 Stack then print (ciclo trovato); break end if; if v visited S then DFS S (v ); end do; else i:= Y(u); foreach ((u,v),w) 狼 E do if v 狼 visited P then if w 狼 Stack then print (ciclo trovato); break end if; if w visited S then DFS S (w); end if; end do; end DFS S . DFS P (in 1 ); Print (ciclo non trovato).
6. MODEL CHECKING Vi sono poi altri problemi di decisione quali: il test di vuoto effettuato sull automa gerarchico, con complessit Pspace-complete; il problema delluniversalit, cio竪 quello di decidere se il complemento del linguaggio di automa gerarchico 竪 vuoto, con complessit Expspace-complete; si ha poi il problema di verificare se due linguaggi sono equivalenti, ovvero decidere se, dati due NHA M 1 e M 2 , se L(M 1 ) 竪 uguale al L(M 2 ), anchesso con complessit Expspace-complete; infine la verifica dellinclusione del linguaggio L(M 1 ) L(M 2 ), che ha complessit Pspace-complete.
7. AUTOMI GERARCHICI COMUNICANTI Una macchina gerarchica concorrenziale 竪 composta da un insieme di macchine che operano in modo concorrente e si sincronizzano periodicamente a diversi livelli di gerarchia utilizzando simboli di un alfabeto comune.
8. AUTOMI GERARCHICI COMUNICANTI gli operatori gerarchici e quelli concorrenti sono arbitrariamente annidati ed i componenti del prodotto possono sincronizzarsi luno con laltro a differenti livelli. Queste caratteristiche contribuiscono in modo significativo allaumento della complessit del model checking, incrementando la complessit, ad esempio, del problema della raggiungibilit: tale problema, per automi gerarchici e comunicanti, 竪 Expspace-complete e pu嘆 essere risolto in tempo O(k^(d^m)) per un CHA di profondit m, larghezza d > 1 e con ogni modulo gerarchico avente al massimo k nodi o box.
9. AUTOMI GERARCHICI COMUNICANTI Vi 竪 poi una sottoclasse di CHA, chiamati ben strutturati, in cui pi湛 automi gerarchici possono sincronizzarsi solo al top-level. Questa limitazione porta, per esempio, a risolvere il problema della raggiungibilit in tempo O(k n^d) dove k 竪 il numero degli operatori dellautoma M, ogni modulo in M ha al massimo n stati e d 竪 la loro dimensione. 裡 dellespansione di X 竪 disgiunto dall 裡 dellespansione di N
10. STATECHARTS I diagrammi Statecharts sono estensione del formalismo convenzionale di macchine a stati; sono diagrammi modulari, gerarchici e ben strutturati e gestiscono lortogonalit, la comunicazione ed il raffinamento degli stati, migliorando anche il loro impatto visivo. Componente OR Componente AND
11. DISTRIBUTORE DI LATTINE Un esempio di automa gerarchico 竪 raffigurato, tramite il formalismo Statecharts, nellimmagine a fianco,la quale rappresenta una macchina che gestisce la scelta e lerogazione di una bevanda selezionata dallutente. Vi 竪 poi un indicatore automatico che notifica il blocco di una certa bevanda. A questo automa si possono poi applicare alcuni algoritmi del model checking come quello di raggiungibilit e rilevamento di un ciclo.