1 / 52

SSC541 - SISTEMAS OPERACIONAIS I Aula 23 – Avaliação de Desempenho de Sistemas Operacionais

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação. SSC541 - SISTEMAS OPERACIONAIS I Aula 23 – Avaliação de Desempenho de Sistemas Operacionais Profa. Sarita Mazzini Bruschi Regina Helena Carlucci Santana Marcos José Santana

melba
Download Presentation

SSC541 - SISTEMAS OPERACIONAIS I Aula 23 – Avaliação de Desempenho de Sistemas Operacionais

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Universidade de São PauloInstituto de Ciências Matemáticas e de ComputaçãoDepartamento de Sistemas de Computação SSC541 - SISTEMAS OPERACIONAIS I Aula 23 – Avaliação de Desempenho de Sistemas Operacionais Profa. Sarita Mazzini Bruschi Regina Helena Carlucci Santana Marcos José Santana Slides adaptados de Luciana A. F. Martimiano baseados nos livros Sistemas Operacionais Modernos de A. Tanenbaun

  2. Conteúdo • Porque avaliar desempenho de sistemas operacionais • Como Agilizar? • Identificar pontos de atraso • Propor solução • Avaliar solução • Técnicas para Avaliação de Desempenho de Sistemas Operacionais • Aplicações em Sistemas Operacionais

  3. Motivação Porque avaliar Sistemas Operacionais? Em diversas ocasiões o Sistema Operacional apresenta grande influência no desempenho de um sistema Porque o Sistema Operacional influencia no desempenho?

  4. Porque Avaliar SO? Diversos Motivos, relacionados a: • Requisitos básicos de SOs • Requisitos de Mercado • Gerenciamento

  5. Porque Avaliar SO? Requisitos básicos de SOs: 1. Necessidade de Confiabilidade • Desempenho X Confiabilidade • Duas características conflitantes 2. Necessidade de Segurança • Desempenho X Segurança • Duas características conflitantes

  6. Porque Avaliar SO? Requisitos básicos de SOs: 3. Facilidade de Utilização • SOs são de utilização ampla • Diferentes tipos de usuários • Usuários menos experientes requerem facilidade de aprendizagem/utilização. Ex: plug and play.

  7. Porque Avaliar SO? Requisitos de Mercado: 4. Oferecimento de Novas Versões • Visando evitar a estagnação do produto • Visando a perda de clientes 5. Oferecimento de Novas Funcionalidades • Funcionalidades que atraem alguns tipos de usuários. Ex: formas diferentes de gerenciar janelas • Qual o custo a ser pago em termos de tamanho do código, velocidade, complexidade, etc.?

  8. Porque Avaliar SO? Gerenciamento: 6. Adequabilidade à Aplicação • Necessidade de características específicas • Exemplos: formas de escalonamento, threads usuário ou kernel, aplicações I/O ou CPU bound 7. Execução em segundo plano • Por exemplo, deamons no Unix • Processos carregados sem o conhecimento explicito do usuário.

  9. Porque Avaliar SO? Gerenciamento: 8. Anti vírus em tempo real • Verifica arquivo no momento de abrir 9. Remoção de driver/HW • Hardware que não estão mais sendo utilizados têm seus drives mantidos 10. Desinstalação de Programas • Desinstalar sem SW adequado 11. Discos Fragmentados

  10. Conteúdo • Porque avaliar desempenho de sistemas operacionais • Como Agilizar? • Identificar pontos de atraso • Propor solução • Avaliar solução • Técnicas para Avaliação de Desempenho de Sistemas Operacionais • Aplicações em Sistemas Operacionais

  11. Como Agilizar? 1. Identificar os pontos de atraso e verificar o impacto desse atraso 2. Propor soluções 3. Avaliar soluções

  12. Como Agilizar? • Identificar os pontos de atraso e verificar o impacto desse atraso: Verificar a freqüência com que o procedimento ocorre • Eventos raros e lentos: • Pouco impacto • Muita otimização para ser perceptível • Exemplo: procedimento ao ligar o computador, falha ao entrar em uma região crítica • Eventos freqüentes: • Muito impacto • Pequena otimização pode ser perceptível • Exemplo: processo escalonador 2. Propor soluções 3. Avaliar soluções

  13. Conteúdo • Porque avaliar desempenho de sistemas operacionais • Como Agilizar? • Identificar pontos de atraso • Propor solução • Avaliar solução • Técnicas para Avaliação de Desempenho de Sistemas Operacionais • Aplicações em Sistemas Operacionais

  14. Como Agilizar? 1. Identificar os pontos de atraso Memória Virtual • Permite a execução de aplicações maiores ou de diversas aplicações ao mesmo tempo • Problema de desempenho: • Acesso ao disco para recuperar página • Sobrecarrega acesso a disco 2. Propor soluções

  15. Como Agilizar? • Identificar os pontos de atraso Memória Virtual 2. Propor soluções • Localização da área/arquivo de swap no disco • Usar segundo HD para área de swap – evita movimentação da cabeça do disco • Colocar área de swap no centro do disco • Dedicar uma partição para área de swap • Escolha adequada do tamanho da área/arquivo de swap no disco • Área de Swap suficiente X Utilização da área de disco • Necessidade de aumentar a área de swap -> perda de desempenho

  16. Como Agilizar? • Identificar os pontos de atraso Acesso a informação • O tempo de acesso a informação ainda é um potencial gargalo no processamento, apesar do grande avanço observado. • Problemas de desempenho: • Acesso ao disco • Acesso a DRAM 2. Propor soluções

  17. Como Agilizar? 1. Identificar os pontos de atraso Acesso a informação 2. Propor soluções • Cache – usado em diferentes níveis: • Processador: L1, L2, L3.... • Cache com blocos de disco • Cache para localização de i-nodes • Principio da Localidade - Busca da informação não é aleatória • Processos freqüentemente executam instruções seqüencialmente • Após selecionar um diretório, um arquivo dele normalmente é selecionado • Escalonamento de threads em multiprocessadores – escalonar sempre no mesmo processador para aproveitar blocos na cache

  18. Como Agilizar? • Identificar os pontos de atraso Gerenciamento de Arquivo em Disco • Como alocar arquivos na memória de forma a obter uma boa relação entre desempenho e utilização da memória • Como recuperar arquivo mais rapidamente? 2. Propor soluções

  19. Como Agilizar? • Identificar os pontos de atraso Gerenciamento de Arquivo em Disco 2. Propor soluções • Alocação Continua X alocação indexada • Uma combinação entre elas? • Cache de trilha • Unix: I-nodes espalhados no disco. Alocação dos arquivos próximos de seus i-nodes.

  20. Como Agilizar • Identificar os pontos de atraso Execução do caso comum • Nos casos que se pode identificar duas possibilidades, identificar a mais comum e minimizar sua execução 2. Propor soluções

  21. Como Agilizar? • Identificar os pontos de atraso Execução do caso comum 2. Propor soluções • Entrar em uma Região Critica: • Caso comum – conseguir – ex. usar TSL - rápido • Caso raro - bloquear – executar down – lento • Busca por Página (Memória virtual) • Caso comum – presente na memória – localização/acesso rápido. Manutenção de estatística rápida • Caso raro – falta de página – algoritmo para busca mais lento

  22. Conteúdo • Porque avaliar desempenho de sistemas operacionais • Como Agilizar? • Identificar pontos de atraso • Propor solução • Avaliar solução • Técnicas para Avaliação de Desempenho de Sistemas Operacionais • Aplicações em Sistemas Operacionais

  23. Rede de Filas Simulação Sistema Medições Dados Técnicas de Avaliação de Desempenho Aferição Aferição Modelagem Protótipos Benchmarcks Redes de Petri Analítica Monitores Statecharts

  24. Simulação Rede de Filas Sistema Modelo Solução Métodos Analíticos Simulação Técnicas de Avaliação de Desempenho Modelagem Aferição Modelagem Protótipos Benchmarcks Redes de Petri Analítica Monitores Statecharts

  25. Conteúdo • Porque avaliar desempenho de sistemas operacionais • Como Agilizar? • Identificar pontos de atraso • Propor solução • Avaliar solução • Técnicas para Avaliação de Desempenho de Sistemas Operacionais • Aplicações em Sistemas Operacionais

  26. Aplicações em SO • Técnicas de Aferição • Monitores • Instrumentação de software ou hardware • Benchmarks • Técnicas de Modelagem • Simulação

  27. Aplicações em SO • Técnicas de Aferição • Medidas no próprio sistema • Sistema deve existir e estar disponível • Experimentação restrita • Muito cuidado com aquisição dos dados

  28. Aplicações em SO • Técnicas de Aferição Monitores Ferramenta para observar as atividades de um sistema coletando as características relevantes em utilização normal • Determinar partes mais utilizadas • Determinar gargalos • Ajustar Parâmetros • Caracterizar Carga de Trabalho

  29. Aplicações em SO Exemplos de Monitores para SOs • Linux (Ubuntu)

  30. Aplicações em SO Exemplos de Monitores para SOs • Linux • Coleta de Informações no diretório /proc • Vários sub-diretórios Fonte: Mestrado de William Voorsluys – ICMC- USP, 2006

  31. Aplicações em SO Exemplos de Monitores para SOs • Linux • Coleta de Informações no diretório /proc • Vários sub-diretórios Fonte: Mestrado de William Voorsluys – ICMC- USP, 2006

  32. Aplicações em SO • Técnicas de Aferição Benchmarks Programa escrito em linguagem de alto nível, representativo de uma classe de aplicações, utilizado para medir o desempenho de um dado sistema ou para comparar diferentes sistemas • Comparar desempenho de máquinas diferentes • Reprojetar hardware e software • Decidir sobre aquisição de sistemas • Ajudar na otimização de programas • Previsão de desempenho de aplicações em computadores específicos

  33. Aplicações em SO Exemplos de Benchmarks para SOs • Benchmarks específicos para SOs • Avalia o funcionamento de partes do SO • Por exemplo: memória, cache, disco • Benchmarks de carater geral • Avalia processadores e computadores em geral • Quando executado em dois SOs na mesma máquina, avalia o SO

  34. Aplicações em SO Exemplos de Benchmarks para SOs • Benchmarks específicos para SOs • Bandwidth: mede velocidades de leitura/escrita do cache L2, da memória RAM, da memória de vídeo e a velocidade de execução de funções de memória • CacheBench: avalia o desempenho dos caches, medindo largura de banda. • LMbench: mede a transferência de dados entre CPU, cache, memória, rede e disco, em sistemas UNIX • nBench: avalia o desempenho de CPU e largura de banda de memória, simulando operações usadas por aplicações populares • STREAM: avalia o tempo necessário para copiar regiões de memória e medir sua largura de banda • Standard Performance Evaluation Corporation (SPEC) mantém um conjunto de benchmarks para computadores

  35. Aplicaçõea em SO Exemplos de Benchmarks para SOs • Benchmarks de caráter geral • Exemplo: Benchmark comparando Windows 7, Vista e XP • Benchmarks utilizados: • Inicialização da máquina • Inicialização da máquina + página Bing • Desligar sistema

  36. Aplicações em SO Exemplos de Benchmarks para SOs Fonte: http://www.baboo.com.br/conteudo/modelos/Benchmarks-Windows-7-final-x-Vista-x-XP_a35989_z0.aspx

  37. Aplicações em SO Exemplos de Benchmarks para SOs Fonte: http://www.baboo.com.br/conteudo/modelos/Benchmarks-Windows-7-final-x-Vista-x-XP_a35989_z0.aspx

  38. Aplicações em SO • Técnicas de Modelagem • Desenvolvimento de um modelo • Não é necessário ter o sistema disponível • Grande flexibilidade • Resultados estocásticos • Necessita validar modelo e solução

  39. Aplicações em SO • Técnicas de Modelagem Simulação Modelos de simulação são programas de computador nos quais a operação de um sistema e sua carga são descritas utilizando-se algoritmos apropriados. • Linguagens de programação de uso geral • Linguagens de simulação • Extensões funcionais • Pacotes de uso específico • Ambientes para Simulação Automáticos

  40. Aplicações em SO Exemplos de Simuladores para SOs • Moss - Modern Operating Systems Simulators • Baseado nos conceitos apresentados no livro Modern Operating Systems de Andrew Tanenbaum (Tanenbaum, 2009) • classes Java que representam os principais conceitos dos sistemas operacionais: • escalonamento • deadlock • gerenciamento de memória • sistema de arquivos. • Escrito por Ray Ontko e Alexander Reeder / Tanembaum • Software Livre

  41. Aplicações em SO Exemplos de Simuladores para SOs • SOS - Simple Operating System • Baseado no livro Operating Systems: A Design-Oriented - Charles Crowley • Simula: • processo em execução • memória • interrupção • relógio • disco rígido

  42. Aplicações em SO Exemplos de Simuladores para SOs • SOSIM - Sistema operacional Simulado • Interface gráfica • Principais características: • gerenciador de processos • gerenciador de memória • Não simula • entrada e saída • Sistema de Arquivos • Luiz Maia e Ageu Pacheco – NCE/UFRJ

  43. Aplicações em SO Vários Outros Exemplos • MOSS (Mini Operating-System Simulator) • permite a programação do SO no ambiente Java • The OS applet • classes Java representam partes do sistema: Processo, entrada/saída, o processador, dispositivos • Simuladores para ensino de Computer Science • Disponibiliza um conjunto de simulações

  44. Aplicações em SO • Técnicas de Aferição • Processos • Tempo de chaveamento • Escalonamento • Criação de arquivos • Tempo de execução • Influência do quantum • Sobrecarga das interrupções

  45. Aplicações em SO • Técnicas de Aferição • Gerenciamento de Memória • Memória Real (Hardware) • Memória Virtual (hierarquia de memória) • Caches (hierarquia de memória)

  46. Aplicações em SO • Técnicas de Aferição • Gerenciamento de Memória ........ • Memória Real (Hardware) • Tempos de acesso E/L • Utilização da memória • Memória Virtual (hierarquia de memória) • Sobrecarga dos mecanismos • Sobrecarga dos acessos a paginas em disco • Eficiência dos mecanismos de troca de página

  47. Aplicações em SO • Técnicas de Aferição • Gerenciamento de Memória ........ • Memória Cache • Taxa de acerto (hit rate) • Políticas de substituição • Tamanho dos caches • Caches internos/externos ao processador

  48. Aplicações em SO • Técnicas de Aferição • Gerenciamento de Arquivos • Tempos de acesso E/L • Utilização da mídia • Uso de Caches • Sobrecarga de hierarquias • Perfil de usuários • Carga de trabalho

  49. Aplicações em SO • Técnicas de Aferição • Gerenciamento de E/S • Desempenho de dispositivos • Desempenho de interfaces • Uso de DMAs • Acesso compartilhado

  50. Aplicações em SO • Técnicas de Modelagem • Aplicadas a todos os casos já considerados • Definição do Modelo (técnica escolhida) • Escolha da Solução do Modelo • Experimentação com o Modelo • Execução de programas de simulação – utilização de simuladores de Sistemas Operacionais

More Related