Espressività di linguaggi concorrenti linda like

25
Espressività di linguaggi concorrenti Linda-like Università degli studi di LAquila Facoltà di Scienze mm.ff.nn. Corso di Laurea in Scienze dellInformazione Paolo Diomede

description

Espressività di linguaggi concorrenti Linda-like

Transcript of Espressività di linguaggi concorrenti linda like

Page 1: Espressività di linguaggi concorrenti linda like

Espressività di linguaggi concorrenti Linda-like

Università degli studi di L’Aquila Facoltà di Scienze mm.ff.nn. Corso di Laurea in Scienze dell’Informazione

Paolo Diomede

Page 2: Espressività di linguaggi concorrenti linda like

2

Introduzione

P C

I linguaggi di coordinazione forniscono un meccanismo di comunicazione tra processi mediante uno spazio dati condiviso, che, a seconda del linguaggio, prende il nome di: •  Tuple Space (Linda) •  Chemical Solution (Gamma) •  Blackboard (Shared Prolog)

Page 3: Espressività di linguaggi concorrenti linda like

3

Comunicazione generativa •  Questo meccanismo di comunicazione è detto

"generativo" poiché un messaggio, generato da un processo, ha una vita indipendente nello spazio dati condiviso finché non viene prelevato da qualche altro processo.

•  Dopo che un messaggio è stato inserito nello spazio dati condiviso, diviene accessibile a tutti i processi.

•  Un messaggio non è legato a nessun processo in particolare.

Page 4: Espressività di linguaggi concorrenti linda like

4

Caratteristiche principali

•  Comunicazione asincrona •  Operazione di lettura •  Predicati input/read condizionali •  Oggetti dati anonimi •  Accesso associativo

Page 5: Espressività di linguaggi concorrenti linda like

5

Comunicazione asincrona •  E’ realizzata mediante un mezzo di

comunicazione, chiamato Tuple Space (TS) nel linguaggio Linda.

•  Il TS è sempre pronto a ricevere messaggi/tuple dal mittente ed è sempre pronto a distribuire messaggi ai destinatari.

•  Il mittente può depositare un generico messaggio a nel TS mediante la primitiva out(a).

Page 6: Espressività di linguaggi concorrenti linda like

6

Comunicazione asincrona

out (a) in (a)

Il destinatario può leggere i l generico messaggio a mediante la primitiva in(a) che t r a l ' a l t r o c a u s a l ' e l i m i n a z i o n e d e l messaggio a dal TS.

Page 7: Espressività di linguaggi concorrenti linda like

7

Comunicazione asincrona

out (a)

a

in (a)

Page 8: Espressività di linguaggi concorrenti linda like

8

Il linguaggio L0 •  Consideriamo una versione asincrona di CCS,

chiamata L0. •  L0 non possiede:

–  τ prefix –  relabeling –  alternative choice composition operator

•  L0 possiede: –  out (a) –  in (a) –  | (operatore parallelo), \ (restrizione), (recX.C) (ricorsione)

Page 9: Espressività di linguaggi concorrenti linda like

9

Obiettivi •  A partire dal linguaggio L0, consideriamo tre

linguaggi, L1, L2 e L3, ottenuti estendendo L0 con gli operatori di negative-test.

•  Si vuol mostrare che esiste una gerarchia di espressività tra i linguaggi, dove:

Li è più espressivo di Lj i > j

Page 10: Espressività di linguaggi concorrenti linda like

10

Operatori di test negativi

•  Chiamiamo operatori di test negativi quelle primitive di coordinazione che consentono di testare l’assenza dei dati nello spazio dati condiviso.

•  L’obiettivo di questo lavoro è di investigare sul potere espressivo della famiglia di questi operatori.

Page 11: Espressività di linguaggi concorrenti linda like

11

Operatori di test negativi •  Concentreremo il nostro lavoro su tre

possibili primitive che si differenziano nell’abilità di produrre istantaneamente nuovi dati dopo il test.

•  Vedremo in particolar modo le seguenti primitive: – Test-for-absence tfa(a) – Test-and-emit t&e(a) – Test-and-produce t&p(a,b)

Page 12: Espressività di linguaggi concorrenti linda like

12

Le proprietà i.   program distribution preservation

[ P | Q ] = [ P ] | [ Q ]

ii.   symmetry preservation P >< Q ⇒ [ P ] >< [ Q ]

iii.  deadlock preservation P ⇓ m ⇔ [ P ] ⇓ m ∀ P, m

iv.  divergence preservation P ⇑ ⇔ [ P ] ⇑ ∀ P

Page 13: Espressività di linguaggi concorrenti linda like

13

Il linguaggio L1

•  L1 è un estensione del linguaggio L0 con il nuovo prefisso tfa(a), pertanto L0 ⊆ L1.

•  Un processo tfa(a).P attiva P solo se nessuna istanza del dato a è disponibile.

•  Questa primitiva incorpora l’abilità del predicato inp di Linda di osservare l’assenza dei dati, infatti:

inp(a)?P_Q = in(a).P + tfa(a).Q

Page 14: Espressività di linguaggi concorrenti linda like

14

Espressività di L1

•  Vogliamo vedere che L1 ⊆ L0 mostrando che la proprietà (iv) non è soddisfatta.

•  Sia P un agente di L1 tale che: P = tfa(a).(recX.out(b).in(b).X)\b

•  Questo comportamento si formalizza nel seguente modo:

P ⇑ and P | 〈a〉 ⇑ (*)

