• Nenhum resultado encontrado

Simulação de Sistemas

N/A
N/A
Protected

Academic year: 2021

Share "Simulação de Sistemas"

Copied!
32
0
0

Texto

(1)

Simula¸

ao de Sistemas

Daniel Sadoc Menasche e Paulo Aguiar

(2)

2/1

Como analisar um sistema?

modelo simulador sistema emulador solucão analítica medidas de interesse D. Menasche e P. Aguiar

(3)

Por que simular?

Quando resolver analiticamente? modelo simples suficiente identificar trade-offs Quando simular?

enteder o comportamento de sistemas complexos implementar sistema real custoso

Quando emular? `

as vezes, emular ´e mais f´acil que simular (e.g., BitTorrent no Planetlab)

(4)

Modelagem

Como criar um modelo? Ingredientes chaves,

vari´aveis de estado (definem estado do sistema)

eventos (definem como sistema transiciona de um estado para outro)

O que fazer com um modelo?

obter resultados transientes ou estado estacion´ario

e.g., valor esperado do n´umero de clientes em fila, distribui¸c˜ao do tempo de espera, . . .

(5)

Como resolver um modelo?

Modelo pode ser resolvido

analiticamente (e.g., transformada de Laplace, cadeia de Markov, . . .)

simula¸c˜ao Exemplos

tempo de dura¸c˜ao de um leil˜ao

resolvido analiticamente na lista 2 tamb´em pode ser resolvido via simula¸c˜ao

fila M/M/1 com cat´astrofes

a ser analisado a seguir, via simula¸c˜ao

(6)

Como criar um modelo?

Identificar

vari´aveis de estado eventos

(7)

Primeira etapa: Identificando vari´

aveis de estado

O que s˜ao vari´aveis de estado?

que informa¸c˜ao preciso armazenar para ter uma “fotografia” do sistema?

qual ´e o dom´ınimo de minhas vari´aveis de estado?

todas as vari´aveis tem dom´ınio finito: espa¸co de estados finito alguma vari´avel tem dom´ınio infinito: espa¸co de estados infinito

(8)

Identificando vari´

aveis de estado: Exemplos

modelo (descri¸c˜ao): (vari´aveis de estado), descri¸c˜ao [dom´ınio] M/M/1 (fila com 1 servidor): (X ), n´umero de usu´arios no sistema [dom´ınio: {0, 1, . . .}]

M/M/1/K (fila com 1 servidor e capacidade K ): (X ), n´umero de usu´arios no sistema [dom´ınio: {0, 1, . . . , K }]

M/M/1/K com falhas (fila com 1 servidor que pode falhar e capacidade K ): (X , S ), n´umero de usu´arios no sistema e estado do servidor [dom´ınio: {0, 1, . . . , K }; {ativo, falha}]

(9)

Segunda etapa: Identificando eventos

O que s˜ao eventos?

eventos geram transi¸c˜oes entre estados eventos podem ocorrer

a certa taxa, independentemente do estado do sistema ou podem ser ativados ou desativados em decorrˆencia da execu¸c˜ao de outros eventos

Eventos s˜ao armazenados em uma lista de eventos

tempo evento tipo evento dados auxiliares do evento tempo evento tipo evento dados auxiliares do evento

(10)

Identificando eventos: Exemplos

λ µ λ µ ativo falha γ σ

(11)

Terceira etapa: Identificando a¸

oes a serem

executadas

Quando um evento ocorre, a¸c˜oes precisam ser executadas A¸c˜oes podem ser

atualiza¸c˜oes de vari´aveis de estado cria¸c˜ao de novos eventos

(12)

Identificando a¸

oes de eventos: Exemplos

λ µ λ µ ativo falha γ σ ao sair um cliente, 1) decrementar X 2) agendar nova saída ao chegar um cliente,

1) incrementar X 2) agendar nova chegada

ao falhar o servidor, 1) atualizar estado servidor 2) interromper o serviço 3) agendar conserto

(13)

Plano de dados e de controle

Plano de dados

lista eventos L vari´aveis de estado

Plano de controle

1 inicializar vari´aveis de estado 2 inicializar lista de eventos 3 enquanto L 6= ∅

remover evento e da lista L tratar e

(14)

Exemplo 1: M/M/1

0 1 2 3 λ µ λ λ λ λ µ µ µ µ

(15)

Exemplo 1: M/M/1

Plano de dados

lista eventos L

vari´aveis de estado: N, n´umero de clientes na fila

Plano de controle

1 inicializar vari´aveis de estado, N = 0

2 inicializar lista de eventos: sortear tempo da pr´oxima chegada

de cliente e incluir evento na lista L

3 enquanto L 6= ∅

remover evento e da lista L tratar e, caso

chegada: N ← N + 1, sortear tempo da pr´oxima chegada e incluir evento na lista; se N = 1 sortear tempo pr´oxima partida e incluir evento na lista

(16)

Exemplo 1: M/M/1 com cat´

astrofe

0 1 2 3 λ λ λ λ µ µ µ µ λ µ γ γ γ

(17)

Exemplo 2: M/M/1 com cat´

astrofes

Plano de controle

1 inicializar vari´aveis de estado, N = 0

2 inicializar lista de eventos: sortear tempo da pr´oxima chegada

de cliente e incluir evento na lista L; sortear tempo da pr´oxima cat´astrofe e incluir evento na lista L

3 enquanto L 6= ∅

remover evento e da lista L tratar e, caso

chegada: N ← N + 1, sortear tempo da pr´oxima chegada e incluir evento na lista; se N = 1, sortear tempo da pr´oxima partida e incluir evento na lista;

partida: N ← N − 1, se N > 0 sortear tempo da pr´oxima partida e incluir evento na lista

cat´astrofe: N ← 0, remover evento de servi¸co da lista caso ∃; sortear tempo da pr´oxima cat´astrofe e incluir evento na lista

(18)

alculo das medidas de interesse

o sistema ´e simulado por n rodadas considere a fila M/M/1

seja Wik o tempo de espera do k-´esimo freguˆes durante a

i -´esima rodada

na rodada s˜ao servidos K fregueses

o tempo m´edio de espera na rodada i ´e Wi

Wi =

PK

k=0Wik

(19)

Esqueleto de simulador

Plano de dados

lista eventos L vari´aveis de estado

Plano de controle

1 inicializar vari´aveis de estado 2 inicializar lista de eventos

3 enquanto L 6= ∅ e crit´erio de parada n˜ao satisfeito remover evento e da lista L

(20)

Quando parar?

Crit´erios de parada de rodada de simula¸c˜ao n´umero total de eventos

n´umero de servi¸cos

tempo de simula¸c˜ao (evitar)

N˜ao adotar “tempo real” da m´aquina como crit´erio de parada (e.g., rodar a simula¸c˜ao por 5 minutos)

(21)

Como calcular m´

etricas de interesse? Abordagem

integrada

C´alculo direto no simulador o n´umero m´edio de clientes ´e

N = ´area tempo N tempo area t t N0 N1

(22)

Como calcular m´

etricas de interesse? Abordagem

integrada

N tempo area t0 t1 N0 N1

para calcular a ´area

1 seja A a ´area acumulada

2 seja t o tempo atual de simula¸ao 3 inicialize A = 0, t0= 0, N0= 0

(23)

Como calcular m´

etricas de interesse? Abordagem

integrada

Seja T o tempo m´edio de permanˆencia de um usu´ario no sistema Como calcular T ?

λ ´e a taxa de chegada de clientes

λ = n´umero chegadas

tempo de simula¸c˜ao (2)

N ´e o n´umero m´edio de clientes servidos (calculado no slide anterior)

resultado de Little

N = λT (3)

(24)

Como calcular m´

etricas de interesse? Abordagem

desacoplada

C´alculo com programa de gera¸c˜ao de estat´ısticas a parte

simulador com printf´s

gerador de estatísticas

(25)

Transiente versus estado estacion´

ario

transiente equilíbrio

tempo N

(26)

Transiente versus estado estacion´

ario

Aguns sistemas nunca entram em estado estacion´ario exemplos?

(27)

Considerando m´

ultiplas rodadas: batch versus

replicativo

(28)

Esqueleto de simulador

Plano de controle

1 para cada rodada i , 1 ≤ i ≤ N 1 inicializar vari´aveis de estado 2 inicializar lista de eventos

3 enquanto L 6= ∅ e crit´erio de parada n˜ao satisfeito remover evento e da lista L

tratar e 4 obter Xi 2 µ =ˆ PN i =1Xi/N 3 σˆ2 =PN i =1 (Xi−ˆµ)2 N−1

(29)

Considera¸

oes finais sobre determina¸

ao do n´

umero

de rodadas

Seja N o n´umero de rodadas. Recordando, ˆ µ =PN i =1Xi/N ˆ σ2 =PN i =1 (Xi−ˆµ)2 N−1 intervalo de confian¸ca 2 × 1, 96ˆσ √ N (5)

O n´umero de rodadas pode ser definido arbitrariamente (e.g., N = 10)

usando regra (e.g., gerar novas rodadas at´e que intervalo de confian¸ca < 10% ˆµ)

Condi¸c˜ao de parada

2 × 1, 96ˆσ

(30)

Tempo De Ocorrˆ

encia Dos Eventos

Sobre o sorteio dos tempos dos eventos: antes de introduzir-se evento na lista,

sortea-se o intervalo de tempo at´e a ocorrˆencia do evento soma-se o valor sorteado ao tempo atual, e obtem-se o tempo t

(31)

etricas de Interesse I

As m´etricas de interesse se dividem em

m´etricas de tempo: m´etricas calculadas diretamente (e.g., m´edia do tempo de download)

m´etricas de quantidade: m´etricas calculadas indiretametne (´area/tempo)

(32)

etricas de Interesse II

Sobre a simula¸c˜ao batch

clientes que permanecem entre uma rodada e outra mant´em sistema em equil´ıbrio

os clientes no sistema que permanecem entre uma rodada e a outra s˜ao considerados no c´alculo de m´etricas de

quantidade (´area de baixo da curva N × t)

eles n˜ao s˜ao considerados para c´alculo da taxa de chegada, ou m´etricas de tempo (e.g., tempo m´edio de permanˆencia de usu´arios no sistema)

Referências

Documentos relacionados

Assim sendo, na prática clínica, o diagnóstico de pancreatite deve ser feito através dos sinais clínicos e exame físico completo do paciente em conjunto com os

Os roedores (Rattus norvergicus, Rattus rattus e Mus musculus) são os principais responsáveis pela contaminação do ambiente por leptospiras, pois são portadores

A Seqüência de Três Níveis oferece um quadro mais amplo de uma situação e pode ser útil para fazer perguntas a respeito da situação de pessoas que não estão fisicamente

No entanto, expressões de identidade não são banidas da linguagem com sentido apenas porque a identidade não é uma relação objetiva, mas porque enunciados de identi- dade

Mestrado em: Nutrição Humana ou Nutrição Clínica ou Saúde Coletiva ou Ciências da Saúde ou Ciências ou Saúde ou Alimentos e Nutrição e Desenvolvimento na

¢ll', ™pe• oÙ m£qon œrga qalassopÒrwn ¡li»wn ka• buq…hj oÙk o‧da dolorrafšoj dÒlon ¥grhj, Leukoqšhj œce dîma baqÚrroon, e„sÒke pÒntou ka• s ka•

c) Se o juiz não tiver providenciado pela marcação mediante acordo prévio com os mandatários judiciais, nos termos do artigo 155.º, e faltar algum dos advogados; Muito embora

Este búrguer é um mix fantástico de todos os sabores mexicanos, feito de feijão preto, não muito picante, mas estás à vontade para pedir a versão extra picante, irás ganhar