Douglas T. Calegari
           José Agripino D. Silva
                  Luiz Nogueira
                  Mariana Vieira
   ...
Introdução


Qual a razão para se estudar
desempenho de hardware ?
   A razão para este estudo é que o desempenho do hardware é
    responsável direto pela eficácia do sistema, que inclui ...
   Para melhorar o desempenho de um software executado num
    determinado hardware é necessário conhecer quais fatores d...
Entre os fatores do hardware que têm maior influência no
  desempenho podemos citar:

   como o compilador utiliza as ins...
A compreensão de como determinar o impacto no
desempenho de cada um destes fatores é importante
   para se entender a moti...
Por que a avaliação de desempenho
é necessária?


 Temos 3 propósitos para que as empresas
   tenham que avaliar o desempe...
Por que a avaliação de desempenho
é necessária?

       1. Avaliação para Seleção



 O avaliador decide de qual fabricant...
Por que a avaliação de desempenho
é necessária?

     2. Projeção de Desempenho

 O avaliador estima um desempenho de um s...
Por que a avaliação de desempenho
é necessária?

       3. Monitoração de desempenho

O avaliador coleta dados de desempen...
Por que a avaliação de desempenho
é necessária?

      3. Monitoração de desempenho

 A monitoração de desempenho também p...
Por que a avaliação de desempenho
é necessária?


 Nas primeiras fases de desenvolvimento de um
   sistema, o fabricante t...
Por que a avaliação de desempenho
é necessária?

 Uma vez iniciado o desenvolvimento do novo
  sistema, a avaliação e prev...
Por que a avaliação de desempenho
é necessária?

Quando o produto é liberado para o usuário final
     o fabricante deve e...
Por que a avaliação de desempenho
é necessária?


Depois de instalado, com a ajuda do usuário final
  o fabricante pode al...
Tendências importantes que afetam
as questões de desempenho
Tendências importantes que afetam as
    questões de desempenho

 Introdução;
 Fatores que interferem no
  desempenho.
Introdução

Com o progresso e o barateamento do
 hardware, podemos contemplar o
 aumento da complexidade do software, e
 e...
Fatores que interferem no
desempenho

 Chaveamento de contexto;
 Escalonamento de processadores;
 Gerenciamento de sist...
Chaveamento de contexto

 Utilizado em um ambiente
  preemptível;
 Compartilhar o uso do processador;
 Garantia do cont...
Chaveamento de contexto

 Armazenar e restaurar estado de uma
  CPU;
 Minimizar tempo de chaveamento.
Escalonamento de processadores

Técnica que alterna a utilização do
 processador, através de um
 determinado critério, ent...
Escalonamento de processadores

Objetivos:
 Maximizar o rendimento;
 Maximizar utilização de recursos;
 Evitar adiament...
Gerenciamento de sistemas de
arquivos

Habilita usuário a:
criar, modificar, eliminar arquivos;
Estruturar arquivos de man...
Medições de Desempenho



Desempenho representa eficiência com que
    um sistema cumpre seus objetivos
Medições de Desempenho
Medidas de desempenho podem ser

   Absolutas
    Tempo de transferência entre memória principal e...
Medições de Desempenho
Alguns resultados de desempenho podem ser
  enganadores

Exemplo:

Complicados algoritmos podem ser...
Medições de Desempenho
         Medidas Comuns de Desempenho
Tempo de Retorno
 Tempo entre apresentação de uma tarefa ao s...
Medições de Desempenho


 Essas quantidades são quantidades probabilísticas e em
     estudos de modelagem de sistema são ...
Medições de Desempenho
Medidas de desempenho freqüentemente usadas

   Variância
    ◦ Aplicável a qualquer uma das variá...
Medições de Desempenho
Medidas de desempenho freqüentemente usadas

   Rendimento (throughput)

    Medida de desempenho ...
Medições de Desempenho
Medidas de desempenho freqüentemente usadas

   Carga de Trabalho

    Quantidade de trabalho apre...
Medições de Desempenho
Medidas de desempenho freqüentemente usadas

   Capacidade
    Rendimento máximo que um sistema po...
Medições de Desempenho
Medidas de desempenho freqüentemente usadas

   Utilização
    Fração de tempo em que um recurso e...
Técnicas de avaliação de
desempenho
 Rastreamento e traçado de perfil
 Cronometragens e microindicadores de
  desempenho...
