Avaliação de Desempenho de Sistemas Operacionais Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Avaliação de Desempenho de Sistemas Operacionais Marcos José Santana Regina Helena Carlucci Santana
Técnicas de Avaliação de Desempenho Aferição Aferição Modelagem Rede de Filas Protótipos Simulação Benchmarcks Redes de Petri Analítica Coleta de Dados Statecharts Sistema Medições Dados
Técnicas de Avaliação de Desempenho Protótipos Benchmarcks Coleta de Dados Aferição Rede de Filas Redes de Petri Statecharts Modelagem Simulação Analítica Modelagem Modelo Solução Métodos Analíticos Simulação Sistema
Técnicas de Avaliação de Desempenho Aferição Medidas no próprio sistema Sistema deve existir e estar disponível Experimentação restrita Muito cuidado com aquisição dos dados
Técnicas de Avaliação de Desempenho Modelagem Desenvolvimento de um modelo Não é necessário ter o sistema disponível Grande flexibilidade Resultados estocásticos Necessita validar modelo e solução
Técnicas de Aferição Construção de Protótipos Sistema em Projeto Monitores ou Coleta de Dados Avaliar um Sistema ou partes dele Benchmarks Comparação entre Sistemas Avaliar partes específicas de um Sistema
Técnicas de Aferição Construção de Protótipos Versão simplificada de um sistema computacional que contém apenas características relevantes para a análise do sistema
Construção de Protótipos Ótima opção para verificação de projetos Bom para alguns tipos de sistemas Custo pode ser um problema Flexibilidade não é ponto forte! Produz resultados com boa precisão;
Técnicas de Aferição Construção de Protótipos Construção de Protótipos Sistema em Projeto Monitores ou Coleta de Dados Avaliar um Sistema ou partes dele Benchmarks Comparação entre Sistemas Avaliar partes específicas de um Sistema
Técnicas de Aferição Coleta de Dados Ferramenta para observar as atividades de um sistema coletando as características relevantes para a análise do sistema Ferramenta = Monitor
Avaliar o Desempenho e Identificar Pontos Críticos Monitores Avaliar o Desempenho e Identificar Pontos Críticos Objetivos: Determinar partes mais utilizadas Determinar gargalos Ajustar Parâmetros Caracterizar Carga de Trabalho Determinar Parâmetros para modelos
Monitores Forma de Implementação Define o nível em que o monitor será implementado Hardware Software
Coleta de Dados Monitores de Software: Gerais e Flexíveis Produzem interferência no sistema Informações possíveis de serem obtidas: Nível de aplicação Sistema operacional Exemplo: rotina inserida nos protocolos de comunicação para medir o tempo gasto em uma transação em arquivos
Coleta de Dados Monitores de Hardware: Eficientes Menos invasivos Problemas: custo e complexidade Exemplo: pequeno hardware adicionado ao sistema para espionar e contabilizar o tempo gasto em uma transação em arquivos
Monitores Concluindo.... Podem gerar resultados bastante confiáveis. O sistema deve existir e estar disponível. Cuidado com a interferência do Monitor nos resultados Dois tipos básicos de abordagens: Monitores de Software e de Hardware.
Técnicas de Aferição Construção de Protótipos Construção de Protótipos Sistema em Projeto Monitores ou Coleta de Dados Avaliar um Sistema ou partes dele Benchmarks Comparação entre Sistemas Avaliar partes específicas de um Sistema
Técnicas de Aferição Benchmarks Programa escrito em linguagem de alto nível, representativo de uma classe de aplicações, utilizado para medir o desempenho de um dado sistema ou para comparar diferentes sistemas
Benchmarks Instrumento fixo, que permite comparar um novo registro (mark - marca) a um padrão preestabelecido, a partir de um ponto de observação (bench - banco) Exemplo: Termômetro
Benchmarks Termômetro Benchmark!! T = 36,5O Normal T = 38O Febre!!! Vinho
Benchmarks Comparar desempenho de máquinas diferentes Reprojetar hardware e software Decidir sobre aquisição de sistemas Ajudar na otimização de programas Previsão de desempenho de aplicações em computadores específicos
Exemplos de Benchmarks Benchmarks mais comums Whetstone, Linpack, Dhrystone Outros programas de Benchmarks Stanford Small Programs Benchmark Set EDN Benchmarks Sieve of Eratosthenes Livermore Fortran Kernels Perfect Club Benchmarks SPEC Benchmarks EuroBen Benchmarks
Concluindo.... Benchmarks podem ser utilizados para verificar diversos tipos de sistemas ... Servidores Web, Banco de dados, Processadores, Redes de comunicação
O importante é... Escolher o Benchmark adequado, Aplicar o Benchmark de forma adequada, Analisar os resultados obtidos com critério.
Técnicas de Aferição
Técnicas de Avaliação de Desempenho Modelagem Aferição Modelagem Rede de Filas Protótipos Simulação Benchmarcks Redes de Petri Analítica Coleta de Dados Statecharts Modelo Solução Métodos Analíticos Simulação Sistema
Modelagem Estudo do sistema e definição dos objetivos; Construção do modelo; Modelos Analíticos x Modelos de Simulação: Modelo solução analítica modelo analítico; Modelo solução por simulação modelo de simulação; Modelo solução híbrida modelo híbrido!
Solução Analítica Descrição matemática do comportamento do sistema e da carga de trabalho. Geram equações. Solução das equações de forma analítica ou numérica
Solução Analítica Restrições: Distribuição do tempo entre chegadas deve ser do tipo exponencial. A posse simultânea de recursos não é permitida. Disciplinas de filas com prioridades não são permitidas. Todas as filas são consideradas de capacidade infinita.
Simulação - Utilização Criação de ambientes virtuais Avaliação de desempenho de sistemas complexos
Simulação - Ambientes Virtuais Análise Comportamental Simuladores Jogos
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
Solução por Simulação construção de um programa computacional para implementar modelos de fenomenos ou sistemas dinamicos (estados que se alteram com o tempo); o modelo é suposto ser uma representação válida do sistema em estudo.
Soluções para o Modelo 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
Comparação das Técnicas de Avaliação de Desempenho Modelos de Simulação X Analíticos Analíticos: Requer validação do modelo Dificuldade em resolver a equação Requer simplificações Resultados precisos Pouco tempo de processamento
Comparação das Técnicas de Avaliação de Desempenho Modelos de Simulação X Analíticos Simulação: Requer validação do modelo Elaboração e Teste de programa Poucas restrições aos modelos Resultados probabilísticos Requer estudo estatístico Alto tempo de processamento
Comparação das Técnicas de Avaliação de Desempenho Menor com-plexidade do Modelo Grande n de Informações Maior com-plexidade do Modelo Modelos Analíticos Simulação Uso Apropriado Uso Secundário