520 likes | 690 Views
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
E N D
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
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
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?
Porque Avaliar SO? Diversos Motivos, relacionados a: • Requisitos básicos de SOs • Requisitos de Mercado • Gerenciamento
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
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.
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.?
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.
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
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
Como Agilizar? 1. Identificar os pontos de atraso e verificar o impacto desse atraso 2. Propor soluções 3. Avaliar soluções
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
Aplicações em SO • Técnicas de Aferição • Monitores • Instrumentação de software ou hardware • Benchmarks • Técnicas de Modelagem • Simulação
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
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
Aplicações em SO Exemplos de Monitores para SOs • Linux (Ubuntu)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
Aplicações em SO • Técnicas de Aferição • Gerenciamento de E/S • Desempenho de dispositivos • Desempenho de interfaces • Uso de DMAs • Acesso compartilhado
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