Rastreamento e traçado de perfil
Projetistas usam dado de rastreamento: arquivo de registro de
requisições de usuário e d...
Rastreamento e traçado de perfil
Perfis indicam quais primitivas do sistema operacional
são usadas mais intensamente, per...
Cronometragens e microindicadores
  de desempenho
Cronometragens proporcionam um meio de fazer
comparações rápidas de har...
Cronometragens e microindicadores
        de desempenho
 Microindicadores de desempenho são úteis para medir
 como uma mu...
Avaliação específica de aplicação
É uma metodologia baseada em vetor usada para calcular
a avaliação específica de aplica...
Avaliação específica de aplicação
 Um programa de núcleo é uma outra ferramenta
de avaliação específica de aplicação.

U...
Avaliação específica de aplicação
 Uma vantagem é que programas de núcleo são
programas completos que na verdade é o que ...
Modelos analíticos
Modelos analíticos são representações matemáticas de
sistema de computador ou de seus componentes.
   ...
Indicadores de desempenho(benchmark)

 Indicador de desempenho (benchmark) é um programa
executado para avaliar uma máqui...
Indicadores de desempenho(benchmark)

 Critérios que devem ser considerados ao desenvolver um
indicador de desempenho:
  ...
Programas sintéticos
 Programas sintéticos são semelhantes aos indicadores de
desempenho, exceto que se concentram em um ...
Simulação
 Simulação é uma técnica na qual um avaliador
desenvolve um modelo computadorizado do sistema que
está em avali...
Monitoração de desempenho
 É a coleta e a análise de informações relativas ao
desempenho do sistema para sistemas existen...
Gargalos e Saturações



 Sistemas operacionais gerenciam conjuntos de recursos
   que fazem interface e interagem de mane...
Gargalos e Saturações
    Os gargalos impedem a passagem de jobs ou
     processos

   Um gargalo tende a se desenvolver ...
Gargalos e Saturações

  Um exemplo clássico é o sistema de memória virtual
        que esteja fazendo paginação excessiva...
Gargalos e Saturações


   Como os gargalos podem ser detectados?

   Cada fila de requisição de recursos deve ser
    m...
Gargalos e Saturações



   O isolamento de gargalo é uma parte importante
            do ajuste fino de um sistema
Gargalos e Saturações

  Fazer o ajuste fino de um sistema envolve identificar e
    eliminar gargalos até que o desempenh...
Upcoming SlideShare
Loading in …5
×

Medindo O Desempenho De Processadores

11,485 views

Published on

Seminario da disciplina de Sistemas Operacionais, Análse de Sistemas 2010.

Published in: Technology

