Pages: 1 [2]   Go Down
Print
Author Topic: regole non capite su FJ e Pi-calcolo!  (Read 4133 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Franco Barbanera
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 3.072



WWW
« Reply #15 on: 18-09-2014, 15:04:20 »

Mi scrivi per bene che cosa si intende per scope-extrusion nel pi-calcolo?

FB
Logged
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #16 on: 18-09-2014, 16:06:55 »

allora per scope extrusion in generale si intende la capacità di un processo P di far conoscere a qualcuno ciò che conosce solo lui. Per esempio in generale supponiamo che x sia una variabile privata di P e quindi in questo caso se voglio far conoscere x all'esterno, metterò x su un canale di output e così poi chiunque potrà vedere x.

Nello specifico possiamo fare un esempio con tre processi. A e B condividono un canale x che conoscono solo loro supponiamo che C voglia comunicare con B, ma conosce attualmente solo A. A risponde a C mandandogli il canale x che serve appunto per comunicare con B.In questo modo ora C conosce il canale x per parlare con B e quindi tutti e tre riescono a parlare mettendo qualcosa in questo canale di output e prendendo di volta in volta quello che ivi viene messo. Quindi lo scope di x viene estruso nel senso che prima era solo tra A-B e adesso diviene A-B-C. La definizione dovrebbe essere questa, giusto? 
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Crasher
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #17 on: 18-09-2014, 17:37:00 »

Provo a fornire un'interpretazione delle regole che ho finora capito (almeno).

Regola OUT:
supponendo di essere in uno stato in cui l'insieme dei nomi A sia noto a tutti, la relazione OUT ci dice che un processo il cui scopo è di inviare il valore v lungo il canale x, dopo che questa azione di invio è stata completata, passa allo stato nullo.

Regola IN:
supponendo di essere in uno stato in cui l'insieme dei nomi A sia noto a tutti, la relazione IN ci dice che un processo P il cui scopo è di ricevere il valore p lungo il canale x, dopo che è avvenuta una ricezione del valore v sul canale x , allora il processo P passerà nello stato in cui sostituirà le occorrenze libere di p con v.

Regola PAR:
Se il processo P dopo un'azione l passa allo stato P', allora questo cambiamento si ripercuote in tutto l'ambiente e quindi anche nei processi di P che aveva in parallelo. Questo vuol dire che il processo Q, con la stessa azione l, passa allo stato P'.

è giusto fin qui?
Logged

Diventa ciò che sei nato per essere
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #18 on: 18-09-2014, 17:49:24 »

io provo a esplicare la regola COM sempre relativa al pi-calcolo. COM dovrebbe indicare la comunicazione tra processi. Ci indica cosa avviene quando 2 processi comunicano e come mutano attraverso l'inserimento di qualcosa sul canale o il prelevamento di qualcosa dallo stesso.


Se abbiamo che : 1) P è parallelo a Q. 2)Q attraverso una transazione interna crea un canale v (togliendolo da A??) interno ai processi P' e Q'. Allora P diventa P' attraverso l'output sul canale x di v e Q diventa Q' attraverso l'input di v sul canale x.

Questa la mia interpretazione, spero sia corretta...  cry
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Franco Barbanera
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 3.072



WWW
« Reply #19 on: 19-09-2014, 15:14:55 »

Quote
quindi in questo caso se voglio far conoscere x all'esterno, metterò x su un canale di output e così poi chiunque potrà vedere x.

No, potra' vedere x solo quelli a cui viene inviato.

Comunque nel resto della tua spiegazioni e' detto bene.

FB
Logged
Franco Barbanera
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 3.072



WWW
« Reply #20 on: 19-09-2014, 15:20:07 »

Provo a fornire un'interpretazione delle regole che ho finora capito (almeno).

Regola OUT:
supponendo di essere in uno stato in cui l'insieme dei nomi A sia noto a tutti, la relazione OUT ci dice che un processo il cui scopo è di inviare il valore v lungo il canale x, dopo che questa azione di invio è stata completata, passa allo stato nullo.

Regola IN:
supponendo di essere in uno stato in cui l'insieme dei nomi A sia noto a tutti, la relazione IN ci dice che un processo P il cui scopo è di ricevere il valore p lungo il canale x, dopo che è avvenuta una ricezione del valore v sul canale x , allora il processo P passerà nello stato in cui sostituirà le occorrenze libere di p con v.

