2020-05-22 12:15:33 +02:00
|
|
|
|
#+TITLE: Esercizio CPN
|
|
|
|
|
#+AUTHOR: Francesco Mecca
|
|
|
|
|
#+EMAIL: me@francescomecca.eu
|
|
|
|
|
#+LANGUAGE: en
|
|
|
|
|
#+LaTeX_CLASS: article
|
|
|
|
|
#+LaTeX_HEADER: \linespread{1.25}
|
|
|
|
|
#+LaTeX_HEADER: \usepackage{pdfpages}
|
|
|
|
|
#+LaTeX_HEADER: \usepackage{comment}
|
|
|
|
|
|
|
|
|
|
#+EXPORT_SELECT_TAGS: export
|
|
|
|
|
#+EXPORT_EXCLUDE_TAGS: noexport
|
|
|
|
|
#+OPTIONS: H:2 toc:nil \n:nil @:t ::t |:t ^:{} _:{} *:t TeX:t LaTeX:t
|
|
|
|
|
#+STARTUP: showall
|
2020-05-05 15:06:01 +02:00
|
|
|
|
* Rete E
|
|
|
|
|
|
2020-05-22 00:15:00 +02:00
|
|
|
|
#+CAPTION: Rete E
|
2020-05-05 15:06:01 +02:00
|
|
|
|
[[./reteE.jpg]]
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
2020-05-22 00:15:00 +02:00
|
|
|
|
#+CAPTION: Rete F
|
2020-05-05 15:06:01 +02:00
|
|
|
|
[[./reteF.jpg]]
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
2020-05-05 15:36:21 +02:00
|
|
|
|
** Reachability Graph
|
2020-05-05 15:06:01 +02:00
|
|
|
|
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.
|
|
|
|
|
|
2020-05-05 15:36:21 +02:00
|
|
|
|
** 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.
|
2020-05-05 15:06:01 +02:00
|
|
|
|
| \vert{}M1\vert{} | \vert{}M2\vert{} | 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 |
|
2020-05-05 15:36:21 +02:00
|
|
|
|
Nella seguente tabella viene evidenziato l'incremento dello stato
|
|
|
|
|
degli spazi all'aumentare degli elementi della classe di colore Slave.
|
2020-05-05 15:06:01 +02:00
|
|
|
|
| \vert{}Slave1\vert{} | \vert{}Slave2\vert{} | Marking RG | Marking SRG |
|
|
|
|
|
|----------------------+----------------------+------------+-------------|
|
2020-05-05 15:36:21 +02:00
|
|
|
|
| 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.
|
2020-05-05 15:06:01 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
** 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
|