Avaliação de Desempenho de Sistemas Computacionais 7a. Aula Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de.

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Sistemas
Advertisements

Programação em Java Prof. Maurício Braga
Simulação de Sistemas Antonio J. Netto AULA1.
Introdução a Algoritmos
Técnicas de Simulação e Simulação Aplicada
ETAPAS DE ESTUDO EM P.O. Definição e Formulação do Problema
APSOO Aula 05.
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Teste de Software.
Engenharia de Software
SAD - SISTEMA DE APOIO À DECISÃO Prof. Wagner Andrade
Metodologia de Desenvolvimento de Software
Modelagem e simulação de sistemas
Diretrizes para Desenvolvimento do Projeto
Sistemas Operacionais Planejamento de Experimento
Avaliação de Sistemas Operacionais
Avaliação de Desempenho 9a. Aula
Avaliação de Desempenho de Sistemas Computacionais
Avaliação de Desempenho
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos José
Avaliação de Desempenho Planejamento de Experimentos 2 Aula 2 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de.
Avaliação de Desempenho de Sistemas Operacionais
Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos José
Avaliação de Desempenho
Avaliação de Desempenho Planejamento de Experimentos 1
Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos José
Avaliação de Desempenho de Sistemas Computacionais
Avaliação de Desempenho
Avaliação de Desempenho Introdução Aula 1 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de Ciências Matemáticas.
Avaliação de Desempenho Introdução Aula 1 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de Ciências Matemáticas.
Simulação e Modelagem de Sistemas
Prof.Sofia Mara de Souza AULA 4
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Prof. MSc Sofia Mara de Souza AULA3
Prof. MSc Sofia Mara de Souza AULA6
COMO FUNCIONA A SIMULAÇÃO
Solução: SIMULAÇÃO Sistemas Complexos
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
TSDD Teste de segurança durante o desenvolvimento.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Estrutura de decisão e repetição em JAVA
Protocolo CMB em simulação distribuída
JAVA: Conceitos Iniciais
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
O que é Simulação? Capítulo 1 Páginas 3-23 Prof. Afonso C Medina
COMO FUNCIONA A SIMULAÇÃO
Avaliação de Desempenho
Dimensionamento de Corridas e Análise de Resultados
Análise e Projeto de Sistemas
Introdução à Simulação
Avaliação de Desempenho Simulação
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Programação de PIC em C Exposição das funções básicas para
Gestão de defeitos.
MSCC - Introdução Baseado no capítulo 1 do livro Performance Evalution of Computer and Communication Systems, de Jean-Yves Le Boudec (EPFL)
Engenharia de Software
Simulação de fluxos de tráfego
Capítulo 9: SAD orientado a Modelo
Abordagem Sistemática Guilherme Amaral Avelino Avaliação e Controle de Sistemas de Informação.
Engenharia de Software
Professora Michelle Luz
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
Apresentação Leonardo Brussolo de Paula
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
CMMI Capability Maturity Model Integration
Transcrição da apresentação:

Avaliação de Desempenho de Sistemas Computacionais 7a. Aula Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Sarita Mazzini Bruschi Slides de: Marcos José Santana Regina Helena Carlucci Santana Simulação de Sistemas Computacionais

Técnicas de Modelagem Técnicas de Avaliação de desempenho Modelo Solução Métodos Analíticos Simulação Modelagem

Soluções para o Modelo Uso preferencial das técnicas de modelagem Solução por Simulação

Soluções para o Modelo Solução por Simulação Modelos de simulação são programas de computador nos quais a operação de um sistema e sua carga são descritas utilizando- se algoritmos apropriados.

Solução por Simulação Simulação - o que é? –construção de um programa computacional que implemente um modelo; –o modelo é suposto ser uma representação válida do sistema em estudo.

Simulação - Utilização Criação de ambientes virtuais Avaliação de desempenho de sistemas complexos

Ambientes Virtuais Distribuídos Distributed Interactive Simulation (DIS) – Versão 1.0 – padrão IEEE 1278 –Padrão de protocolo de simulação que garante a consistência entre diferentes simulações e permite simuladores heterogêneos serem conectados SIMNET (SIMulator NETworking) – DARPA (Defense Advanced Research Projects Agency) HLA (High Level Architecture) – reuso e interoperabilidade

Simulação - Ambientes Virtuais Análise Comportamental Jogos Simuladores

