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.
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.
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.
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