Introdução à Simulação. Avaliação de Desempenho de Sistemas

Documentos relacionados
Introdução à Simulação. Avaliação de Desempenho de Sistemas

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241

Modelagem e Análise de Sistemas - COS767

Ex: Sistema Tráfego Rodoviário

Estatística e Modelos Probabilísticos - COE241

COMO FUNCIONA A SIMULAÇÃO

COMO FUNCIONA A SIMULAÇÃO

Avaliação Quantitativa de Sistemas

SSC546 Avaliação de Sistemas Computacionais Parte 1 -Aula 6 Sarita Mazzini Bruschi

Simulação de Sistemas

SSC546 Avaliação de Sistemas Computacionais Parte 1 -Aula 3 Sarita Mazzini Bruschi

Avaliação de Desempenho de Sistemas Discretos

Processos Estocásticos aplicados à Sistemas Computacionais

Introdução à Avaliação de Desempenho

Simulação e Modelagem

Aula 9. Estimar grandezas de desempenho de um sistema (métricas).

Análise e Modelagem de Desempenho de Sistemas de Computação. Profa. Jussara M. Almeida 1 o Semestre de 2014

Teoria das Filas aplicadas a Sistemas Computacionais. Aula 20

Avaliação e Desempenho Aula 18

Modelização do Sistema Produtivo Simulação

Simulação de Sistemas. Adaptado de material de Júlio Pereira Machado (AULA 17)

Modelagem e Análise Aula 9

Rede de Computadores II

Avaliação de Desempenho de Sistemas Discretos

Avaliação de Desempenho de Sistemas. Conceitos Básicos de Sistemas e Modelos

Avaliação de Desempenho

SSC643 -Avaliação de Desempenho de Sistemas Computacionais Sarita Mazzini Bruschi

Material baseado nos slides de: Marcos José Santana Regina Helena Carlucci Santana

Aula 5. Como gerar amostras de uma distribuição qualquer a partir de sua CDF e de um gerador de números aleatórios?

6 ESCALONAMENTO DE CPU

Avaliação de Desempenho de Sistemas DCC 074

Introdução à Avaliação de Desempenho

SSC546 -Avaliação de Desempenho Parte 1 Sarita Mazzini Bruschi

Modelagem e Avaliação de Desempenho. Pós Graduação em Engenharia Elétrica - PPGEE Prof. Carlos Marcelo Pedroso 2016

Modelagem Analítica. Profa. Jussara M. Almeida 1 o Semestre de 2011

COMO FUNCIONA A SIMULAÇÃO. Aula 1. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

Gerência de Recursos. Gerência do Processador

Simulação a Eventos Discretos. Fernando Nogueira Simulação 1

Material baseado nos slides de: Marcos José Santana Regina Helena Carlucci Santana

Métodos Numéricos - Notas de Aula

PNV-5005 MODELAGEM E ANÁLISE DE SISTEMAS INTERMODAIS DE TRANSPORTE UTILIZANDO TÉCNICAS DE SIMULAÇÃO

Modelagem e Análise de Sistemas de Computação Aula 20

Equivalência de Fluxos e Modelagem Hierárquica. Profa. Jussara M. Almeida 1 o Semestre de 2014

MODELAGEM E SIMULAÇÃO

SSC546 -Avaliação de Desempenho de Sistemas

Avaliação de Desempenho de Sistemas Discretos

Conceitos de Análise de Desempenho

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

Funções Geradoras de Variáveis Aleatórias. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

Modelação e Simulação de Sistemas - Tópicos Modelação e Simulação de Sistemas - Tópicos - A simulação de sistemas - Modelos de simulação - Propriedade

Fernando Nogueira Simulação 1

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Departamento de Matemática da Universidade de Coimbra 2011/2012 Programação Orientada para os Objectos Projecto 2

Modelos Probabilísticos de Desempenho. Profa. Jussara M. Almeida 1º Semestre de 2014

INE 5101 Simulação Discreta. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