Simulação - Avaliação de Desempenho Exemplo: Simulação de um ambiente que faz escalonamento de processos considerando a potência computacional e ociosidade das máquinas Pode-se avaliar: –Adequabilidade de um índice de carga –Utilização de diferentes arquiteturas –Utilização de diferentes políticas de escalonamento

Máquina nMáquina 2Máquina 1

Técnicas de Simulação

Tipos de Simulação Discreta X Contínua Discreta - variáveis dependentes variam discretamente em pontos específicos do tempo simulado (tempo de evento) Contínua - variáveis dependentes podem variar continuamente ao longo do tempo simulado Tempo de Evento Tem po Variáve l Depend ente Variável Depende nte Tem po Sistemas Computacionais Simulação Discreta

Tipos de Simulação Processos X Eventos X Atividade

Tipos de Simulação Simulação Orientada a Evento Simples de ser implementada Modelos complexos -> representação complexa Simulação orientada a Processos Ambiente de simulação complexo Maior clareza no programa Simulação orientada a Atividades Difícil de ser implementada

Tipos de Simulação Tipos de Dados de Entrada 1.Estocásticos Dados Probabilísticos Amostragem baseada em Distribuições que modelam os dados 2. Determinísticos Conjunto fixo de dados Ex. Traces

Tipos de Simulação Simulações Estocásticas Dados de entrada e/ou parâmetros do modelo são probabilísticos Custos do Planejamento Estatístico –warm-up –usar corretamente os números aleatórios –cálculo de intervalos de confiança –Etc.

Fases de uma Simulação 1.estudo do sistema e definição dos objetivos; 2.construção do modelo; 3.determinação dos dados de entrada e saída; 4.tradução do modelo; 5.verificação do programa de simulação; 6.validação do programa (modelo) de simulação; 7.experimentação; 8.análise dos resultados; 9.documentação.

Solução por Simulação

Fases de uma Simulação 1.estudo do sistema e definição dos objetivos; 2.construção do modelo; 3.determinação dos dados de entrada e saída; 4.tradução do modelo; 5.verificação do programa de simulação; 6.validação do modelo de simulação; 7.experimentação; 8.análise dos resultados; 9.documentação.

Desenvolvimento de simulação Conhecimentos necessários para o desenvolvimento de uma simulação seqüencial –Modelagem –Programação / Linguagens para simulação –Probabilidade e estatística para análise dos resultados

Software para simulação Linguagens de programação de uso geral –Construção do ambiente e do programa Linguagens de simulação –Aprendizado de novas linguagens –Oferece suporte para a implementação da simulação –Exemplos SIMSCRIPT (eventos) GPSS, SIMULA (processos) Tradução do modelo

Software para simulação Extensões funcionais –Uso de linguagens conhecidas –Implementa o ambiente –Disponibiliza os recursos da linguagem hospederia –Exemplos: SMPL, SIMPACK (eventos) Pacotes de uso específico –Voltados a um ou mais domínios de aplicação –Pouco flexíveis Tradução do modelo

SoftwareARENAOPNET Modeler QueGAUS S PROVISAWorkFlow Analyzer Proprietário Systems Modeling Corporation MIL 3, Inc. Aptech Systems, Inc. AT&T Meta Software Corp. Aplicações Típicas Ferramenta de Simulação geral, molda- -se a muitas aplicações diferentes. Modelagem de protocolos de comunicaçã o de redes. Sistemas de filas. Manufatur a com capacidad e finita de escalona- mento Melhorias de processos de negócios Plataformas PCs (DOS) e Estações (UNIX) DEC-Alpha, HP-UX, IBM, SUN IBM PC, SUN, IBM RISC. IBM PC, SUN, HP. IBM, MAC, SUN. Preço (U$) Versão Padrão Contato com o vendedor Contato com o vendedor Exemplos de Pacotes de Simulação

Software para simulação Ambientes para Simulação Automáticos –Facilitam a elaboração de programas de simulação –Pouco conhecimento de simulação ou programação –Usuário deve conhecer as técnicas de modelagem –Geram o programa automaticamente –Oferecem ferramentas que orientam o usuário na descrição, coleta de dados e análise de resultados Tradução do modelo

Depende da Abordagem escolhida Exemplo Considere o atendimento a clientes, por caixas de um banco Ao chegar ao banco, o cliente: 1.Entra na fila e espera sua vez de ser atendido 2.Após terminar suas operações no caixa, o cliente deixa a agência bancária. Desenvolvimento do Programa

Depende da Abordagem escolhida 1. Processos Desenvolvimento de um processo para cada recurso Ativação de todos os processos concorrentemente Problema: Sincronismo entre os processos Desenvolvimento do Programa