Page 15: Espressività di linguaggi concorrenti linda like

15

Espressività di L1 Lemma: Q agente di L0 : Se Q ⇒ Q’ Allora Q|R ⇒ Q’|R ∀R

Corollario: Q agente di L0 : Se Q⇑ Allora Q|R ⇑ ∀R

Teorema: ∃ codifica di L1 in L0 che preserva la proprietà (iv)

Dim: (ABS) ∃ [ ] codifica

P è un programma di L1 definito come (*)

Allora P : [P] ⇑ and [P] | [〈a〉] ⇑ →← ( contraddice il corollario)

Page 16: Espressività di linguaggi concorrenti linda like

16

Il linguaggio L2

•  L2 è un estensione del linguaggio L0 con il nuovo prefisso t&e(a).

•  Dopo aver testato l’assenza di un dato di tipo a, questa primitiva produce istantaneamente anche una nuova occorrenza del dato a.

•  In questo modo si realizza un test atomico per l’assenza e per la conseguente emissione di un’istanza del dato a.

Page 17: Espressività di linguaggi concorrenti linda like

17

Espressività di L2

Vogliamo vedere che L2 ⊆ L1 considerando il

problema dell’implementazione di un

meccanismo di mutua esclusione tra agenti

identici:

Q | Q

(composizione parallela di agenti identici)

Page 18: Espressività di linguaggi concorrenti linda like

18

Espressività di L2

•  Vogliamo vedere che L2 ⊆ L1 mostrando che le proprietà (iii) e (iv) non sono soddisfatte.

•  Sia P un agente di L2 tale che: P = t&e(a) | t&e(a)

•  Le proprietà di deadlock e di divergenza si formalizzano nel seguente modo:

t&e(a) | t&e(a) ⇓ m ⇔ m = ⎨a⎬ and t&e(a) | t&e(a) ⇑

Page 19: Espressività di linguaggi concorrenti linda like

19

Espressività di L2 Corollario: Sia Q un programma di L1

Allora ∃ una computazione

Q | Q →2 Q1 | Q1 →2 … →2 Qn | Qn →2 … tale che:

i ) la computazione diverge oppure

ii ) ∃ m : Qm|Qm è in deadlock

Page 20: Espressività di linguaggi concorrenti linda like

20

Espressività di L2

Teorema: ∃ nessun programma che preserva la codifica di L2 in L1 che conserva la proprietà di deadlock (iii) e di divergenza (iv).

Dim: (ABS) ∃ [ ] di L2 in L1 che preserva la (iii) e la (iv)

si ha che: [t&e(a) | t&e(a) ] = [t&e(a)] | [t&e(a)]

Q = [t&e(a)] Q|Q= [t&e(a) | t&e(a) ]

quindi: Q|Q ⇓ m ⇔ m = ⎨a⎬ and Q | Q ⇑

poiché Q è un programma di L1: i) la computazione diverge →←

ii) la computazione termina in una configurazione di deadlock Q’| Q’ →←

Page 21: Espressività di linguaggi concorrenti linda like

21

Il linguaggio L3 •  L3 è un estensione del linguaggio L0 con il nuovo

prefisso t&p(a,b). •  Questa primitiva si differenzia dalla precedente

per l’abilità di emettere di un generico dato b potenzialmente differente da quello che è stato testato.

•  La primitiva test-and-emit può essere simulata nel seguente modo:

t&e(a).P = t&p(a,a).P

Page 22: Espressività di linguaggi concorrenti linda like

22

Espressività di L3

•  Vogliamo vedere che L3 ⊆ L2 mostrando che le proprietà (iii) e (iv) non sono soddisfatte.

Def. Siano P, Q due agenti, allora P >< Q ⇔ ∃ σ : Obs → Obs tale che σ(a) ≠ a ∀a con σ(P)=Q e σ-1 (Q) = P

Fact: P, Q agenti simmetrici : ∃ σ Allora: P →α P’ ⇔ Q → σ (α) Q’

P’, Q’ ancora simmetrici and σ(α)

Page 23: Espressività di linguaggi concorrenti linda like

23

Espressività di L3 •  Sia P un agente di L3 tale che:

P = t&p(a,b) | t&p(b,a) a,b ∈ Obs

•  Le proprietà di deadlock e di divergenza si formalizzano nel seguente modo:

t&p(a,b) | t&p(b,a) ⇓ m ⇔ m = ⎨a⎬ or m = ⎨b⎬

t&p(a,b) | t&e(b,a) ⇑

Page 24: Espressività di linguaggi concorrenti linda like

24

Espressività di L3 Corollario: Siano P, Q due agenti simmetrici di L2

Allora ∃ una computazione

P | Q →2 P1 | Q1 →2 … →2 Pn | Qn →2 …

tale che:

i ) la computazione diverge oppure

ii ) ∃ m : Pm|Qm è in deadlock (dove Pm|Qm sono simmetrici)

Page 25: Espressività di linguaggi concorrenti linda like

25

Espressività di L3 Teorema: ∃ [ ] di L3 in L2 che preserva la proprietà (iii) e (iv)

Dim: (ABS) ∃ [ ] codifica

siano P = [t&p(a,b)] e Q = [t&p(b,a)]

si ha che [t&p(a,b) | t&p(b,a)] = P | Q e P >< Q

poiché P e Q sono programmi di L2: i) la computazione diverge →←

ii) la computazione termina in una configurazione di deadlock Pm|Qm →←