SlideShare une entreprise Scribd logo
1  sur  54
Douglas T. Calegari
           José Agripino D. Silva
                  Luiz Nogueira
                  Mariana Vieira
                 Thiago F. Matos
               Vinícius Machado



DESEMPENHO E
PROJETO DE
PROCESSADORES
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 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.
   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.
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.
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.
Por que a avaliação de desempenho
é necessária?


 Temos 3 propósitos para que as empresas
   tenham que avaliar o desempenho dos
                produtos:
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.
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.
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.
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.
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.
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.
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.
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.
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
 em conseqüência a evolução de medidas
 e avaliações de desempenho.
Fatores que interferem no
desempenho

 Chaveamento de contexto;
 Escalonamento de processadores;
 Gerenciamento de sistemas de
  arquivos;
Chaveamento de contexto

 Utilizado em um ambiente
  preemptível;
 Compartilhar o uso do processador;
 Garantia do contexto de software do
  processo via PCB;
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, entre múltiplos
 processos.
Escalonamento de processadores

Objetivos:
 Maximizar o rendimento;
 Maximizar utilização de recursos;
 Evitar adiamento indefinido
 Impor prioridades.
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.
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
    cache.


   Relativas
    Facilidade de uso
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
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
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
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.
Medições de Desempenho
Medidas de desempenho freqüentemente usadas

   Rendimento (throughput)

    Medida de desempenho expressa em trabalho por
    unidade de tempo
Medições de Desempenho
Medidas de desempenho freqüentemente usadas

   Carga de Trabalho

    Quantidade de trabalho apresentada ao sistema
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
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
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
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
Gargalos e Saturações



 Sistemas operacionais gerenciam conjuntos de recursos
   que fazem interface e interagem de maneira complexa
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
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
Gargalos e Saturações


   Como os gargalos podem ser detectados?

   Cada fila de requisição de recursos deve ser
    monitorada
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 desempenho do sistema
                   atinja níveis satisfatórios

Contenu connexe

Tendances

Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)
Rafael Barbolo
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
Pacc UAB
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
Armando Daniel
 
Cinema levantamento de requisitos 42756538
Cinema levantamento de requisitos   42756538Cinema levantamento de requisitos   42756538
Cinema levantamento de requisitos 42756538
Alex Sampaio
 

Tendances (20)

Resolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisResolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas Operacionais
 
05 - Sincronização de Threads - I
05 - Sincronização de Threads - I05 - Sincronização de Threads - I
05 - Sincronização de Threads - I
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)
 
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Sistema de arquivos - HPFS e ReiserFS/4
Sistema de arquivos - HPFS e ReiserFS/4Sistema de arquivos - HPFS e ReiserFS/4
Sistema de arquivos - HPFS e ReiserFS/4
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Modelos de base de dados
Modelos de base de dadosModelos de base de dados
Modelos de base de dados
 
Python 02
Python 02Python 02
Python 02
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
 
Cinema levantamento de requisitos 42756538
Cinema levantamento de requisitos   42756538Cinema levantamento de requisitos   42756538
Cinema levantamento de requisitos 42756538
 
aula 04 - Logica de programacao
aula 04 - Logica de programacaoaula 04 - Logica de programacao
aula 04 - Logica de programacao
 
Caso De Uso E Use Case Point
Caso De Uso E Use Case PointCaso De Uso E Use Case Point
Caso De Uso E Use Case Point
 
Apostila Aplicativos informatizados
Apostila Aplicativos informatizadosApostila Aplicativos informatizados
Apostila Aplicativos informatizados
 
Dns
DnsDns
Dns
 
Aula 3 banco de dados
Aula 3   banco de dadosAula 3   banco de dados
Aula 3 banco de dados
 

Similaire à Medindo O Desempenho De Processadores

Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
Roni Reis
 

Similaire à Medindo O Desempenho De Processadores (20)

Computacao
ComputacaoComputacao
Computacao
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalA Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance Aplicacional
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Dba Ciclo Palestra P5 V1a
Dba Ciclo Palestra P5 V1aDba Ciclo Palestra P5 V1a
Dba Ciclo Palestra P5 V1a
 
Overview de QA
Overview de QA Overview de QA
Overview de QA
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
 
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloIndicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
 
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?
 
Rejuvenescimento Software
Rejuvenescimento SoftwareRejuvenescimento Software
Rejuvenescimento Software
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
aula7 software ciclo de vida analise req
aula7 software ciclo de vida analise reqaula7 software ciclo de vida analise req
aula7 software ciclo de vida analise req
 
Aula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptxAula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptx
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Técnicas de Análise Contextual - Livro de Walter Cybis
Técnicas de Análise Contextual - Livro de Walter CybisTécnicas de Análise Contextual - Livro de Walter Cybis
Técnicas de Análise Contextual - Livro de Walter Cybis
 
Introdução aos Testes de Desempenho
Introdução aos Testes de DesempenhoIntrodução aos Testes de Desempenho
Introdução aos Testes de Desempenho
 

Medindo O Desempenho De Processadores

  • 1. Douglas T. Calegari José Agripino D. Silva Luiz Nogueira Mariana Vieira Thiago F. Matos Vinícius Machado DESEMPENHO E PROJETO DE PROCESSADORES
  • 2. Introdução Qual a razão para se estudar desempenho de hardware ?
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Tendências importantes que afetam as questões de desempenho
  • 17. Tendências importantes que afetam as questões de desempenho  Introdução;  Fatores que interferem no desempenho.
  • 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. Fatores que interferem no desempenho  Chaveamento de contexto;  Escalonamento de processadores;  Gerenciamento de sistemas de arquivos;
  • 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. Chaveamento de contexto  Armazenar e restaurar estado de uma CPU;  Minimizar tempo de chaveamento.
  • 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. Escalonamento de processadores Objetivos:  Maximizar o rendimento;  Maximizar utilização de recursos;  Evitar adiamento indefinido  Impor prioridades.
  • 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. Medições de Desempenho Desempenho representa eficiência com que um sistema cumpre seus objetivos
  • 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. 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. 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. 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. 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. Medições de Desempenho Medidas de desempenho freqüentemente usadas  Rendimento (throughput) Medida de desempenho expressa em trabalho por unidade de tempo
  • 32. Medições de Desempenho Medidas de desempenho freqüentemente usadas  Carga de Trabalho Quantidade de trabalho apresentada ao sistema
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Gargalos e Saturações Sistemas operacionais gerenciam conjuntos de recursos que fazem interface e interagem de maneira complexa
  • 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. 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. Gargalos e Saturações  Como os gargalos podem ser detectados?  Cada fila de requisição de recursos deve ser monitorada
  • 53. Gargalos e Saturações O isolamento de gargalo é uma parte importante do ajuste fino de um sistema
  • 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