UniTO/anno3/vpc/consegne/2.b/2.b.org
2024-10-29 09:11:05 +01:00

8 KiB
Executable file
Raw Blame History

Esercizio CPN

Rete E

/bparodi/UniTO/media/commit/48e411a3b4536e5911f998a309a1c3fb471ce595/anno3/vpc/consegne/2.b/reteE.jpg
Rete E

I master sono modellati dai posti Richiesta, Attesa e Elabora. Lo slave di tipo 1 e` modellato dai posti S0, S1_a, S2_a, S1_a, S1_b e S3. Lo slave di tipo 2 e` modellato dai posti R0, R1, R2 e R3. La richiesta agli slave e` modellata attraverso due posti: Buffer_Input, Buffer_output.

La classe di colori utilizzata e` Master, che permette di distinguere i tre master m1, m2, m3, mentre il color domain e` m e viene utilizzato in tutte le transizioni dove c'e` necessita` di distinguere l'origine del marking.

Reachability Graph

Le seguenti tabelle elencano la dimensione dello spazio degli stati al variare del numero di master (N) e di slave (Sn e Rn).

N Sn, Rn Marking RG Marking SRG
1 1 1024 232
1 2 4080 888
1 3 9280 2032
1 4 16480 3616
2 1 28480 5240
2 2 201708 35874
2 3 678240 119488
3 1 310400 54080
3 2 3151680 538380

L'utilizzo del Symbolic Reachability Graph permette di ridurre il numero di marking di un fattore >4 .

Reachability Graph al variare delle classi di colore

k Marking RG Marking SRG
3 1024 232
4 5632 460
5 29696 804
6 151552 1288
7 753664 1936
8 3670016 2772
9 17563648 3820
10 82837504 5104

La tabella mostra l'aumentare dei marking del Reachability Graph all'aumentare delle classi di colore. Benche` la crescita dello spazio degli stati sia lineare in entrambi i casi, notiamo come lo spazio del SRG sia notevolmente piu` contenuto dello spazio del RG. Inoltre, il rapporto marking RG/SRG (dello stato degli spazi) aumenta proporzionalmente al valore di k.

A conferma di quanto espresso, notiamo che anche con valori di marcatura iniziale maggiore per il master e gli slave, notiamo lo stesso effetto sul rapporto di marking RG/SRG (limitatamente alle possibilita` di calcolo).

N, Sn, Rn k Marking RG Marking SRG
2, 2, 2 3 201708 35874
2, 2, 2 4 4190624 203136
2, 2, 2 5 78523200 875478

Considerazioni su Fork/Join

Non puo` avvenire un join fra due processi con diverso padre quando:

  • N = 1: sullo stesso spazio non puo` essere presente piu` di un token con lo stesso colore
  • Sn = 1: in questo secondo caso, come nei precedenti esercizi, avviene un solo fork alla volta.

Di seguito viene mostrata un'esecuzione in cui e` possibile che avvenga il join di due processi con lo diverso padre:

  • con N > 1 consideriamo che nella rete vi siano al momento iniziale due token dello stesso colore "m0"
  • entrambi i token vengono inseriti nel Buffer_input e in seguito inviati allo slave di tipo 1.
  • quando Sn > 1 uno dei due token puo` eseguire lo scatto attraverso la transizione T3 prima che l'altro token arrivi alla transizione T6 (in cui avviene il join).

Rete F

/bparodi/UniTO/media/commit/48e411a3b4536e5911f998a309a1c3fb471ce595/anno3/vpc/consegne/2.b/reteF.jpg
Rete F

I master sono modellati dai posti Richiesta, Attesa e Elabora. Gli slave di tipo 1 sono modellato dai posti S0, S1_a, S2_a, S1_a, S1_b e S3. La richiesta agli slave e` modellata attraverso due posti: Buffer_Input, Buffer_output.

Nella rete sono presenti due classi di colore:

  • Master, che permette di distinguere i diversi master m1, m2, m3
  • Slave, che permette di distinguere i due slaves ID1 e ID2

La classe Slave e` divisa in due sottoclassi, Slave1 e Slave2, per facilitare in seguito la parametrizzazione degli slaves. Anche la classe Master e` divisa in due sottoclassi utilizzate nell'espressione booleane della transizione Fork. Il dominio D = Master×Slave e` utilizzato per la multiplicity degli archi fra fork e join, in modo da tener traccia delle richieste effettuate.

Reachability Graph

Le seguenti tabelle elencano la dimensione dello spazio degli stati al variare del numero di master (N) e di slave (Sn e Rn).

N R1, R2 Marking RG Marking SRG
1 1 768 432
1 2 2560 1440
1 3 5376 3024
1 4 5184 9216
2 1 18720 9720
2 2 97696 50481
2 3 267120 137376
3 1 192000 97600
3 2 1309440 663520

Rispetto alla precedente rete, il rapporto stato degli spazi di RG/SRG e` minore.

Reachability Graph al variare delle classi di colore

La seguente tabella mostra l'incremento dello spazio degli stati all'aumentare degli elementi della classe di color Master. Come nella precedente rete, il rapporto marking RG/SRG aumenta proporzionalmente alla cardinalita` della classe.

|M1| |M2| Marking RG Marking SRG
2 1 768 432
3 1 3840 960
2 2 4096 1296
3 2 20480 2880
3 3 102400 6400
4 3 491520 12000
4 4 2359296 22500
5 4 11010048 37800
5 5 51380224 63504

Nella seguente tabella viene evidenziato l'incremento dello stato degli spazi all'aumentare degli elementi della classe di colore Slave.

|Slave1| |Slave2| Marking RG Marking SRG
1 1 768 432
1 2 2048 720
2 1 2688 864
2 2 7168 1440
2 3 17920 2016
3 2 22528 2160
3 3 56320 3024
3 4 135168 3888
4 3 163840 4032
4 4 393216 5184
4 5 917504 6336
5 4 1081344 6480
5 5 2523136 7920

Notiamo che l'alta cardinalita` della classe Slave abbia avuto un impatto minore sulla dimensione del RG rispetto alla classe master. Il rapporto RG/SRG segue quanto detto finora ed e` il piu` grande fra tutte le reti analizzate.

Considerazioni su Fork/Join

Posso fare le stesse considerazioni che nella rete precedente (rete E), tenendo in considerazione che avendo due diverse tipologie di slave, un join fra due processi con padre diverso avverra` solo quando

(R₁ > 1 R₂ > 1) ∧ N > 1