Processo Cliente Se o caixa está desocupado então Torne o estado do caixa ocupado O cliente ocupa o caixa pelo tempo de atendimento (escalone processo para tempo_corrente + tempo_atendimento) Torne o estado do caixa desocupado O cliente parte do sistema Senão O cliente entra na fila de espera Simulação Orientada a Processo

Processo Chegada de Clientes Indique chegada de novo cliente Escalone processo para tempo_corrente + tempo_entre_chegadas Programa de simulação executa concorrentemente vários processos Cliente: –Chegam segundo uma distribuição de probabilidade, –Requisitam serviços, –Deixam o sistema Simulação Orientada a Processo

Depende da Abordagem escolhida 2. Atividade Loop verificando a cada pulso de clock se existe atividade a ser executada Sobrecarga de processamento muito alta Inviável por problemas de desempenho Desenvolvimento do Programa

Atividades: chegada de um cliente término de atendimento Simulação Orientada a Atividade

Início tempo de simulação = 1 Enquanto não fim de simulação faça Verificar o conjunto de atividades Se chegada de cliente então Processa chegada Se término de atendimento então Processa término tempo de simulação =tempo de simulação + 1 Imprima Estatísticas Simulação Orientada a Atividade

Depende da Abordagem escolhida 3. Eventos Define-se uma lista de eventos futuros (LEF) Todos os eventos a serem executados devem estar nessa lista em ordem de time stamp Dentro de um loop, o próximo evento é retirado da lista, executado e são colocados na lista eventos ativados pela execução Desenvolvimento do Programa

Mudanças de estado no sistema ocorrem devido aos seguintes eventos: Um cliente chega para pagar suas contas Um cliente já foi atendido por um caixa e parte do sistema. Simulação Orientada a Eventos

Evento Chegada de Cliente Escalone a próxima chegada Se o caixa está ocupado então Aumente o número de clientes na fila Senão Torne o estado do caixa ocupado Escalone o fim de atendimento para tempo_corrente +tempo_atendimento Simulação Orientada a Eventos

Evento Término de Atendimento Se existe algum cliente na fila então Retire um cliente da fila para atendimento Escalone o fim de atendimento para tempo_corrente +tempo_atendimento Senão Torne o estado do caixa desocupado Simulação Orientada a Eventos

Escalone a primeira chegada Selecione o primeiro evento Avance o tempo de simulação para o tempo de ocorrência do evento Se final de simulação então Imprima estatísticas Senão Se evento = Chegada de Cliente então Trata chegada de Cliente Senão Trata término de atendimento Simulação Orientada a Eventos

Depende da Abordagem escolhida Abordagem mais utilizada para simulação de sistemas computacionais: 1.Eventos Implementação mais fácil 2.Processos Sistemas complexos geram programas mais claros Desenvolvimento do Programa

Simulação - Exemplo Controle de tráfego aéreo Simulação orientada a eventos: chegada do avião escalona pouso escalona partida

Simulação - Exemplo chegada 8:00 partida 9:15 pouso 8:05 chegada 9:30 schedules Tempo da simulação Evento processado Evento corrente Evento não processado schedules Eventos não processados são armazenados em uma lista de eventos futuros (LEF) Eventos são processados seguindo a ordem de time stamp

Simulação - Exemplo Aplicação variáveis de estado código modelando o comportamento do sistema entrada e saída (interface com o usuário) Simulação Gerencia a lista de eventos Avança o tempo da simulação Chamadas para escalonamento dos eventos Chamadas para gerenciamento dos eventos Modelo do sistema físico Independe da aplicação

Simulação - Exemplo Variáveis de estado Integer: NoAr; Integer: NaTerra; Procedimentos para gerenciamento dos eventos Aplicação Evento Chegada { … } Evento Pouso { … } Evento Partida { … } Lista de Eventos Futuros (LEF) 9:00 9:16 10:10 Agora = 8:45 Simulação Laço de processamento dos eventos Enquanto (simulação não é encerrada) E = evento com menor time stamp na LEF Retire E da LEF Agora := time stamp de E chamada ao manipulador do procedimento

Simulação - Exemplo Fila M/M/1 Eventos: 1.Chegada 2.Início atendimento 3.Final do atendimento Programa em SMPL Chegada dos Processos Partida dos Processos Fila de Espera de Processos Processador Centro de Serviço