Avaliação de Desempenho de Sistemas Discretos

Avaliação de Desempenho de Sistemas Discretos

Modelagem de Sistemas de Tempo Real. Sérgio Campos

S I M U L A Ç Ã O 84

Como modelar o comportamento de um sistema? MAB-515

Avaliação de Desempenho de Sistemas

Sistemas Distribuídos

-- INSTRUÇÕES Leia com atenção antes de iniciar a sua prova

Processos Estocásticos e Cadeias de Markov Discretas

Introdução à Computação

Análise dos Resultados da Simulação

Simulação de Evento Discreto

Técnicas Avançadas de Programação

Captulo 24: Introduc~ao a Simulac~ao. The best advice to those about to embark on a. famous advice to those about to marry: Don't!

SSC546 Avaliação de Sistemas Computacionais Parte 1 -Aula 4 Sarita Mazzini Bruschi

Na Aula Anterior... Escalonamento de Processos. Nesta Aula. Escalonamento. Comportamento de um Processo. Historicamente...

Proposta de modelos de fonte On/Off para análise de seus impactos em escalonadores FIFO e DRR

Probabilidade e Modelos Probabilísticos

FILAS. Mestrado em Engenharia Elétrica Carlos Marcelo Pedroso 2013

Sistemas Operacionais. Gerência de Processador

SSC510 Arquitetura de Computadores 1ª AULA

O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho

Escola de Engenharia de Lorena EEL/USP Curso de Engenharia de Produção. Teoria da Filas. Prof. Fabrício Maciel Gomes

2. A influência do tamanho da palavra

Análise empírica de algoritmos de ordenação

Sistemas Operacionais Gerenciamento de Processos

Pontifícia Universidade Católica de São Paulo Graduação em Matemática Empresarial

O que é Simulação? Capítulo 1. Prof. Afonso C Medina & Prof. Leonardo Chwif. fonte original de consulta.

Sistemas Operacionais Aula 7

Modelos Probabilísticos Filas M/M/1, M/G/1. Profa. Jussara M. Almeida 1 o Semestre de 2014

Fundamentos de Sistemas Operacionais

FILAS Conceitos Fundamentais. Pós Graduação em Engenharia Elétrica - PPGEE Prof. Carlos Marcelo Pedroso 2016

Estatística e Modelos Probabilísticos - COE241

Conceitos Básicos dos Sistemas de Tempo Real

1. INTRODUÇÃO SIMULAÇÃO DISCRETA OBJETIVO DO CURSO RESPOSTA BANCO E FILIAIS O PROBLEMA DE PLANEJAMENTO DE CAPACIDADE

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

COMPUTADOR. Adão de Melo Neto

ACH Introdução à Estatística Conteúdo Teórico: 12 - Simulação

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Programas de simulação

Ambiente Arena Tutorial. Paulo Cesar F. de Oliveira, BSc, PhD

Modelos de Redes de Filas com Uma Classe (Análise de Valores Médios) Profa. Jussara M. Almeida 2 o Semestre de 2011

Transcrição:

Introdução à Simulação Avaliação de Desempenho de Sistemas

O que é Desempenho? Webster s? The manner in which a mechanism performs. Aurélio: Mil. Conjunto de características ou de possibilidades de atuação de uma aeronave, tais como velocidade de cruzeiro, velocidade de pouso, capacidade de carga, autonomia de vôo, etc.

Medidas de desempenho de um automóvel Velocidade máxima Aceleração (tempo para ir de 0 a 100 km/h) Espaço de frenagem a uma dada velocidade

Medidas de desempenho de sistemas computacionais Vazão/Taxa (Throughput) Taxa na qual os pedidos são atendidos (servidos) pelo sistema. Utilização: Fração do tempo em que o recurso permanece ocupado atendendo os pedidos dos usuários. Tempo de resposta: tempo decorrido entre o pedido e o início/conclusão da realização do serviço.

