204 lines
8.1 KiB
TeX
204 lines
8.1 KiB
TeX
|
\documentclass{article}
|
||
|
%\usepackage{times}
|
||
|
\usepackage[utf8]{inputenc}
|
||
|
|
||
|
%\usepackage{amsthm}
|
||
|
\usepackage{algorithm} % for pseudo-codes
|
||
|
%\usepackage{enumerate}
|
||
|
\usepackage{algpseudocode}
|
||
|
%\usepackage{DotArrow}
|
||
|
%\usepackage{subfig}
|
||
|
%\usepackage{amsmath, environ}
|
||
|
%\usepackage{amssymb}
|
||
|
%\usepackage{amsthm}
|
||
|
%%\usepackage{bm}
|
||
|
%%\usepackage{mathtools}
|
||
|
\usepackage{graphicx}
|
||
|
%\usepackage{wrapfig}
|
||
|
%\usepackage{minibox}
|
||
|
%\usepackage{multirow}
|
||
|
%\usepackage{pifont} % \ding{}
|
||
|
%\usepackage[percent]{overpic}
|
||
|
%\usepackage{scrextend} % labeling environment
|
||
|
%
|
||
|
%\newtheorem{theorem}{Theorem}
|
||
|
%\newtheorem{definition}{Definition}
|
||
|
%\newtheorem{example}{Example}
|
||
|
%
|
||
|
%\renewcommand{\textfraction}{0.05}
|
||
|
%\renewcommand{\floatpagefraction}{0.75}
|
||
|
|
||
|
\newcommand{\centerimage}[5][-7pt]{ % [vskip] | graphics-opt | imgname | label | caption
|
||
|
\begin{figure}[!htb]%
|
||
|
\centering%
|
||
|
\vspace{#1}%
|
||
|
\includegraphics[#2]{#3}%
|
||
|
\caption{#5}\label{#4}\vspace{2mm}%
|
||
|
%\vspace{-3pt}\caption{#5}\label{#4}\vspace{-2pt}%
|
||
|
\end{figure}}
|
||
|
\date{}
|
||
|
%\includegraphics[trim=1cm 2cm 3cm 4cm, clip=true]{example.pdf}
|
||
|
|
||
|
|
||
|
|
||
|
\begin{document}
|
||
|
|
||
|
|
||
|
|
||
|
\title{Relazione Esercizio Rete WN (E)}
|
||
|
|
||
|
|
||
|
\author{Francesco Gallà, francesco.galla@edu.unito.it}
|
||
|
|
||
|
\maketitle
|
||
|
|
||
|
|
||
|
%=========================================================================
|
||
|
%%%%%%% INTRODUCTION %%%%%%%
|
||
|
%=========================================================================
|
||
|
|
||
|
\section{Rete E} \label{sec:reteE}
|
||
|
|
||
|
Master di tre tipi distinti (seppur di uguale struttura) che chiameremo m1, m2 e m3 e due slave (uno di struttura 1 e uno di struttura 2).
|
||
|
Ad ogni ciclo il master sceglie in modo indipendente di quale dei due slave servirsi.
|
||
|
Vi siano N master per ognuno dei tre tipi e R1 slave per la struttura 1 e R2 per la struttura 2.
|
||
|
|
||
|
%=========================================================================================================
|
||
|
\subsection{La rete di Petri} \label{ssec:reteE-PN}
|
||
|
|
||
|
|
||
|
La Figura~\ref{img:reteE} rappresenta la rete di Petri WN del primo esercizio (rete E).
|
||
|
Il master è modellato dai posti Req, Wait, Result e dalle transizioni Build\_req, Dispatch,
|
||
|
Retrieve.
|
||
|
Lo slave di tipo 1 è modellato dai posti Available1, S1C1,S1C2, EndS1C1, EndS2C2, EndS1 e
|
||
|
dalle transizioni Fork, ProcessC1, ProcessC2, Join.
|
||
|
Lo slave di tipo 2 è modellato dai posti Available2, S2, ResS2, EndS2, e dalle
|
||
|
transizioni Recv, ProcessS2, SendRes, EndS2.
|
||
|
|
||
|
Il master p\`uo scegliere in maniera indipendente a quale dei due slave mandare le richieste
|
||
|
grazie ai posti InBuf, InBuf1, InBuf2 e alle transizioni Choose1, Choose2, che formano un
|
||
|
buffer composto da 3 parti, una propria del master e una per ogni slave.
|
||
|
I risultati vengono ritornati al master su di un buffer condiviso tra il master e i due
|
||
|
slave, modellato dal posto OutBuf.
|
||
|
|
||
|
\subsection{I colori}
|
||
|
|
||
|
Questa rete utilizza una singola classe di colori chiamata Master, utilizzata per distinguere
|
||
|
i tipi di master ${m1, m2, m3}$. A scopo di analisi, \`e stata successivamente utilizzata la
|
||
|
forma ${m1..mk}$ che permette di variare le tipologie di master in maniera parametrica.
|
||
|
|
||
|
La rete utilizza il color domain $<m>$ per i posti che modellano il master e per i posti degli
|
||
|
slave nei quali è necessario mantenere in memoria quale master ha effettuato la richiesta.
|
||
|
Questo permette alle richieste di venire processate in contemporanea senza sovrapporsi.
|
||
|
Per i posti propri agli slave (che non si occupano quindi di processare la richiesta), non
|
||
|
\`e stato necessario utilizzare alcun color domain.
|
||
|
|
||
|
%\centerimage{trim=1cm 10cm 3cm 4cm, clip=true}
|
||
|
\centerimage{width=\columnwidth}
|
||
|
{reteE.jpg}{img:reteE}
|
||
|
{Modello WN della rete E}
|
||
|
|
||
|
|
||
|
\subsection{Valutazione del Reachability Graph} \label{ssec:reteE-res}
|
||
|
|
||
|
Le tabelle elencano la dimensione dello spazio degli stati al variare del numero di master e di slave (marcatura iniziale).
|
||
|
Per il RG, si nota come i valori di $N = 3$ e $R1,R2 = 1$ portino a tempo di calcolo di circa
|
||
|
??? from here until ???END lines may have been inserted/deleted
|
||
|
30 minuti. Inoltre ogni aumento di $R1,R2$ moltiplica linearmente il numero di 4 di un
|
||
|
fattore $4$ (in media) mentre tra $N = 1$ e $N = 2$ si riscontra un aumento di un fattore
|
||
|
$80$, mentre tra $N = 2$ e $N = 3$ si riscontra un aumento di un fattore $26$.
|
||
|
A causa dei tempi di calcolo eccessivi, non \`e stato possibile proseguire per ottenere un
|
||
|
valore più preciso riguardo l'incremento del valore di $N$.
|
||
|
|
||
|
L'utilizzo del Symbolic RG (SRG) permette di dividere di un fattore $5$ il numero di
|
||
|
markings rispetto al corrispettivo RG, seppure la dimensione dello spazio degli stati aumenti
|
||
|
in maniera coerente con il Reachability Graph. La riduzione dello spazio degli stati
|
||
|
ha permesso anche una riduzione del tempo di calcolo, che rimane comunque eccessivo per
|
||
|
procedere a successive simulazioni.
|
||
|
|
||
|
\begin{table}[h!]
|
||
|
\centering
|
||
|
\begin{tabular}{ |p{3cm}||p{3cm}|p{3cm}||p{3cm}| }
|
||
|
\hline
|
||
|
\multicolumn{4}{|c|}{Effetto della marcatura iniziale sul numero di markings} \\
|
||
|
\hline
|
||
|
N & R1,R2 & Markings RG & Markings SRG \\
|
||
|
\hline
|
||
|
1 & 1 & 2448 & 524 \\
|
||
|
1 & 2 & 8352 & 1750 \\
|
||
|
1 & 3 & 17856 & 3752 \\
|
||
|
2 & 1 & 179172 & 31612 \\
|
||
|
2 & 2 & 950787 & 165378 \\
|
||
|
2 & 3 & 2677328 & 463852 \\
|
||
|
3 & 1 & 4710272 & 799792 \\
|
||
|
\hline
|
||
|
\end{tabular} \\
|
||
|
\caption{Variazione dello spazio degli stati.}
|
||
|
\label{tab:reteE}
|
||
|
\end{table}
|
||
|
|
||
|
\subsection{Aumentare le tipologie di master}
|
||
|
|
||
|
Utilizzando una versione parametrica della classe di colori con $k$ come parametro, \`e stato
|
||
|
possibile simulare il comportamento della rete con multiple tipologie di master. $k = 3$ \`e
|
||
|
il punto di partenza dell'esercizio. I valori di $k$ sono stati incrementati progressivamente
|
||
|
cercando di mantenere il tempo di calcolo nei 30 minuti assegnati, arrivando a un valore
|
||
|
massimo di $k = 6$.
|
||
|
|
||
|
\`E stato utilizzato sempre lo stesso valore di $N=1,R1=1,R2=1$ per evidenziare l'impatto del
|
||
|
numero di master sulla rete.
|
||
|
|
||
|
Anche in questo caso, il numero di marking aumenta in maniera pressochè lineare con
|
||
|
l'aumentare di $k$. La differenza tra il numero di marking del Reachability Graph e quelli del
|
||
|
Symbolic Reachability Graph \`e per\`o notevolmente p\`iu marcata rispetto all'analisi
|
||
|
precedente: si nota come nel RG il numero di marking aumenti di un fattore $8$ mentre per
|
||
|
il SRG aumenta di un fattore $2$.
|
||
|
|
||
|
%===================== TEST 2 FMS
|
||
|
\begin{table}[h!]
|
||
|
\centering
|
||
|
\begin{tabular}{ |p{3cm}||p{3cm}|p{3cm}| }
|
||
|
\hline
|
||
|
\multicolumn{3}{|c|}{Effetto delle tipologie di master sul numero di marking} \\
|
||
|
\hline
|
||
|
k & Markings RG & Markings SRG \\
|
||
|
\hline
|
||
|
3 & 2448 & 524 \\
|
||
|
4 & 19008 & 1344 \\
|
||
|
5 & 143424 & 2968 \\
|
||
|
6 & 1057536 & 5880 \\
|
||
|
\hline
|
||
|
\hline
|
||
|
\end{tabular} \\
|
||
|
\caption{Variazione dello spazio degli stati.}
|
||
|
\label{tab:reteE}
|
||
|
\end{table}
|
||
|
%=====================
|
||
|
|
||
|
|
||
|
\subsection{Considerazioni sulla Join}
|
||
|
|
||
|
La rete E \`e una rete che utilizza classi di colore, pertanto le condizioni in cui una Join
|
||
|
si verifica tra due sottoprocessi che non sono stati creati dalla stessa Fork sono le seguenti:
|
||
|
|
||
|
\begin{description}
|
||
|
\item{1.} Sono presenti multiple istanze di token con lo stesso "colore", ovvero
|
||
|
identificati dallo stesso membro della classe Master (es. $<m> = m1$). Quindi \`e
|
||
|
necessario $N > 1$
|
||
|
\item{2.} Lo slave deve poter chiamare Fork su più di una richiesta per volta,
|
||
|
ovvero avere più di un token nel posto Available1 nella marcatura iniziale.
|
||
|
Questo si verifica con $R1 > 1$
|
||
|
\end{description}
|
||
|
|
||
|
Se queste condizioni nella marcatura iniziale sono rispettate, allora \`e possibile che si
|
||
|
verifichi una Join tra due processi non creati dalla stessa fork, ma che comunque
|
||
|
apparterranno alla stessa classe di colore (e quindi allo stesso tipo di Master).
|
||
|
Questo fenomeno \`e dato dal fatto che la classe Master non diversifica le richieste in
|
||
|
maniera univoca, ma solamente in base al master che le ha generate. Pertanto lo slave non \`e
|
||
|
in grado di distinguerle a sua volta.
|
||
|
|
||
|
In tutti i casi in cui le condizioni precedenti non sono rispettate, allora la Join verr\`a
|
||
|
per forza eseguita tra due processi figli della stessa Fork.
|
||
|
|
||
|
\end{document}
|