Regola PAR:
Se il processo P dopo un'azione l passa allo stato P', allora questo cambiamento si ripercuote in tutto l'ambiente e quindi anche nei processi di P che aveva in parallelo. Questo vuol dire che il processo Q, con la stessa azione l, passa allo stato P'.

è giusto fin qui?

Bene le prime due.
Non la terza, che informalmente dice che, se un processo P (che puo' anche esser visto come un sistema)
puo' evolvere in P' interagendo con il suo ambiente esterno attraverso l'azione l, allora, se invece di
P considerassimo il sistema P|Q, questo sistema  puo' evolvere in P'|Q interagendo con il suo ambiente esterno attraverso l'azione l.

Ora andate avanti

FB
Logged
Franco Barbanera
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 3.072



WWW
« Reply #21 on: 19-09-2014, 15:26:34 »

io provo a esplicare la regola COM sempre relativa al pi-calcolo. COM dovrebbe indicare la comunicazione tra processi. Ci indica cosa avviene quando 2 processi comunicano e come mutano attraverso l'inserimento di qualcosa sul canale o il prelevamento di qualcosa dallo stesso.


Se abbiamo che : 1) P è parallelo a Q. 2)Q attraverso una transazione interna crea un canale v (togliendolo da A??) interno ai processi P' e Q'. Allora P diventa P' attraverso l'output sul canale x di v e Q diventa Q' attraverso l'input di v sul canale x.

Questa la mia interpretazione, spero sia corretta...  cry

No.

Il problema, nel descrivere una regola che formalizzi la comunicazione tra processi,
e' che tu devi rappresentare in qualche modo il fatto che tu stia o meno inviando
un valore che e' un canale privato. Questo e' il motivo per cui si utilizza l'insieme A.
C'e' un esercizio nella pagina degli esercizi in cui si fa vedere come, usando una regola
piu' semplice ed intuitivamente corretta, il meccanismo della scope-extrusion non si
riesca a formalizzare.
Per prima cosa, vai a vedere l'esercizio. La regola semplificata ti sembrera' giusta e
comprensibile, ma la soluzione dell'esercizio ti mostrera' che cosi' non e'.
(giusto per non farvi mancare nulla, ti dico pure qual e' l'esercizio: il 10 del pi-calcolo e PICT)

FB
Logged
Crasher
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #22 on: 19-09-2014, 16:51:16 »

Ecco qui le altre regole.

Regola RES:
Supponendo di essere in un sistema in cui l'insieme dei nomi A è conosciuto dal processo P e inoltre è noto pure x. Se il processo P dopo una transazione L passa allo stato P' ed inoltre sappiamo pure che x non appartiene a fn(L) allora se nel processo P si ha la creazione di un canale x, dopo l'azione L, questo stesso canale con lo stesso nome x potrà esistere pure nel processo P'.

Regola COM:
Supponendo di essere in un sistema in cui l'insieme dei nomi A è conosciuto dai processi P e Q. Se il processo P dopo un'azione di invio del valore v sul canale x passa allo stato P' ed inoltre se il processo Q dopo un'azione di ricezione del valore v sul canale x passa allo stato Q', allora la parallelizzazione dei due processi P e Q, dopo un'azione interna tau, porterà alla creazione di un canale v nella parallelizzazione tra P' e Q', facendo attenzione a rimuovere l'insieme A dato che l'insieme delle variabili libere in A è cambiato.

Regola Open:
Supponendo di essere in un sistema in cui l'insieme dei nomi A è conosciuto dal processo P e inoltre è noto pure x. Se il processo P passa allo stato P' dopo l'invio del valore x sul canale y ed inoltre y e x sono nomi differenti, allora è lecita l'azione di creare un canale x nella fase di transizione da P a P'.

Regola Struct Right:
Supponendo di essere in un sistema in cui l'insieme dei nomi A è conosciuto dal processo P. Se il processo P dopo un'azione l passa allo stato P' e inoltre sappiamo che P' è strutturalmente congruo al processo P'', allora il processo P, dopo la stessa azione l, passerà allo stato P''
Logged

Diventa ciò che sei nato per essere
Franco Barbanera
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 3.072