Medidas de desempenho Velocidade tempo de resposta, vazão e utilização Confiabilidade Probabilidade de erro Intervalo entre erros Disponibilidade Duração da falha Intervalo entre falhas

Técnicas de Avaliação Medição Modelagem Analítica Simulação

Medição Para efetuarmos medições (como as Benchmarks) é preciso termos à disposição ao menos um protótipo do sistema. Normalmente é difícil comparar alternativas.

Modelagem Analítica Teoria das filas Filas associadas a recursos Caracterização: Processo de chegada Processo de atendimento Número de servidores Tamanho máximo da fila Política de atendimento da fila

Modelagem Analítica É uma técnica aproximada Aproxima a realidade por um modelo Se o modelo for simples e a aproximação boa, é possível avaliar facilmente compromissos entre alternativas

Simulação Simulação de eventos discretos Cada evento (ex.: chegada de usuário, término de serviço, etc.) é tratado quando do instante de sua ocorrência. Simula o comportamento de um sistema real Em geral, é possível construir um modelo muito mais próximo da realidade do que com a teoria das filas

Critérios para seleção da técnica de avaliação Critério Modelagem analítica Simulação Medição Estágio Qualquer Qualquer Protótipo Tempo necessário Pouco Médio Variado Ferramentas Analistas Linguagens de Programação Instrumentação Precisão Pouca Moderada Variada Avaliação de Compromissos Fácil Moderada Difícil Custo Baixo Médio Alto Saleability Baixa Média Alta

Simulação Técnica útil para a análise de desempenho de sistemas computacionais. Especialmente: se o sistema não estiver disponível; para prever o desempenho de diversas alternativas; facilidade de efetuar comparações para uma maior variedade de cargas e de ambientes.

Linguagens de Simulação linguagens de simulação necessitam de menos tempo para o desenvolvimento do modelo e facilitam a verificação e análise estatística. linguagens de propósito geral são mais portáteis e possibilitam um maior controle sobre a eficiência e tempo de execução da simulação.

Terminologia Variáveis de estado: definem o estado do sistema. A simulação pode ser continuada a partir do conhecimento das variáveis de estado. Exemplo: comprimento da fila de jobs. Evento: mudança no estado do sistema. Exemplos: chegada de um job; início de uma nova execução; partida do job.

Terminologia Modelo de Tempo Contínuo: o estado do sistema está definido em todos os instantes. Exemplo: Modelo de escalonamento de CPU.

Terminologia Modelo de Tempo Discreto: o estado do sistema está definido apenas em instantes particulares. Exemplo: Número de estudantes que assistem este curso.

Terminologia Modelos de Estado Contínuo e de Estado Discreto: dependendo de se as variáveis de estado são contínuas ou discretas. Exemplo: Tempo gasto estudando uma determinada matéria vs Número de estudantes.

Seleção de uma Linguagem para Simulação Linguagem de simulação Linguagem de propósito geral Extensão de uma linguagem de propósito geral Pacote de simulação

Linguagens de Simulação Economizam tempo de desenvolvimento Recursos embutidos para: avançar o tempo programar eventos manipulação de entidades geração de valores aleatórios coleta de dados estatísticos geração de relatórios Mais tempo para questões específicas do sistema Código modular, bastante legível

Linguagem de Propósito Geral Familiaridade do analista Grande disponibilidade Início imediato Tempo gasto com o desenvolvimento de rotinas para tratamento de eventos e geração de valores aleatórios

Linguagem de Propósito Geral Outras questões: Eficiência Flexibilidade Portabilidade Recomendação: Aprenda pelo menos uma linguagem de simulação.

Extensão de uma linguagem de propósito geral Exemplos: GASP (para FORTRAN) SMPL (para C) SM (para C) CSIM (C e C++) Coleção de rotinas para tratar tarefas de simulação Compromisso entre eficiência, flexibilidade e portabilidade

