1 Ivan Lanese Dipartimento di Informatica Università di Pisa Prof. Ugo Montanari A graph-based framework for Fusion Calculus Relatore: Colloquio per l’esame di licenza
2 Piano della presentazione Sistemi concorrenti, distribuiti e mobili Algebre di processi Il Fusion Calculus Un sistema di riscrittura di grafi: SHR Traduzione da Fusion Calculus a SHR Conclusioni
3 Sistemi concorrenti e distribuiti Sistemi concorrenti: più flussi di esecuzione attivi contemporaneamente Sistemi distribuiti: composti da più componenti con locazioni diverse “One on which I cannot get any work done because some machine I have never heard of has crashed” L. Lamport
4 Perchè questo tipo di sistemi? Concorrenza per motivi di efficienza (es. multiprocessor) Distribuzione per comunicazione e condivisione di risorse: –Internet –LANs–LANs –Reti wireless
5 Sistemi mobili Telefoni cellulari, computer portatili,... Anche software che si sposta: applet Java scaricati dalla rete ed eseguiti in locale
6 Nuove sfide Interazione complessa tra le diverse componenti di un sistema La configurazione del sistema cambia dinamicamente durante l’esecuzione Occorrono strumenti in grado di trattare questo tipo di problemi
7 La scelta dei metodi formali Consentono un approccio rigoroso ai problemi di progettazione e sviluppo dei sistemi Consentono lo sviluppo di tool automatici di supporto ma: Costi elevati: spesso applicati solo alle componenti più critiche
8 Algebre di processi Sistema descritto da un termine in un’algebra opportuna Operatori rappresentano la struttura e il comportamento del sistema: –costanti per le componenti primitive –composizione parallela –scelta tra più alternative –comunicazioni –restrizione della visibilità di risorse –...
9 Vantaggi e svantaggi Semplici da trattare matematicamente (induzione strutturale) Possono modellare diversi tipi di sistemi Tecniche standard per descrivere la semantica (semantica SOS) e per confrontare sistemi diversi (bisimulazione) ma: Non separano struttura e funzionamento del sistema: poco intuitivi Difficili da applicare in ambiente industriale
10 Un po’ di storia CCS (Milner, 1989): tratta sistemi concorrenti che si sincronizzano tramite azioni complementari -calcolo (Milner, 1992): introduce la mobilità –nomi di canali vengono trasmessi –semplice da trattare ma simula anche la mobilità di processi
11 Il Fusion Calculus (Victor, 1998) Evoluzione del -calculus Lo semplifica e lo rende più simmetrico ma ne aumenta l’espressività Introduce la possibilità di fondere nomi
12 Sintassi del Fusion Calculus Azioni: ::= ux | ux | : relazione di equivalenza tra nomi Agenti: S::= i i.P i P::=0 | S | P 1 |P 2 | (x)P | rec X. P | X
13 Congruenza strutturale Processo: agente a meno delle seguenti equivalenze –| è associativo, commutativo e con 0 come unità –+ è associativo, commutativo e con 0 come unità – -conversione –(x)0 = 0, (x)(y)P=(y)(x) P –P|(x)Q=(x)(P|Q) se x non libero in P –rec X.P=P[rec X.P/X]
14 Semantica SOS PREF PAR COM SUM PASS SCOPE STRUCT OPEN
15 Esempi
16 Riscrittura di grafi I grafi sono un mezzo naturale per rappresentare sistemi distribuiti Usiamo Synchronized Hyperedge Replacement per modellare computazione, sincronizzazione e riconfigurazione Possiamo modellare reti, algebre di processi, architetture software...
17 SHR: una strategia in 2 passi Produzioni che descrivono il comportamento di singoli iperarchi: –Effetto locale (facile da implementare) –Un iperarco si riscrive in un grafo generico –Vincoli sui nodi adiacenti Risoluzione globale del sistema di vincoli: –Consente di definire sincronizzazioni e riscritture complesse
18 Edge Replacement Systems Una produzione descrive la trasformazione di un iperarco L in un grafo R R L H
19 Edge Replacement Systems Una produzione descrive la trasformazione di un iperarco L in un grafo R R R’ Più riscritture possono avvenire concorrentemente L L’ H
20 Synchronized Hyperedge Replacement Riscritture sincronizzate: associamo azioni ai nodi delle produzioni. Una riscrittura è permessa se sono soddisfatti i vincoli di sincronizzazione associati ai nodi Diversi modelli di sincronizzazione possibili Le sincronizzazioni consentono di specificare riscritture globali
21 Synchronized Hyperedge Replacement Sincronizzazione Milner: Si sincronizzano solo 2 archi che eseguono azioni complementari a a a 3 3 B1A1 B2A2
22 SHR con mobilità a (x) (y) B1A1 a ~ a B2A2 a a x= y – Aggiungiamo alle azioni tuple di nomi da comunicare – I nomi possono essere nuovi o di nodi preesistenti – I nomi trasmessi dalle azioni sincronizzate sono accoppiati e i nodi corrispondenti fusi Introduciamo la mobilità di nomi
23 Esempio b) x C Brother C C C C C C CCC (4)(3)(2)(1) Star Rec. S S SS (5) x Initial Graph C Brother: C C C CS Star Reconfiguration: (w) r(w)
24 x,y z, w. C(x,w) | C(w,y) | C (y,z) | C(z,x) Notazione algebrica per i grafi Esempio: ring w z
25 : (A x N* ) (x, a, y) se (x) = (a, y) associa ad ogni nodo la sua azione e la tupla di nomi trasmessa : è una sostituzione idempotente (fonde gruppi di nodi) Riscritture come giudizi sintattici Riscritture: G 1 G 2 ,,
26 Riscritture come giudizi sintattici x 1,…,x n L(x 1,…,x n ) G Produzioni ,, Transizioni sono generate a partire dalle produzioni usando regole di inferenza che dipendono dal modello di sincronizzazione Derivazioni 0 G 0 1 G 1 … n G n 1,11,1 2,22,2 n,nn,n
27 Corrispondenza tra Fusion e SHR FusionSHR ProcessiGrafi Processi sequenzialiArchi NomiNodi Comp. parallelaComp. Parallela ScopeRestrizione TransizioniRiscritture
28 Traduzione
29 Produzioni Una per ogni possibile azione di un processo sequenziale standard:
30 Teorema di corrispondenza Usiamo speciali regole di inferenza per avere un SHR sequenziale. Vogliamo una corrispondenza fra transizioni e riscritture
31 Esempio
32 Conclusioni Modello grafico per il Fusion Calculus La relazione consente uno scambio di tecniche fra i 2 formalismi: –semantica concorrente per il Fusion –bisimulazione per i sistemi SHR SHR collegato alla programmazione logica –può essere sfruttato per le implementazioni –occorre passare da sincronizzazione Milner a sincronizzazione Hoare