/* */ #include #include "smpl.h" #include "rand.h" main() { /* definicoes */ float Te = 10000; int Event = 1, Customer = 1; real Ta1 = 10, Ts1 = 10; int Server1; FILE *p, *saida; saida = fopen(saida.out","w"); if ((p = sendto(saida)) == NULL) printf("Erro na saida\n"); /* prepara o sistema de simulacao e da nome ao modelo */ smpl(0," Exemplo M/M/1"); /* cria e da nome as facilidades */ Server1 = facility("Servidor1",1); /* escalona a chegada do primeiro cliente */ schedule(1,0, Customer);

while ( (time() < Te) ) { cause(&Event,&Customer); switch(Event) { case 1: schedule(2,0.0,Customer); schedule(1,expntl(Ta1),Customer); break; case 2: if (request(Server1,Customer,0) == 0) schedule(3,expntl(Ts1),Customer); break; case 3: release(Server1, Customer); break; } /* gera o relatorio da simulacao */ report(); fclose(saida); } /* */

Exemplo de Simulação

Modelo da arquitetura de von Neumann alterado (2 processadores)

Exemplo de Simulação Modelo da arquitetura de von Neumann alterado (2 processadores)

Fases de uma Simulação 1.estudo do sistema e definição dos objetivos; 2.construção do modelo; 3.determinação dos dados de entrada e saída; 4.tradução do modelo; 5.verificação do programa de simulação; 6.validação do modelo de simulação; 7.experimentação; 8.análise dos resultados; 9.documentação.

Validação de uma Simulação Uma das fases mais difíceis Nunca pode-se dizer que um modelo é totalmente válido –Válido para condições particulares Obtêm-se uma confiança no modelo desenvolvido para este conjunto de condições

Verificação e validação Validação: garante que as suposições feitas para delinear o modelo são válidas Verificação do modelo computacional: o programa deve representar todas as características do modelo de uma forma concreta Fases da Validação

Verificação e Validação Validade operacional: verifica se a saída do programa de simulação tem a precisão necessária para a aplicação e no domínio desejados Fases da Validação

Verificação e Validação Validação dos dados: deve-se assegurar que os dados necessários para a construção do modelo, sua avaliação e testes são precisos –Aquisição de dados apropriada –Análise cuidadosa Fases da Validação

Técnicas para Verificação e Validação Comparação com outros modelos Resultados da simulação sendo validados são comparados com resultados de outras simulações já validadas. Teste de degeneração Partes do modelo são retiradas ou os parâmetros de entrada são selecionados apropriadamente. Ex.: Tamanho da fila aumenta quando o tempo entre chegadas diminui

Técnicas para Verificação e Validação Teste de condições extremas As saídas da simulação devem ser compatíveis com condições extrema Ex.: Se número de clientes é zero -> tempo de utilização e fila = 0 Validade aparente Pessoas que têm um bom conhecimento do sistema sendo simulado analisam os resultados. Por exemplo: verifica se a relação entre entrada e saída são coerentes

Técnicas para Verificação e Validação Valores fixos Valores fixos permitem a comparação dos resultados da simulação com resultados calculados à mão Validação através de dados existentes Se dados sobre o sistema existem, parte deste dados pode ser utilizados na construção do sistema e parte para a validação

Técnicas para Verificação e Validação Validação interna A simulação é executada várias vezes. Se resultados variam muito -> desconfiança (falta de consistência) Gráficos da operação O comportamento do modelo é mostrado conforme o tempo passa. Consistência pode ser verificada a cada passo

Técnicas para Verificação e Validação Teste de comparação Pessoas que conhecem bem a operação do sistema simulado são questionadas qual é a saída real e qual é a saída do modelo. Variabilidade de parâmetros Mudanças equivalentes no modelo e no sistema real devem predizer diferenças no resultados equivalentes Precisão Resultados obtidos na simulação e no sistema real são comparados

Fases de uma Simulação 1.estudo do sistema e definição dos objetivos; 2.construção do modelo; 3.determinação dos dados de entrada e saída; 4.tradução do modelo; 5.verificação do programa de simulação; 6.validação do modelo de simulação; 7.experimentação; 8.análise dos resultados; 9.documentação. Itens já vistos nas primeiras aulas

Concluindo.... Solução por Simulação –Versatilidade (aplicada em diferentes situações) –Flexibilidade (adaptável a novas situações) –Baixo custo (com um mesmo programa pode- se simular diferentes situações do mesmo problema) –Útil quando o sistema não está disponível –Facilidade de uso –Problemas: precisão e validação