Pacotes de Simulação Exemplos: QNET4, RESQ, BONeS, NS, OPNET Diálogo de entrada Biblioteca de estruturas de dados, rotinas e algoritmos Grande economia de tempo Às vezes, pouco flexível Simplificação

Tipos de Linguagens de Simulação Linguagens de simulação contínuas: CSMP, DYNAMO Equações diferenciais Usadas em engenharia química Linguagens de simulação de eventos discretos: SIMULA, GPSS Combinadas: SIMSCRIPT e GASP Permitem simulações discretas, contínuas ou combinadas.

Tipos de Simulações Emulação: utilizando hardware ou firmware Exemplos: emulador de terminal, emulador de processador Envolve basicamente questões de projeto de hardware Simulação de Monte Carlo Simulação Dirigida por Traces Simulação de Eventos Discretos

Simulação de Eventos Discretos Redes Ethernet Número de jobs Eventos discretos Estados discretos tempo discreto

Componentes da Simulação de Eventos Discretos Escalonador de Eventos Programa o evento X para o instante T. Congela o evento X durante o intervalo de tempo dt. Cancela um evento X previamente programado. Congela o evento X indefinidamente Programa um evento congelado indefinidamente.

Componentes da Simulação de Eventos Discretos Relógio de Simulação e Mecanismo de Avanço do Tempo abordagem baseada em unidades de tempo abordagem dirigida a eventos Variáveis de Estado do Sistema Global = Número de jobs Local = Tempo de CPU necessário para um dado job

Componentes da Simulação de Eventos Discretos Rotinas associadas aos eventos: Uma para cada evento. Exemplo: chegada de jobs, escalonamento de jobs e partida de jobs Rotinas de Entrada: Obtenção dos parâmetros do modelo Variação dos parâmetros dentro de uma certa faixa. Gerador de Relatórios

Componentes da Simulação de Eventos Discretos Rotinas de Inicialização: Atribui o estado inicial. Inicializa as sementes. Rotinas de Trace: Podem ser ligadas ou desligadas Gerenciamento Dinâmico de Memória: Coleta de Lixo Programa Principal

Algoritmos de Tratamento de Conjunto de Eventos Conjunto de Eventos = Lista ordenada do registro dos eventos futuros Operações Básicas: Inserção de um novo evento Remoção do próximo evento a ser executado Estruturas de Dados: Lista Ligada Ordenada Lista Linear Indexada Fila de Calendários Estruturas em Árvores Heap

Máquina de Simulação Cadeia de Eventos

Cadeia de Eventos Estrutura principal da máquina de simulação É geralmente uma lista dinâmica duplamente encadeada Cada elemento da lista é um evento, contendo: Tempo Simulado Tipo de evento etc.

Cadeia de Eventos Simulador opera da seguinte maneira: Retira o primeiro evento da lista (e apaga); Processa o evento; Gera outro evento e coloca na lista; Atualiza estatísticas; Continua o loop.

Início Loop Lê evento da Cadeia de Eventos Tipo de Evento.Processa Evento.Gera novo Evento.Atualiza Estatísticas.Processa Evento.Gera novo Evento.Atualiza Estatísticas.Processa Evento.Gera novo Evento.Atualiza Estatísticas

Tipos de Eventos Chegada de Cliente Gera evento Request Servidor Calcula tempo de interchegada aleatório (baseado na distribuição apropriada) Gera evento Chegada de Cliente para o tempo calculado

Tipos de Eventos Request Servidor Se Servidor está livre: Atualiza variável de estado para servidor ocupado Calcula tempo de serviço aleatório (baseado na distribuição apropriada) Gera evento Libera (Release) Servidor para o tempo calculado Se Servidor está ocupado: Enfileira o pedido de serviço (incrementa contador da fila)

Tipos de Eventos Libera (Release) Servidor (fim do serviço) Atualiza variável de estado para servidor livre Se Fila não estiver vazia: Gera evento Request Servidor para o tempo simulado atual e coloca no topo da Cadeia de Eventos Decrementa contador da fila

