Simulação de Sistemas Computacionais Por: Carlos Cordeiro {[email protected]}
-
Upload
fernando-fortunato-lemos -
Category
Documents
-
view
214 -
download
1
Transcript of Simulação de Sistemas Computacionais Por: Carlos Cordeiro {[email protected]}
![Page 2: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/2.jpg)
RoteiroIntrodução
Desempenho Medidas de desempenho Técnicas de avaliação
SimulaçãoFerramentas/Linguagens de simulaçãoAvaliação de resultados de simulaçãoConclusões
![Page 3: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/3.jpg)
IntroduçãoDesempenho é um critério chaveTodo profissional em Ciência da
Computação deve: Enumerar os requisitos de performance
de seus sistemas Comparar diferentes alternativas até
encontrar a que melhor se adequa à seus requisitos
![Page 4: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/4.jpg)
O que é “Desempenho”?Webster’s:
The manner in which a mechanism performs.
Aurélio: Mil. Conjunto de características ou de
possibilidades de atuação de uma aeronave, tais como velocidade de cruzeiro, velocidade de pouso, capacidade de carga, autonomia de vôo, etc.
![Page 5: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/5.jpg)
Avaliação de DesempenhoObjetivo:
Enfatizar técnicas que resolvam os problemas do dia-a-dia
Exemplos problemas: Especificar requisitos de desempenho Comparar dois ou mais sistemas Determinar o valor ótimo de um parâmetro Encontrar o gargalo de um sistema Caracterizar a carga de um sistema
![Page 6: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/6.jpg)
Medidas de desempenho de um automóvel
Velocidade máxima Aceleração (tempo para ir de 0 a 100
km/h)Espaço de frenagem a uma dada
velocidade
![Page 7: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/7.jpg)
Medidas de desempenhoVelocidade
tempo de resposta, vazão e utilizaçãoConfiabilidade
Probabilidade de erro Intervalo entre erros
Disponibilidade Duração da falha Intervalo entre falhas
![Page 8: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/8.jpg)
Medidas de desempenho de sistemas computacionais
Vazão/Taxa (Throughput) Taxa na qual os pedidos são atendidos
(servidos) pelo sistema.Utilização:
Fração do tempo em que o recurso permanece ocupado atendendo os pedidos dos usuários
Tempo de resposta: tempo decorrido entre o pedido e o
início/conclusão da realização do serviço.
![Page 9: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/9.jpg)
Técnicas de AvaliaçãoCritério Modelagem
analíticaSimulação Medição
Estágio Qualquer Qualquer Protótipo
Temponecessário
Pouco Médio Variado
Ferramentas Analistas Linguagens deProgramação
Instrumentação
Precisão Pouca Moderada Variada
Avaliação deCompromissos
Fácil Moderada Difícil
Custo Baixo Médio Alto
Saleability Baixa Média Alta
![Page 10: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/10.jpg)
ModelosNos deparamos todos os dias com
vários os tipos de modelos Ex: Brinquedos são modelos de objetos
do mundo realUm modelo é um tipo de abstração
![Page 11: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/11.jpg)
ModelosO que são Modelos?
Um modelo é a descrição de algum sistema com o objetivo de prever o que acontece quando determinadas ações são tomadas
É uma aproximação de um sistema existente ou hipotético
![Page 12: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/12.jpg)
Modelos como AbstraçõesUm modelo é uma simplificação do objeto
do mundo real (sistema, processo, ...)Perda de propriedades do sistema realContudo, simplificações:
custam menos são mais rápidas
Simulação X Modelos Simular é estudar um modelo no tempo
![Page 13: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/13.jpg)
SimulaçãoTécnica muito útil para ADSEspecialmente:
se sistema não disponível para prever o desempenho de diversas
alternativas facilidade de efetuar comparações para
uma maior variedade de cargas e de ambientes
![Page 14: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/14.jpg)
Simulação: perguntas e respostas...
Quais os erros mais comuns?Como está caracterizado uma simulação de
um sistema computacional?Qual linguagem devo usar para simular?Como posso avaliar os resultados da minha
simulação? Por quanto tempo devo executar minha
simulação?Quais são as dicas mais importantes?
![Page 15: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/15.jpg)
Erros ComunsNível de abstração inadequado
Modelo inadequadoLinguagem inadequadaModelos não verificados ou inválidosTratamento inadequado das condições
iniciaisSimulações muito curtasGeradores de número aleatórios ruins
(semente inadequada Correlação)
![Page 16: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/16.jpg)
Modelo de Sistemas Computacionais
Tempo contínuo (estado definido em todos os instantes)
Estados discretos ( eventos discretos)Probabilístico (resultados imprevisíveis)Dinâmico (tempo é uma variável)Não-Linear (Saída = f(Entrada))Aberto ou Fechado (entrada externa)Estável ou Instável (estado permanente)
![Page 17: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/17.jpg)
Selecionando uma Linguagem para Simulação
Linguagem de simulaçãoLinguagem de propósito geralExtensão de uma linguagem de
propósito geralPacote de simulação
![Page 18: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/18.jpg)
Linguagens de SimulaçãoEconomizam tempo de desenvolvimentoRecursos:
avançar no tempo escalonar (programar) eventos geração de valores aleatórios coleta de dados estatísticos (probes)
Foco no problemaCódigo modular e legível
![Page 19: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/19.jpg)
Linguagem de Propósito GeralFamiliaridade do analistaInício imediatoOverhead no desenvolvimento de
rotinas típicas de simulação Tratamento de eventos Geração de valores aleatórios
Eficiência e Flexibilidade
![Page 20: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/20.jpg)
Extensão de uma Linguagem de Propósito Geral
Bibliotecas que contém funções de simulação
Sistema hospedeiroCompromisso entre
Eficiência Flexibilidade Portabilidade
![Page 21: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/21.jpg)
Pacotes de SimulaçãoBiblioteca com estruturas de dados,
rotinas e algoritmosGrande economia de tempoInflexível Simplificação
![Page 22: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/22.jpg)
Ferramentas para SimulaçãoMétodos Formais
Z-eves e Z-ansIA
Prolog JEOPS (http://www.di.ufpe.br/~csff/jeops)
Redes de Computadores SMPL BONeS NS - Network Simulator
Simscript
Linguagens Funcionais
![Page 23: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/23.jpg)
Avaliação dos Resultados de Simulação
Técnicas de verificação do modeloTécnicas de validação do modeloRemoção de transientesCritério de parada: estimativa da
variânciaRedução da variância
![Page 24: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/24.jpg)
Verificação X Validação
Verificar DepurarValidar Modelo = Mundo
Real
![Page 25: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/25.jpg)
Técnicas de Verificação do Modelo
Projeto Modular Top-Down Dividir para Conquistar
Medidas Antibugs Inclusão de verificações (Probabilidades=1)
Varrida Estruturada Explicação do código
Trace Lista de eventos e variáveis (níveis de trace)
![Page 26: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/26.jpg)
Técnicas de Verificação do Modelo
Teste de continuidade Pequena mudança na entrada
pequena mudança na saídaTestes degenerativos
Configurações e cargas extremasIndependência das sementes
Resultados semelhantes para sementes diferentes
![Page 27: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/27.jpg)
Técnicas de Validação do ModeloAspectos a serem validados
Hipóteses Valores dos parâmetros de entrada e
distribuições Valores de saída e conclusões
Técnicas Intuição do especialista Medidas de um sistema real Resultados teóricos
![Page 28: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/28.jpg)
Técnicas de Validação do ModeloUm modelo completamente válido é
um MITOPodemos mostrar apenas que um
modelo não é inválido para algumas situações
![Page 29: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/29.jpg)
Remoção de TransientesGeralmente estamos interessados no
desempenho do sistema em estado permanente Remover a parte inicial
Heurísticas Execuções longas Inicialização apropriada Médias (várias iterações)
![Page 30: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/30.jpg)
Executar até que o intervalo de confiança seja estreito o bastante (5%, 10%, ...) x ± z1-/2Var(x)
Para observações independentes Var(x) = Var(x)/n
Independência não é aplicável a muitas simulações
Para observações correlacionadas Variância real >> Var(x)/n
Critério de parada: estimativa da variância
![Page 31: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/31.jpg)
Critério de parada: estimativa da variância
Soluções Replicações Independentes (~10
replicações) Médias de Lotes (batches) Método Regenerativo (ciclos de
regeneração)Métodos para determinar a variância de
de sistemas com eventos dependentes
![Page 32: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/32.jpg)
Redução da VariânciaReduza a variância através do controle
da cadeia de números aleatórios Introduz correlação em observações
sucessivasProblema
O uso sem o devido cuidado pode não dar certo, levando a aumentar a variância
Não é recomendado para iniciantes
![Page 33: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/33.jpg)
Algumas Dicas para SimulaçãoDefina o sistema a ser modeladoDefinir as propriedades importantes do
sistemaDeterminar que propriedades ignorar no
modelo (conhecer o problema)Decidir que método usar e porqueDevida o modelo em sub-problemasVerificar e Validar os sub-modelos com o
sistema real
![Page 34: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638641a28abb8239014ed/html5/thumbnails/34.jpg)
ConclusõesADS é uma ArteSimulação é um dos métodos mais
aplicados e eficazes para ADSApenas simulação não é suficiente.
Valide os resultados de simulação: Modelagem analítica Medição