240 lines
8.6 KiB
TeX
Executable file
240 lines
8.6 KiB
TeX
Executable file
\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 (F)}
|
|
|
|
|
|
\author{Francesco Galla`, francesco.galla@edu.unito.it}
|
|
|
|
\maketitle
|
|
|
|
|
|
%=========================================================================
|
|
%%%%%%% INTRODUCTION %%%%%%%
|
|
%=========================================================================
|
|
|
|
\section{Rete F} \label{sec:reteF}
|
|
|
|
Rete F: Master di tre tipi distinti (seppur di uguale struttura) che chiameremo m1, m2 e m3 e
|
|
due slave, di distinto tipo ID1 e ID2, ma di uguale struttura (usare quella indicata come “tipo 1”).
|
|
I master di tipo m1 e m3 richiedono servizio solo agli slave di tipo ID1 e i master di tipo m2
|
|
richiedono servizio solo agli slave di tipo ID2.
|
|
Vi siano N master per ognuno dei tre tipi e R1 slave per il tipo ID1 e R2 per il tipo ID2.
|
|
%=========================================================================================================
|
|
\subsection{La rete di Petri} \label{ssec:reteF-PN}
|
|
|
|
|
|
La Figura~\ref{img:reteF} rappresenta la rete di Petri WN del secondo esercizio (rete F).
|
|
Il master è modellato dai posti M\_Richieste, M\_Attesa, M\_Risultati e dalle transizioni Dispatch, M\_Return, Ottieni\_Res.
|
|
Lo slave di tipo 1 è modellato dai posti S1\_Attesa, Child1/Child2, Fine\_C1/Fine\_C2,
|
|
S1\_Fine e dalle transizioni Fork, C1\_Processa/C2\_Processa, Join, S1\_Return,
|
|
S1\_Send\_Res.
|
|
Per collegare le strutture di master e slave sono stati utilizzati due buffer: uno in
|
|
ingresso, identificato dal posto Buffer, uno in uscita identificato dal posto S1\_Send\_Res.
|
|
|
|
\subsection{I colori}
|
|
|
|
Questa rete utilizza due classi di colori: una classe di colori chiamata Master, utilizzata
|
|
per distinguere i tipi di master ${m1, m2, m3}$, e una classe chiamata Slave, utilizzata per
|
|
distinguere i tipi di slave ${ID1,ID2}$.
|
|
Le due classi sono divise in due sottoclassi ciascuna per permettere la differenziazione dei
|
|
tipi di slave.
|
|
L'utilizzo di un domain $MxS = (Master)x(Slave)$ permette di identificare le richieste in base
|
|
ai tipi corrispondenti di Master e Slave.
|
|
Questo dominio \`e utilizzato principalmente per i posti della struttura Slave, per evitare
|
|
di perdere traccia delle richieste una volta che viene chiamata la transizione Fork.
|
|
|
|
\subsection{Fork con Guardia}
|
|
|
|
Sulla transizione Fork \`e stata inserita una guardia che permette lo scatto solo in caso il
|
|
master e lo slave rispettino i requisiti dell'esercizio, nello specifico:
|
|
|
|
\begin{description}
|
|
\item{1.} Se il master appartiene alla sottoclasse $Master_1$ (vale per $m_1,m_3$)
|
|
allora lo slave deve appartenere alla sottoclasse $Slave_1$ ($ID_1$).
|
|
\item{2.} Se il master appartiene alla sottoclasse $Master_2$ (vale per $m_2$)
|
|
allora lo slave deve appartenere alla sottoclasse $Slave_2$ ($ID_2$).
|
|
\end{description}
|
|
|
|
%\centerimage{trim=1cm 10cm 3cm 4cm, clip=true}
|
|
\centerimage{width=\columnwidth}
|
|
{reteF.jpg}{img:reteF}
|
|
{Modello WN della rete F}
|
|
|
|
\subsection{I risultati} \label{ssec:reteE-res}
|
|
|
|
Le tabelle elencano la dimensione dello spazio degli stati al variare del numero di master
|
|
e di slave (marcatura iniziale).
|
|
Il numero di markings aumenta in maniera simile sia nel caso del RG sia nel caso del SRG,
|
|
considerando che l'incremento di $R_1,R_2$ causa un aumento del numero di marking di un
|
|
fattore di circa $3$, mentre l'incremento di $N$ causa un aumento di un fattore $30$.
|
|
Il SRG permette di ridurre il numero di markings a circa la met\`a rispetto al corrispettivo RG,
|
|
seppure la dimensione dello spazio degli stati aumenti in maniera coerente con il RG.
|
|
L'SRG permette inoltre di ottenere tempi di calcolo leggermente minori rispetto all'RG.
|
|
|
|
\begin{table}[h!]
|
|
\centering
|
|
\begin{tabular}{ |p{3cm}||p{3cm}|p{3cm}||p{3cm}| }
|
|
\hline
|
|
\multicolumn{3}{|c|}{Effetto della marcatura iniziale sul numero di markings} \\
|
|
\hline
|
|
N & R1/R2 & Markings RG & Markings SRG \\
|
|
\hline
|
|
1 & 1 & 768 & 432 \\
|
|
1 & 2 & 2560 & 1440\\
|
|
1 & 3 & 5376 & 3024 \\
|
|
2 & 1 & 18720 & 9720 \\
|
|
2 & 2 & 97696 & 50481 \\
|
|
2 & 3 & 267120 & 137376 \\
|
|
3 & 1 & 192000 & 97600 \\
|
|
3 & 2 & 1309440 & 663520 \\
|
|
\hline
|
|
\end{tabular} \\
|
|
\caption{Variazione dello spazio degli stati.}
|
|
\label{tab:reteE}
|
|
\end{table}
|
|
|
|
\subsection{Tipologie di Master}
|
|
|
|
Aumentando le tipologie di master non \`e stato sempre possibile preservare la proporzione
|
|
tra le due sottoclassi, per cui si \`e scelto di mantenere la seguente relazione:
|
|
\begin{description}
|
|
\item $|Master_1| > |Master_2|$
|
|
\end{description}
|
|
|
|
I valori di $N,R_1,R_2$ sono costanti e fissati a $1$, per evidenziare l'effetto
|
|
dell'incremento delle tipologie di master sulla rete. Le tipologie di Slave sono fissate a
|
|
$2$.
|
|
\break
|
|
|
|
Si nota come la crescita delle tipologie di master abbia portato ad un incremento maggiore
|
|
(circa di un fattore $6$) nel caso del RG, mentre il SRG ha un incremento in proporzione
|
|
minore (circa 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 markings} \\
|
|
\hline
|
|
Tipologie Master & Markings RG & Markings SRG \\
|
|
\hline
|
|
3 & 768 & 432 \\
|
|
4 & 3840 & 960 \\
|
|
5 & 20480 & 2880 \\
|
|
6 & 98304 & 5400 \\
|
|
7 & 481520 & 12000 \\
|
|
\hline
|
|
\hline
|
|
\end{tabular} \\
|
|
\caption{Variazione dello spazio degli stati.}
|
|
\label{tab:reteE}
|
|
\end{table}
|
|
%=====================
|
|
|
|
\subsection{Tipologie di Slave}
|
|
|
|
Aumentando le tipologie di Slave si \`e cercato di mantenere la proporzione $|Slave_1| ==
|
|
|Slave_2|$ quando possibile (ossia quando erano presenti un numero pari di slave).
|
|
|
|
Anche in questo caso si \`e scelto di mantenere i valori $N==R_1==R_2==1$ e $|Master| = 3$,
|
|
cambiando solo le tipologie di Slave per evidenziarne l'effetto sullo spazio degli stati.
|
|
|
|
Come visto analizzando la variazione delle tipologie di master, il SRG si dimostra molto
|
|
pi\`u compatto rispetto al RG, mantenendo uno spazio degli stati notevolmente ridotto.
|
|
Si nota infatti come con pi\`u di $5$ tipologie di master il rapporto tra RG e SRG \`e di
|
|
circa un'ordine di grandezza.
|
|
|
|
\break
|
|
|
|
Si nota inoltre come l'aumento delle tipologie di slave non abbia influenzato lo spazio degli
|
|
stati quanto l'aumento delle tipologie di master.
|
|
|
|
\begin{table}[h!]
|
|
\centering
|
|
\begin{tabular}{ |p{3cm}||p{3cm}||p{3cm}| }
|
|
\hline
|
|
\multicolumn{3}{|c|}{Effetto delle tipologie di slave sul numero di markings} \\
|
|
\hline
|
|
Tipologie Slave & Markings RG & Markings SRG \\
|
|
\hline
|
|
2 & 768 & 432 \\
|
|
3 & 2688 & 864 \\
|
|
4 & 7168 & 1440 \\
|
|
5 & 22528 & 2160 \\
|
|
6 & 56320 & 3024 \\
|
|
7 & 163840 & 4032 \\
|
|
8 & 393216 & 5184 \\
|
|
9 & 1081344 & 6480 \\
|
|
\hline
|
|
\hline
|
|
\end{tabular} \\
|
|
\caption{Variazione dello spazio degli stati.}
|
|
\label{tab:reteE}
|
|
\end{table}
|
|
|
|
\subsection{Considerazioni sulla Join}
|
|
|
|
La rete utilizza due classi di colori e un color domain che \`e dato dal prodotto vettoriale
|
|
delle due classi, permettendo cos\i` una differenziazione precisa delle richieste da parte
|
|
dello slave, che le utilizza come una tuple $<m,id>$.
|
|
|
|
Per ottenere una Join tra due processi che non sono stati creati dalla stessa Fork, bisogna
|
|
che siano presenti nei posti Child1, Child2 due sottoprocessi (per posto) che abbiano:
|
|
\begin{description}
|
|
\item{1.} Lo stesso tipo di master $m_i$
|
|
\item{2.} Lo stesso tipo di slave $ID_i$
|
|
\end{description}
|
|
|
|
Questo si verifica solo nel caso in cui vi siano pi\`u master e slave dello stesso tipo,
|
|
ovvero con $N > 1$ e $R_1 > 1 || R_2 > 1$.
|
|
In tutti gli altri casi, le Join sono eseguite solo tra due sottoprocessi figli della stessa
|
|
Fork.
|
|
|
|
\end{document}
|