Máquina de Simulação Geração de Estatísticas com o SimRdAb

Obtenção de Estatísticas Geração de tempo simulado (exponencial) Número randômico Tempo de interchegada Tempo de serviço Cálculo de estatísticas da simulação Taxa de chegada de clientes Tamanho médio da fila Tempo médio em fila Tamanho máximo de fila Utilização Taxa de serviço

Geração Tempo Objetivo: gerar um tempo de interchegada ou serviço, baseado em distribuição exponencial, e a partir de uma probabilidade aleatória Estratégia: gerar número μ randômico, entre 0 e 1, que será a probabilidade Calcular o tempo segundo a distribuição exponencial

Geração de Tempo No programa: x 1 = ln(1 switch (tipo) { case 1 : /* Distribuicao exponencial */ t_randon = -((t_proc_medio)*(log(1.-num_alea))); break; λ case 2 : /* Distribuicao uniforme */ t_randon = t_proc_inf+(num_alea*(t_proc_sup-t_proc_inf)); break; μ )

Taxa de Chegada (em fila) Fórmula: Total Clientes / Tempo Total Simulado No programa: taxa_cheg = (tab_file[i].( tab_file[i].n_tot/t_simul); *n_tot é um acumulador, incrementado toda vez que um job entra na fila *t_simul éo Tempo Simulado Total ou Atual

Tamanho Médio da Fila Estratégia: Integrar, no tempo, os tamanhos de fila tomados periodicamente; dividir pelo tempo simulado T Q ( t ) dt Qs= 0 T n Qi ( t i t ) i 1 i = Qs= 1 T Parâmetro Contínuo Parâmetro Discreto

Tamanho Médio de Fila Tam. Fila t

Tamanho Médio de Fila Tam. Fila t

Tamanho Médio de Fila Tam. Fila t

Tamanho Médio de Fila No programa: Cálculo iterativo: (fila->tot_tam_acum) += ((t_simul - fila->t_sim_ant) * (float)fila->n_tam_ant); Impressão do Relatório: // TAM MEDIO FILA taman_med_fil = (tab_file[i].tot_tam_acum/t_simul);

Tempo Médio em Fila Objetivo: Integrar, no tempo, os tamanhos de fila tomados periodicamente; dividir pelo total de clientes que passaram pela fila Estratégia: usar tamanho médio de fila (que já contém a integral) e dividir pela taxa de chegada Qt= n i = 1 Q i ( t T i t i 1) T TotCli

Tempo Médio em Fila Lei de Little Tamanho Médio = Tx. Chegada x Tempo Médio Tempo Médio = Tamanho Médio / Tx. Chegada

Tempo Médio em Fila No programa: tempo_med_fil = (taman_med_fil/taxa_cheg); Tamanho Médio = Tx. Chegada x Tempo Médio Tempo Médio = Tamanho Médio / Tx. Chegada

Tamanho Máximo de Fila Estratégia: coletar tamanho imediato da fila periodicamente; atualizar uma variável, sempre que este tamanho for maior que o armazenado anterior No programa: // incrementa o numero de clientes na fila fila->n_cour++; // checa se o numero atual eh maior que o maximo if(fila->n_cour > fila->n_max) fila->n_max=fila->n_cour;

Utilização Objetivo: calcular utilização Tempo total ocupado/tempo total simulação Estratégia: acumular cada tempo de serviço de cada cliente em uma varíavel dividir, no final, pelo tempo total simulado

Utilização No programa: Cálculo iterativo: //acrescenta o tempo do cliente atual no tempo ocupado total serv->t_tot_ocupado += serv->t_ocupado; Impressão do Relatório: util=( tab_serv[i].t_tot_ocupado/t_simul );

Taxa de Serviço Objetivo: calcular taxa de serviço do servidor Total de Clientes servidos/tempo total ocupado No programa: // TEMPO DE SERVICO tx_serv=(num_cli_serv/(t_simul*util)); TotCli TotTime TotBusy 1 TotTime