Medindo O Desempenho De Processadores

  1. 1. Douglas T. Calegari José Agripino D. Silva Luiz Nogueira Mariana Vieira Thiago F. Matos Vinícius Machado DESEMPENHO E PROJETO DE PROCESSADORES
  2. 2. Introdução Qual a razão para se estudar desempenho de hardware ?
  3. 3.  A razão para este estudo é que o desempenho do hardware é responsável direto pela eficácia do sistema, que inclui não só o hardware (arquitetura) mas também o software.  A avaliação de desempenho de um sistema constitui um desafio devido à diversidade e complexidade dos sistemas modernos.
  4. 4.  Para melhorar o desempenho de um software executado num determinado hardware é necessário conhecer quais fatores do hardware influenciam no desempenho global do sistema.  Além disso, devemos determinar a importância relativa de cada um destes fatores.
  5. 5. Entre os fatores do hardware que têm maior influência no desempenho podemos citar:  como o compilador utiliza as instruções da máquina na geração do código de um programa;  como o hardware implementa as instruções e  como a memória e os dispositivos de entrada e saída se comportam durante o processamento do programa.
  6. 6. A compreensão de como determinar o impacto no desempenho de cada um destes fatores é importante para se entender a motivação dos projetos de aspectos específicos da máquina.
  7. 7. Por que a avaliação de desempenho é necessária? Temos 3 propósitos para que as empresas tenham que avaliar o desempenho dos produtos:
  8. 8. Por que a avaliação de desempenho é necessária? 1. Avaliação para Seleção O avaliador decide de qual fabricante ele quer adquirir o sistema.
  9. 9. Por que a avaliação de desempenho é necessária? 2. Projeção de Desempenho O avaliador estima um desempenho de um sistema que não existe, pode ser um sistema totalmente novo ou um sistema que funcionará em um hardware novo.
  10. 10. Por que a avaliação de desempenho é necessária? 3. Monitoração de desempenho O avaliador coleta dados de desempenho de um sistema e certifica que o mesmo tenha o desempenho esperado e esteja cumprindo todas as suas metas.
  11. 11. Por que a avaliação de desempenho é necessária? 3. Monitoração de desempenho A monitoração de desempenho também pode ajudar a prever impactos de mudanças planejadas, e assim ajudar a modificar ou não um sistema.
  12. 12. Por que a avaliação de desempenho é necessária? Nas primeiras fases de desenvolvimento de um sistema, o fabricante tenta prever a natureza das aplicações que serão executadas, e as cargas de trabalhos previstas que a aplicação terá que tratar.
  13. 13. Por que a avaliação de desempenho é necessária? Uma vez iniciado o desenvolvimento do novo sistema, a avaliação e previsão de desempenho são usadas pelo fabricante para determinar a melhor organização de hardware, a estratégia de gerenciamento de recursos e se o sistema em evolução está cumprindo ou não seus objetivos de desempenho.
  14. 14. Por que a avaliação de desempenho é necessária? Quando o produto é liberado para o usuário final o fabricante deve estar preparado para responder todas as perguntas dos clientes em relação a desempenho e em relação a um determinado hardware, sistema operacional.
  15. 15. Por que a avaliação de desempenho é necessária? Depois de instalado, com a ajuda do usuário final o fabricante pode alterar a aplicação para ficar com desempenho o mais perto possível da perfeição.
  16. 16. Tendências importantes que afetam as questões de desempenho
  17. 17. Tendências importantes que afetam as questões de desempenho  Introdução;  Fatores que interferem no desempenho.
  18. 18. Introdução Com o progresso e o barateamento do hardware, podemos contemplar o aumento da complexidade do software, e em conseqüência a evolução de medidas e avaliações de desempenho.
  19. 19. Fatores que interferem no desempenho  Chaveamento de contexto;  Escalonamento de processadores;  Gerenciamento de sistemas de arquivos;
  20. 20. Chaveamento de contexto  Utilizado em um ambiente preemptível;  Compartilhar o uso do processador;  Garantia do contexto de software do processo via PCB;
  21. 21. Chaveamento de contexto  Armazenar e restaurar estado de uma CPU;  Minimizar tempo de chaveamento.
  22. 22. Escalonamento de processadores Técnica que alterna a utilização do processador, através de um determinado critério, entre múltiplos processos.
  23. 23. Escalonamento de processadores Objetivos:  Maximizar o rendimento;  Maximizar utilização de recursos;  Evitar adiamento indefinido  Impor prioridades.
  24. 24. Gerenciamento de sistemas de arquivos Habilita usuário a: criar, modificar, eliminar arquivos; Estruturar arquivos de maneira mais apropriada; Acesso controlado; Fornecer capacidades de backup.
  25. 25. Medições de Desempenho Desempenho representa eficiência com que um sistema cumpre seus objetivos
  26. 26. Medições de Desempenho Medidas de desempenho podem ser  Absolutas Tempo de transferência entre memória principal e cache.  Relativas Facilidade de uso
  27. 27. Medições de Desempenho Alguns resultados de desempenho podem ser enganadores Exemplo: Complicados algoritmos podem ser Usados por um sistema operacional para Conservação de memória enquanto em Outro ele evitaria esse tipo de rotina
  28. 28. Medições de Desempenho Medidas Comuns de Desempenho Tempo de Retorno Tempo entre apresentação de uma tarefa ao sistema e a resultado obtido Tempo de Resposta Tempo entre um clique do mouse ou enter e a apresentação do resultado Tempo de Reação Primeiro intervalo de tempo do serviço dado um Clique ou Enter
  29. 29. Medições de Desempenho Essas quantidades são quantidades probabilísticas e em estudos de modelagem de sistema são chamadas variáveis aleatórias
  30. 30. Medições de Desempenho Medidas de desempenho freqüentemente usadas  Variância ◦ Aplicável a qualquer uma das variáveis aleatórias ◦ Uma grande variância indica que usuários estão experimentando tempo de resposta/retorno/reação muito diferentes. ◦ Uma pequena variância indica que as medidas de tempo estão próximos da média.
  31. 31. Medições de Desempenho Medidas de desempenho freqüentemente usadas  Rendimento (throughput) Medida de desempenho expressa em trabalho por unidade de tempo
  32. 32. Medições de Desempenho Medidas de desempenho freqüentemente usadas  Carga de Trabalho Quantidade de trabalho apresentada ao sistema
  33. 33. Medições de Desempenho Medidas de desempenho freqüentemente usadas  Capacidade Rendimento máximo que um sistema pode atingir, admitindo Que sempre que um sistema estiver pronto para receber Mais tarefas, haverá uma outra tarefa disponível
  34. 34. Medições de Desempenho Medidas de desempenho freqüentemente usadas  Utilização Fração de tempo em que um recurso está em uso. Pode ser enganosa, pois uma alta utilização pode significar uma utilização ineficiente As vezes uma baixa utilização pode significar um resultado positivo
  35. 35. Técnicas de avaliação de desempenho  Rastreamento e traçado de perfil  Cronometragens e microindicadores de desempenho  Avaliação específica de aplicação  Modelos analíticos  Indicadores de desempenho  Programas sintéticos  Simulação  Monitoração de desempenho
  36. 36. Rastreamento e traçado de perfil Projetistas usam dado de rastreamento: arquivo de registro de requisições de usuário e de aplicações ao sistema operacional (rastro). Avaliadores de sistemas usam o rastro para caracterizar o ambiente de execução determinando a freqüência com que os processos requisitam determinados serviços de núcleo. Outro método para retratar o ambiente de execução é o traçado de perfil. Os perfis registram a atividade do sistema quando ele está executando em modo núcleo, o que pode abranger operações como escalonamento de processo, gerenciamento de memória e de E/S.
  37. 37. Rastreamento e traçado de perfil Perfis indicam quais primitivas do sistema operacional são usadas mais intensamente, permitindo que administradores de sistema identifiquem alvos em potencial para otimização e ajuste. Muitas vezes os avaliadores têm que fazer uso de outras técnicas juntamente com perfis para determinar as maneiras mais efetivas de melhorar o desempenho do sistema.
  38. 38. Cronometragens e microindicadores de desempenho Cronometragens proporcionam um meio de fazer comparações rápidas de hardware. Os primeiros sistemas eram usualmente avaliados por seus tempos de adição ou por tempo de ciclo de memória. Cronometragens são úteis para indicar a “potência bruta” de um determinado sistema. Um programa microindicador de desempenho mede o tempo requerido para realizar uma operação de sistema operacional. Ex: criação de processo
  39. 39. Cronometragens e microindicadores de desempenho Microindicadores de desempenho são úteis para medir como uma mudança no projeto afeta o desempenho de uma operação específica. Conjuntos de microindicadores de desempenho são programas que medem o desempenho de várias primitivas. Ex: operações de memória, criação de processo. Microindicadores de desempenho descrevem com que rapidez um sistema realiza uma operação e não com que freqüência ela é realizada.
  40. 40. Avaliação específica de aplicação É uma metodologia baseada em vetor usada para calcular a avaliação específica de aplicação de um sistema combinando dados de rastreamento e de perfil com cronometragens e microindicadores. Essa técnica pode ser útil para comparar a eficiência com que diferentes sistemas executam determinada aplicação considerando a demanda que uma aplicação impõe sobre cada primitiva. A metodologia pode ser usada para selecionar as primitivas que devem ser ajustadas para melhorar o desempenho.
  41. 41. Avaliação específica de aplicação  Um programa de núcleo é uma outra ferramenta de avaliação específica de aplicação. Um programa de núcleo pode ser desde um programa inteiro, típico de um programa de núcleo executado em uma instalação à um simples algoritmo como uma inversão de matriz. Programas de núcleos são na verdade “executados no papel”, e não em determinado computador. Eles são usados para avaliação de seleção antes do consumidor comprar o sistema que está sendo avaliado.
  42. 42. Avaliação específica de aplicação  Uma vantagem é que programas de núcleo são programas completos que na verdade é o que o usuário executa no sistema de computação que está sob apreciação. Programas de núcleo podem ser úteis para avaliar certos componentes do software: Exemplo: dois compiladores diferentes podem produzir códigos diferentes, e programas de núcleo podem ajudar um avaliador a decidir qual deles gera código mais eficiente.
  43. 43. Modelos analíticos Modelos analíticos são representações matemáticas de sistema de computador ou de seus componentes. Ex: teoria das filas, e dos processos de Markov. O modelo analítico pode ser relativamente fácil de criar e modificar e com uma considerável precisão. Porém tem muitas desvantagens, uma delas é que o avaliador precisa ser matemático de alta capacidade. Outra é que sistemas complexos são difíceis de modelar com precisão. Os sistemas atuais são tão complexos que o modelador é forçado a adotar muitas premissas simplificadoras que podem diminuir a utilidade e a aplicabilidade do modelo.
  44. 44. Indicadores de desempenho(benchmark)  Indicador de desempenho (benchmark) é um programa executado para avaliar uma máquina. Normalmente, indicadores de desempenho são programas de produção típicos de muitos jobs da instalação. Uma vantagem está no fato de eles já existirem em grande número, de modo que basta o avaliador escolher entre programas de produção conhecidos ou utilizar indicadores de desempenho padrão para o setor. A chance de erro humano é mínima, pois o tempo para a quantificação de desempenho é medido pelo próprio computador.
  45. 45. Indicadores de desempenho(benchmark)  Critérios que devem ser considerados ao desenvolver um indicador de desempenho: Os resultados devem ser repetíveis n Os indicadores devem refletir com precisão os tipos de aplicações que serão executadas. O indicador deve ser utilizado para que seja possível efetuar comparações precisas entre sistemas. Indicadores de desempenho são úteis para comparar a operação de um sistema antes e depois de fazer certas mudanças. Porém não são úteis para prever os efeitos de mudanças propostas, a menos que exista um outro sistema no qual as mudanças foram incorporadas e no qual os indicadores podem ser executados.
  46. 46. Programas sintéticos  Programas sintéticos são semelhantes aos indicadores de desempenho, exceto que se concentram em um componente específico do sistema, como um subsistema de E/S ou de memória. Os avaliadores constroem programas sintéticos para propósitos específicos, por exemplo: Pode estar dirigido à um componente do sistema operacional. Pode ser construído para corresponder a distribuição de freqüência de instrução de um grande conjunto de programas. Uma vantagem dos programas sintéticos é que eles podem isolar componentes específicos de um sistema em vez de testar o sistema inteiro.
  47. 47. Simulação  Simulação é uma técnica na qual um avaliador desenvolve um modelo computadorizado do sistema que está em avaliação. Com a simulação é possível preparar um modelo de sistema que não existe e então executá-lo para ver como o sistema poderia se comportar em certas circunstâncias. A simulação requer considerável conhecimento técnico da parte do avaliador e pode consumir substancial tempo de computador. Simuladores em geral produzem imensas quantidades de dados que devem ser cuidadosamente analisados
  48. 48. Monitoração de desempenho  É a coleta e a análise de informações relativas ao desempenho do sistema para sistemas existentes. Pode ajudar a determinar medições úteis de desempenho. A monitoração de desempenho pode localizar ineficiências rapidamente e ajudar os administradores de sistema a decidir como melhorar o seu desempenho. Usuários podem monitorar o desempenho por meio de técnicas de software e de hardware.
  49. 49. Gargalos e Saturações Sistemas operacionais gerenciam conjuntos de recursos que fazem interface e interagem de maneira complexa
  50. 50. Gargalos e Saturações Os gargalos impedem a passagem de jobs ou processos  Um gargalo tende a se desenvolver em um recurso quando o tráfego começa a se aproximar da sua capacidade total
  51. 51. Gargalos e Saturações Um exemplo clássico é o sistema de memória virtual que esteja fazendo paginação excessiva A saturação pode ser tratada reduzindo-se a carga do sistema
  52. 52. Gargalos e Saturações  Como os gargalos podem ser detectados?  Cada fila de requisição de recursos deve ser monitorada
  53. 53. Gargalos e Saturações O isolamento de gargalo é uma parte importante do ajuste fino de um sistema
  54. 54. Gargalos e Saturações Fazer o ajuste fino de um sistema envolve identificar e eliminar gargalos até que o desempenho do sistema atinja níveis satisfatórios

×