WWW
« Reply #23 on: 21-09-2014, 09:50:29 »

Quote
Regola RES:
Supponendo di essere in un sistema in cui l'insieme dei nomi A è conosciuto dal processo P e inoltre è noto pure x. Se il processo P dopo una transazione L passa allo stato P' ed inoltre sappiamo pure che x non appartiene a fn(L) allora se nel processo P si ha la creazione di un canale x, dopo l'azione L, questo stesso canale con lo stesso nome x potrà esistere pure nel processo P'.

Quote
se nel processo P si ha la creazione di un canale x

Non si ha alcuna creazione di canali.
Se ci sono le premesse che hai indicato allora in un processo che e' uguale a quello della premessa, ma in
cui la x e' privata in P, si ha che la x non e' ovviamente pubblica (non e' insieme ad A infatti)
ed inoltre, poiche' la x non e' un nome ricevuto od inviato (poiche' x non e' in fn(L)) allora
il processo in questione evolve in nex x P'

FB
Logged
Franco Barbanera
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 3.072



WWW
« Reply #24 on: 21-09-2014, 09:52:19 »

Riscrivi le altre due regole, che servono quaqndo quello che si invia e' ilnome di un canale privato.

FB
Logged
Crasher
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #25 on: 21-09-2014, 11:46:34 »

Quindi la regola Open dovrebbe essere complementare alla RES e dice informalmente che una variabile x che è privata in P diventa pubblica se abbiamo una transazione l in cui appunto viene inviato il valore x, e il processo P evolve in P'.

Mentre per quanto riguarda la COM, dato che abbiamo delle transazioni in cui si invia e si riceve il valore v rispettivamente dai processi P e Q (evolvendo nei loro rispettivi stati P' e Q') allora volendo mettere in parallelo P e Q si avrà la restrizione di v in P'|Q' perché v non è più una variabile libera.


GP
« Last Edit: 21-09-2014, 12:49:48 by Crasher » Logged

Diventa ciò che sei nato per essere
Franco Barbanera
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 3.072



WWW
« Reply #26 on: 22-09-2014, 15:19:15 »

Quindi la regola Open dovrebbe essere complementare alla RES e dice informalmente che una variabile x che è privata in P diventa pubblica se abbiamo una transazione l in cui appunto viene inviato il valore x, e il processo P evolve in P'.


La regola dice che se un processo new x in P invia x, che e' privata,
io "apro" il processo rendendo x non piu' privata in P (ma mi ricordo che in realta'
x e' privata poiche' non e' piu' in A).
Se poi faccio comunicare P con un processo Q (usando la COM),
allora, quando trasmetto il valore, se questo era in realta' un nome privato "richiudo" il processo
(questa volta inserendo anche Q' all'interno del new ) altrimenti no (infatti il new nella
conclusione della COM e' un vero new solo nel caso in cui il valore non sia in A, cioe' sia privato).

FB
Logged
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #27 on: 23-09-2014, 21:58:04 »

Quote
io "apro" il processo rendendo x non piu' privata in P (ma mi ricordo che in realta'
x e' privata poiche' non e' piu' in A).
Se poi faccio comunicare P con un processo Q (usando la COM),
allora, quando trasmetto il valore, se questo era in realta' un nome privato "richiudo" il processo

non mi è chiaro cosa voglia dire "aprire " e "chiudere " un processo ...
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Franco Barbanera
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 3.072



WWW
« Reply #28 on: 25-09-2014, 12:56:29 »

Quote
io "apro" il processo rendendo x non piu' privata in P (ma mi ricordo che in realta'
x e' privata poiche' non e' piu' in A).
Se poi faccio comunicare P con un processo Q (usando la COM),
allora, quando trasmetto il valore, se questo era in realta' un nome privato "richiudo" il processo

non mi è chiaro cosa voglia dire "aprire " e "chiudere " un processo ...

E' solo un modo di dire. Se non aiuta a capire, allora non significa nulla.

Si potrebbe allora dire che

io prendo in considerazione il processo senza la "new x" ma mi ricordo che la x in P
e' privata poiche' non e' tra i nomi di A.

FB
Logged
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #29 on: 25-09-2014, 13:09:37 »

ah ok!  per il resto non dovrei avere problemi! 
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Pages: 1 [2]   Go Up
Print
Jump to: