DE SISTEMAS Prof. Msc. Felipe Brito Número (91) 98140-0437 E-mail: felipeandrecb@hotmail.com Técnicas de Avaliação de Sistemas • Existem diferentes técnicas de avaliação de desempenho de sistemas, que são tradicionalmente divididas em três abordagens distintas: • Monitoração • Simulação • Métodos Analíticos Monitoração • Esta técnica, como o próprio nome sugere, consiste na observação (monitoração) de sistemas reais. • Dentre as técnicas citadas, esta é a que propicia maior fidelidade dos índices obtidos, pois não é feita nenhuma abstração (modelagem) do sistema em questão. • Porém, há algumas desvantagens visíveis desta abordagem, como por exemplo, a necessidade da existência do sistema a ser avaliado. Monitoração • Isto pode gerar problemas em relação ao custo e ao tempo, pois o sistema implementado pode não satisfazer as necessidades, tendo que ser abandonado. • Uma outra desvantagem é a questão da amostragem. • É necessário que se faça o uso correto de técnicas de estatística para que os dados recolhidos tenham validade. Simulação • Esta abordagem consiste em construir um modelo que simule o funcionamento do sistema a ser avaliado. • Este modelo deve descrever as características funcionais do sistema em uma escala adequada de tempo. • Este modelo deve conter os detalhes importantes referentes ao sistema, mas não a sua totalidade. Em outras palavras, há um certo nível de abstração. Simulação • Contudo, deve-se destacar que esta abstração não deve acarretar na inclusão de erros no modelo nem mesmo na exclusão de características importantes do sistema. • Comparativamente à monitoração, a simulação costuma ser menos dispendiosa e consumir menos tempo para que os índices sejam calculados, permitindo que sejam feitos quantos experimentos forem necessários. Simulação • Porém, por se tratar de uma abstração da realidade, a fidelidade das medidas tende a ser menor na simulação se compararmos com a monitoração. • Além disso, da mesma forma que na monitoração, a quantidade e representatividade das amostras consideradas é muito importante para a obtenção de resultados corretos. Métodos Analíticos • Esta técnica de avaliação de desempenho, assim como a simulação, também se baseia no desenvolvimento de um modelo do sistema real, porém com um nível de abstração mais alto. • Neste caso, o modelo é puramente matemático. • Neste tipo de modelo, o funcionamento do sistema real é reduzido a relações matemáticas. Métodos Analíticos • Modelos analíticos podem ser determinísticos ou estocásticos: • Em um modelo determinístico, todos os parâmetros do sistema são previamente determinados. • Já em um modelo estocástico, o comportamento do sistema é analisado probabilisticamente, ou seja, os parâmetros do sistema são descritos por variáveis aleatórias, com distribuições de probabilidade convenientes. Métodos Analíticos • No modelo estocástico, o sistema é descrito em termos de um conjunto de estados em que o mesmo pode se encontrar e de transições estocásticas entre esses estados (uma transição estocástica é aquela cuja ocorrência é descrita por uma variável aleatória). • Desenvolver modelos analíticos normalmente exige maior abstração de aspectos da realidade, se comparado a modelos de simulação. Métodos Analíticos • Ainda, em alguns casos, não se consegue obter uma resolução numérica, mas sim uma resolução analítica. • Uma resolução numérica, passando por uma relação matemática dependente do espaço de estados (sistema de equações dependente do espaço de estados do problema), pode não ser possível pois o problema pode ser estado infinito. Métodos Analíticos • Para alguns de tais casos é possível obter-se solução analítica à forma produto, com fórmulas independentes do número de estados. • Como exemplo cita-se o processo de nascimento e morte, que dá-se pela fórmula M/M/1/1. Métodos Analíticos • Algumas vezes a complexidade computacional do modelo pode tornar a resolução muito cara, ficando mais dispendiosa que uma resolução igualmente aceitável em simulação. • Mesmo assim, métodos analíticos podem ser empregados com maior facilidade que outros em vários casos. Métodos Analíticos • Uma vantagem desta técnica em relação as outras descritas é que não há a necessidade de se preocupar com um conjunto específico de amostras de funcionamento do sistema para a obtenção dos índices de desempenho. • Desta forma, o domínio de métodos analíticos para avaliação de sistemas compreende um ferramental importante para profissionais da área de Informática. Fases da Avaliação • A avaliação de um sistema exige que sejam seguidos alguns passos: • Modelagem • Extração ou Resolução • Interpretação Modelagem • Nesta etapa, são realizadas as observações sobre o sistema e definem-se as abstrações com que se vai trabalhar. • A modelagem exige a definição de uma abordagem de modelagem de sistemas. • Ao final desta etapa, tem-se um modelo do sistema considerado; Extração ou Resolução
• Nesta etapa, são realizados os cálculos e o
processamento necessário à obtenção de resultados numéricos sobre o sistema a partir do modelo gerado na etapa anterior; Interpretação
• A última etapa compreende a análise dos
resultados obtidos e a tomada de decisão sobre alterações e melhorias. Medidas de Desempenho • Desempenho pode ser definido como a maneira como um sistema se comporta. • Isto é, o desempenho de um sistema é determinado por suas características de execução. • Portanto, avaliar o desempenho de um sistema demanda definir quais características comportamentais interessam ser consideradas. Medidas de Desempenho • Por exemplo, se quisermos avaliar o desempenho de um automóvel, iremos considerar fatores tais como velocidade máxima, capacidade de aceleração (tempo necessário para ir de 0 Km/h a 100 Km/h), espaço de frenagem a uma dada velocidade, consumo médio de combustível, etc. Medidas de Desempenho • Para sistemas computacionais, em geral consideram-se 4 fatores para medida de desempenho: • Vazão (throughput) • Utilização • População • Tempo de resposta Vazão (throughput) • Taxa de atendimento de pedidos pelo sistema. Ex.: • Sistemas em lotes: jobs por segundo; • Sistemas interativos: requisições por segundo; ou numa CPU: MIPS (Millions of Instructions Per Second) ou MFLOPS (Millions of FLoating-point Operations Per Second); • Redes: pacotes por segundo (pps) ou bits por segundo (bps); • Sistemas de processamento de transações: transações por segundo (TPS); Utilização
• Fatia de tempo em que o sistema permanece
ocupado, atendendo a pedidos; População
• Quantidade de atendimentos a serem feitos em
um determinado instante; Tempo de resposta
• Intervalo de tempo entre o pedido e o
início/conclusão do serviço. Noções de Probabilidade • A palavra probabilidade deriva do Latim probare (provar ou testar). • A história da teoria das probabilidades teve início com os jogos de cartas, dados e de roleta. • Esse é o motivo da grande existência de exemplos de jogos de azar no estudo da probabilidade. • A teoria da probabilidade permite que se calcule a chance de ocorrência de um número em um experimento aleatório. Noções de Probabilidade • Probabilidade: é o estudo das chances de obtenção de cada resultado de um experimento aleatório. • A essas chances são atribuídos os números reais do intervalo entre 0 e 1. • Resultados mais próximos de 1 têm mais chances de ocorrer. • Além disso, a probabilidade também pode ser apresentada na forma percentual. Noções de Probabilidade • A probabilidade associa números às chances de determinado resultado acontecer. • De modo que, quanto maior esse número, maior a chance desse resultado ocorrer. • Existe um “menor número”, que representa a impossibilidade do resultado, e um “maior número”, que representa a certeza de determinado resultado. • No lançamento de um único dado, por exemplo, é impossível ocorrer o número 7 e existe a certeza de ocorrer um número menor que 7 ou maior que 0. Noções de Probabilidade • Fenômeno Determinístico: É possível saber que evento irá acontecer no futuro. • Por exemplo, avanço de uma música em uma fita cassete. • Sempre se sabe qual será a música seguinte, pois a ordem já é previamente conhecida; Noções de Probabilidade • Fenômeno Aleatório: não é possível saber que evento irá acontecer no futuro. • Ao lançar uma moeda não há como saber-se qual lado ficará à vista quando a moeda chegar ao solo, mesmo após inúmeros lançamentos; Noções de Probabilidade • Evento discreto: Considera-se a ocorrência de um fenômeno apenas em determinados instantes de tempo dentro de um período (verifica-se fenômeno a cada intervalo de 5 minutos, por exemplo); Noções de Probabilidade • Variável aleatória: Uma variável aleatória é uma função que reflete o resultado de uma experiência aleatória. • Podemos conhecer seu comportamento para um conjunto de valores, mas não sabemos o valor para uma ocorrência específica. • Por exemplo, lançar uma moeda. Noções de Probabilidade • Variável aleatória discreta: Seu conjunto possível de valores é composto por um número finito ou infinito enumerável de elementos. • Ex: Nº de chamadas na central do Corpo de Bombeiros no período da manhã. • Ex: Nº de alunos aprovados numa disciplina com 80 alunos matriculados. • Ex: Nº de acessos a um determinado site, das 0h às 6h. Noções de Probabilidade • Variável aleatória contínua: Uma variável aleatória contínua pode assumir qualquer valor numérico em um determinado intervalo ou série de intervalos. • É uma variável que assume valores dentro de intervalos de números reais. • Ex: Noções de Probabilidade • O resultado de lançamento de martelo nas Olimpíadas é um exemplo de variável aleatória contínua. • Sabe-se que os valores do lançamento de martelo atingem a distância máxima de 60 metros e a distância mínima classificatória de 30 metros. Noções de Probabilidade • Todos os lançamentos poderão assumir uma infinidade de possibilidades dentro do intervalo entre 60 metros e 30 metros, pois sempre existirá uma fração para medir a menor diferença possível entre os lançamentos como 59 metros, 25 centímetros, 12 milímetros e assim por diante. • Então, X seria uma variável aleatória contínua que assumiria qualquer valor no intervalo 30 < X < 60 Noções de Probabilidade • Distribuição de probabilidade: Não é possível saber de antemão o valor de uma variável aleatória e, para estudá-la, é necessário identificar os valores que ela pode assumir e com que frequência ela ocorre, ou seja, a sua distribuição de probabilidade. • Exemplos: jogar moeda (P(cara), P(coroa)); jogar um dado (P(lado1), ...P(lado6)); jogar dois dados e obter uma determinada soma (P(soma=2), P(soma=3), ... P(soma=12)); etc. Estes são exemplos de distribuições discretas de probabilidade. Noções de Probabilidade • Distribuição exponencial: as únicas distribuições com característica "memoryless“ são a geométrica (discreta) e a exponencial (contínua). • "Memoryless“ significa, de forma intuitiva, que saber o que aconteceu no passado não ajuda a prever o futuro. • Assim, considerando um evento discreto como jogar moeda para cima, saber o resultados anteriores não afeta de maneira alguma as probabilidades associadas à próxima jogada de moeda. Noções de Probabilidade • Considere um evento contínuo, como por exemplo a chegada de trabalhos em um sistema com distribuição exponencial e média 5. • Se até o instante 4 não foi observada nenhuma chegada de trabalho, isto não aumenta a probabilidade de um trabalho chegar dentro do próximo segundo. • A distribuição exponencial é uma distribuição muito utilizada na prática para modelar tempo de falha de objetos. • Por exemplo, pode ser usada para modelar o tempo que demora até uma lâmpada falhar Noções de Probabilidade • Ex: Tempo para realizar uma prova • Ex: Tempo de chegadas de pacotes em um roteador. • Ex: Tempo de espera em restaurantes, caixas de banco, postos de saúde. Exercício • Quais são as técnicas de avaliação de sistemas? Explique cada uma • O que é probabilidade? • Quais as diferenças entre fenômenos determinísticos e fenômenos aleatórios? • Quais as diferenças entre variável aleatória discreta e variável aleatória contínua?