110 lines
3.9 KiB
TeX
110 lines
3.9 KiB
TeX
\documentclass{article}
|
|
%\usepackage{times}
|
|
|
|
|
|
%\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 PT (C)}
|
|
|
|
|
|
\author{Francesco Galla`, francesco.galla@edu.unito.it}
|
|
|
|
\maketitle
|
|
|
|
|
|
%=========================================================================
|
|
%%%%%%% INTRODUCTION %%%%%%%
|
|
%=========================================================================
|
|
|
|
\section{Rete C} \label{sec:reteC}
|
|
Due master distinti (seppur di uguale struttura). Ad ogni ciclo il master sceglie in modo indipendente di quale dei due slave servirsi.
|
|
%=========================================================================================================
|
|
\subsection{La rete di Petri} \label{ssec:reteC-PN}
|
|
|
|
|
|
La figura rappresenta la rete di Petri P/T del terzo esercizio (rete C).
|
|
I master sono modellati dai posti {M1,M2}\_Richiesta, {M1,M2}\_Attesa, {M1,M2}\_Risultato e dalle transizioni {M1,M2}\_Dispatch, {M1,M2}\_Ottieni\_Risultato, {M1,M2}\_Return.
|
|
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.
|
|
Lo slave di tipo 2 è modellato dai posti S2\_Attesa, S2\_Richieste, S2\_Risultati, S2\_Fine, e dalle transizioni Receive, S2\_Processa, Send, S2\_Return.
|
|
Le richieste dei due master sono processate da due strutture di buffer, che permettono la scelta indipendente degli slave, anche quando essi sono occupati a gestire una richiesta precedente. In particolare, i posti M1\_Req1,M2\_Req1,M1\_Req2,M2\_Req2 sono utilizzati per mantenere in memoria quale slave e` stato scelto per processare le richieste.
|
|
|
|
%\centerimage{trim=1cm 10cm 3cm 4cm, clip=true}
|
|
\centerimage{width=\columnwidth}
|
|
{reteC.jpg}{img:reteC}
|
|
{Modello P/T della rete C}
|
|
|
|
|
|
\subsection{I risultati} \label{ssec:reteC-res}
|
|
|
|
%===================== TEST 2 FMS
|
|
\begin{table}[h!]
|
|
\centering
|
|
\begin{tabular}{ |p{3cm}||p{3cm}|p{3cm}| }
|
|
\hline
|
|
\multicolumn{3}{|c|}{Effetto della marcatura iniziale su stati e archi} \\
|
|
\hline
|
|
N & Stati & Archi\\
|
|
\hline
|
|
1 & 432 & 1248 \\
|
|
2 & 36010 & 184810 \\
|
|
3 & 1208480 & 8364420 \\
|
|
4 & 22583430 & 189277330 \\
|
|
\hline
|
|
\end{tabular} \\
|
|
\caption{Variazione dello spazio degli stati.}
|
|
\label{tab:reteC}
|
|
\end{table}
|
|
%=====================
|
|
|
|
La tabella elenca la dimensione dello spazio degli stati al variare del numero di master e di slave (N*master / N*slave). Si pu\`o osservare come, al variare della marcatura iniziale, il numero di stati e archi del grafo aumenta in modo lineare.
|
|
|
|
\subsection{Considerazioni sulla Join}
|
|
|
|
In questo modello vengono utilizzati due master distinti, per cui si introduce il problema
|
|
della $join$ tra processi figli di due master differenti, nei buffer di uscita delle
|
|
richieste processate dai figli. Per risolvere questo problema, si utilizzano 4 variabili:
|
|
$M1\_Req1$, $M1\_Req2$, $M2\_Req1$, $M2\_Req2$, che tengono traccia delle richieste in attesa dei
|
|
master.
|
|
|
|
\end{document}
|