Modelagem e Simulação
CCMP0057
www.univasf.edu.br/~brauliro.leal ccmp0057@gmail.com
Prof. Brauliro Gonçalves Leal
2021
Estude
Estude os Capítulos
1, 2, 3, 4, 5, 6, 7, 8 e 9
Modelo Computacional de Redes de Sistemas de Filas
Pacote r 0 i 0 r0.ic0 = X(r0.λ) r0.cpf0 = r0.ic0 r0.eps0 = r0.cpf0 r0.sps0 = r0.eps0 + X(r0.μ) r0.is0 = r0.sps0ri.ic0 = ri-1.is0
ri.cpf0 = ri.ic0 ri.eps0 = ri.cpf0 ri.sps0 = ri.eps0 + X(r0.μ) ri.is0 = ri.sps0 p r0.icp = X(r0.λ) r0.cpfp = r0.icp + r0.cpfp-1 r0.epsp = r0.cpfp > r0.spsp-1 ? r0.cpfp : r0.spsp-1 r0.spsp = r0.epsp + X(r0.μ) r0.isp = r0.spsp + r0.spsp-1
ri.icp = ri-1.isp
ri.cpfp = ri.icp + ri.cpfp-1 ri.epsp = ri.cpfp > ri.spsp-1 ? ri.cpfp : rj.spsp-1 ri.spsp = ri.epsp + = X(ri.μ) ri.isp = ri.spsp + ri.spsp-1 Configuração das RSF M/M/1: N, SF = [0, 1, 2, …, s, …], λ0, μ = [μ0, μ1, μ2, …, μs, …], r = [r0, r1, r2, …, ri, …], ri ∊ SF
for( int p = 1; p < N; p++ )
for( int i = 0; i < r.size(); i++ )
Empacota(r[i]);
Modelo Computacional de Redes de Sistemas de Filas
clPacote
ic
cpf
eps
sps
is
nf
clSF
l
m
clPacote Pacote[]
clRSF
r[]
clSF SF[]
X(p)
Iniciar( l, m[], r[] )
Empacotar(i)
Simular(N)
Nf()
Estatistica()
Modelo Computacional de Redes de Sistemas de Filas
clPacote pacotes dos SF com as variáveis de estado ic, cpf, eps, sps, is e nf
clSF são os SF da RSF, seus com os parâmetros l e m, e o vetor Pacote
clRSF
representa a RSF, seus métodos e os vetores r e SF:
● Iniciar – configura a RSF e os primeiros pacotes dos SF ● X – calcula os valores de ic e ts dos pacotes simulados ● Empacotar – insere um novo Pacote no i-ésimo SF
Modelo Computacional de Redes de Sistemas de Filas
Nome Descrição
Entradas
N Número de pacotes
l Taxa de chegadas na RSF
m Vetor de taxas de serviço dos SF
r Ordem de visitas dos pacotes
Variáveis
ic Intervalo entre chegadas de pacotes na Fila is Intervalo entre saídas de pacotes do Servidor
Eventos
cpf Tempo da chegada de pacotes na Fila eps Tempo da chegada de pacotes no Servidor sps Tempo da saída de pacotes no Servidor
Estatísticas
nf Comprimento da Fila
tsf Tempo no Sistema de Fila
U Utilização do Servidor
Modelo Computacional de Redes de Sistemas de Filas
class clPacote{ public:
int nf;
double ic, cpf, eps, sps, is; }; class clSF{ public: double l, m; vector<clPacote> Pacote; }; class clRSF{ private: vector<int> r; vector<clSF> SF; double X ( double ); void Empacotar( int ); void Nf ( void ); public:
clRSF ( void );
void Iniciar ( double, vector<double>, vector<int> ); void Simular ( int );
Modelo Computacional de Redes de Sistemas de Filas
clRSF::clRSF( void ){ srand(time(nullptr)); } double clRSF::X( double p ){ double u = (rand()+1.0)/(RAND_MAX+2.0); // u in (0,1) return -p*log(u); }int main( void ){
int N = 5000; vector<int> r = { 0, 1, 2, 3, 0 }; double l = 500; vector<double> m = { 600, 700, 800, 900 }; clRSF RSF; RSF.Iniciar(l,m,r); RSF.Simular(N); return 0; }
Modelo Computacional de Redes de Sistemas de Filas
class clPacote{ public:
int nf;
double ic, cpf, eps, sps, is; }; class clSF{ public: double l, m; vector<clPacote> Pacote; };
void clRSF::Iniciar( double l, vector<double> m, vector<int> r ){ this->r = r;
SF.clear();
for( size_t s = 0; s < m.size(); s++ ){ clSF X; X.l = l; X.m = m[s]; X.Pacote.clear(); SF.push_back(X); }
for( size_t s = 0; s < r.size(); s++ ) // p = 0 SF[r[s]].Pacote.push_back({0,0,0,0,0,0,0}); }
Modelo Computacional de Redes de Sistemas de Filas
void clRSF::Simular( int N ){ for( int p = 1; p < N; p++ )
for( size_t i = 0; i < r.size(); i++ ) Empacotar(i);
}
int main( void ){
int N = 5000; vector<int> r = { 0, 1, 2, 3, 0 }; double l = 500; vector<double> m = { 600, 700, 800, 900 }; clRSF RSF; RSF.Iniciar(l,m,r); RSF.Simular(N); return 0; }
Modelo Computacional de Redes de Sistemas de Filas
class clPacote{ public:
int nf;
double ic, cpf, eps, sps, is; };
void clRSF::Empacotar( int i ){ clPacote P, Pa;
if( i > 0 ){
Pa = SF[r[i-1]].Pacote[ SF[r[i-1]].Pacote.size()-1 ]; P.ic = Pa.is;
}
else P.ic = X( SF[r[i]].l );
Pa = SF[r[i]].Pacote[ SF[r[i]].Pacote.size()-1 ]; P.cpf = P.ic + Pa.cpf;
P.eps = P.cpf > Pa.sps ? P.cpf : Pa.sps; P.sps = P.eps + X(SF[r[i]].m);
P.is = P.sps - Pa.sps;
SF[r[i]].Pacote.push_back(P); }
Modelo Computacional de Redes de Sistemas de Filas
class clPacote{ public:
int nf;
double ic, cpf, eps, sps, is; };
void clRSF::Nf( void ){
for( size_t s = 0; s < SF.size(); s++ )
for( size_t p = 1; p < SF[s].Pacote.size(); p++ ){ size_t c = p-1;
SF[s].Pacote[p].nf = 0;
while( SF[s].Pacote[p].cpf < SF[s].Pacote[c].sps ){ SF[s].Pacote[p].nf += 1;
c--; }
} }
Sistema Cliente/Servidor Web em uma Camada Física
●
os SF deste sistema são M/M/1
●
sequência dos pacotes: 0 → 1, 1 → 2, 2 →1 e 1→ 0, r = [ 0, 1, 2, 1, 0 ]
●número de pacotes, N (definido pelo usuário)
●
l
●
m = [ m0, m1, m2 ]
Seja a rede C/S com demanda de 5 milhões de pacotes por hora, considere pacotes de 2 MB
São 3 SF com r = [0, 1, 2, 1, 0]. Com uma demanda de 5 milhões de pacotes por hora, tem-se l = 5E6/3600 = 1388,8 p/s.
Cálculo de m = [m0, m1, m2] para pacotes de 2 MB: Logo m = [1812.5, 2250, 4000].
Os parâmetros desta RSF, para uma simulação de 5000 pacotes são:
r = [0, 1, 2, 1, 0], N = 5000, l = 1388.8 e m = [1812.5, 2250, 4000].
Modelo Computacional de Redes de Sistemas de Filas
Componente n Modelo Vazão
F 0 Sophos XG 210 29 Gbps
S 1 US-16-150W 36 Gbps
Ferramentas para Simulação de Sistema Computacionais
1.SF.MM1.cpp
2.SF.MM1-ML-RI.cpp
3.RSF.MM1.cpp
4.RSF-MM1-ML-RI.cpp
Fragata
As fragatas são aves de grande porte, com asas compridas e estreitas que representam a menor superfície de asa por unidade de peso do mundo das aves. Têm cerca de 1 metro de comprimento, mais de dois de envergadura e uma cauda longa e bifurcada. As fragatas não conseguem andar em terra, nadar nem levantar voo de uma superfície plana. São no entanto aves extremamente rápidas em voo sobre o mar ou sobre outras aves.