View
106
Download
1
Category
Preview:
Citation preview
Avaliação de Desempenho dos Escalonadores de Processos
Disponibilizados no Linux
Alessandro NakamutaBruno Guazzelli Batista
Paulo Sérgio Franco Eustáquio
Sistemas Operacionais ICMC USP 2
Roteiro
Introdução
Revisão Bibliográfica
Objetivos
Sistemas Operacionais ICMC USP 3
Introdução
Computadores modernos podem fazer diversas coisas ao mesmo tempo
Apesar do processador executar uma tarefa por vez, esta atividade ocorre tão rápida que dá a ilusão de estar executando várias tarefas ao mesmo tempo
Esta troca de tarefas no processador é chamada de escalonamento de processos
Sistemas Operacionais ICMC USP 4
Escalonamento de Processos
As regras que o SO considera para que os processos sejam executados constituem a política de escalonamento
Através dela que a execução dos processos é conduzida
Sistemas Operacionais ICMC USP 5
Escalonamento de Processos
Características que um escalonador de processos deve apresentar: Justiça; Eficiência; Minimizar o Tempo de Resposta; Maximizar Throughput.
Sistemas Operacionais ICMC USP 6
Políticas de Escalonamento
FIFO
Round-Robin
Sistemas Operacionais ICMC USP 7
Políticas de Escalonamento
SJF (Shortest Job First) Menor processo é executado primeiro Aumento de throughput Injusto, pois grandes processos devem aguardar
para serem executados
Escalonamento com prioridades Considera fatores externos Escalonador pode alterar prioridade dos processos
Sistemas Operacionais ICMC USP 8
Avaliação de Desempenho
Toda atividade envolvida no processo computacional pode e deve ser medida e avaliada, a fim de que se possa certificar se ela é adequada à aplicação para a qual foi projetada
Tarefa não-trivial
Critérios de avaliação são fundamentais para uma boa análise
Sistemas Operacionais ICMC USP 9
Técnicas de Avaliação de Desempenho
Técnicas de Modelagem Desenvolvimento de um modelo que represente o
sistema real Modelar sistema real completo é complexo, o ideal
é modela-lo pensando apenas no que é relevante Simulação: através de programa computacional Analítico: utilização de equações matemáticas
Sistemas Operacionais ICMC USP 10
Técnicas de Avaliação de Desempenho
Técnicas de Aferição Coleta de dados de um sistema computacional
pronto Desvantagem: Disputa recursos com o sistema que
está sendo avaliado 3 técnicas de aferição:
Protótipos; Benchmarks; Monitoração.
Sistemas Operacionais ICMC USP 11
Parte 2
Sistemas Operacionais ICMC USP 12
Escalonamento no Linux
• Processos são divididos em 3 grandes classes:
– Interativos (iniciados através de uma sessão no terminal);
– Batch (não são conectados a uma sessão de terminal e são agrupados em uma fila para serem executados sequencialmente);
– Tempo Real (processos críticos, iniciados durante iniciação do sistema).
Sistemas Operacionais ICMC USP 13
Escalonamento no Linux
Divide o tempo de CPU em fatias
Processos executam de acordo com a sua fatia de tempo
Linux escolhe qual processo deve rodar de acordo com a prioridade do processo
Dois tipos de prioridade:
Estática: esquema utilizado em processos de Tempo Real. Valor definido pelo usuário e não pode ser alterado pelo escalonador. Valor varia de 1 a 99
Dinâmica: o escalonador monitora o processo e ajusta a sua prioridade para equalizar a utilização da CPU. Escalonador pode alterar prioridade de um processo. Privilegia processos I/O Bound.
Processos convencionais tem sempre prioridade inferior aos processos com prioridade estática
Sistemas Operacionais ICMC USP 14
Políticas de Escalonamento do Linux
• Linux provê 5 políticas diferentes para selecionar um processo:
– SCHED_FIFO;
– SCHED_RR;
– SCHED_OTHER;
– SCHED_BATCH;
– SCHED_IDLE.
Sistemas Operacionais ICMC USP 15
Políticas de Escalonamento do Linux
• SCHED_FIFO: apenas para processos de Tempo Real. Processo libera CPU em 3 situações:
• Quando termina ou bloqueia;
• Quando chega outro processo RT com > prioridade
• Libera processador espontaneamente para um processo de prioridade igual.
Sistemas Operacionais ICMC USP 16
Políticas de Escalonamento do Linux
• SCHED_RR: ao ser criado o processo é inserido no final da fila correspondente a sua prioridade. Também para processos RT. Libera CPU nas seguintes situações:
– Quantum esgota;
– Processo de prioridade superior se torna apto;
– Libera processador espontaneamente para um processo de prioridade igual.
– Termina ou bloqueia.
Sistemas Operacionais ICMC USP 17
SCHED_FIFO X SCHED_RR
• Ambos possuem prioridade estática de 1(baixa) a 99(alta);
• Processos de Tempo Real;
• Cada política possui sua fila de processos;
• Escalonamento entre as filas de processos é feito de acordo com a prioridade de um processo.
• Posso alterar a política de escalonamento de um processo. Sendo assim, um processo que está numa fila que utiliza a política RR pode mudar para uma fila que utiliza a política FIFO.
Sistemas Operacionais ICMC USP 18
Políticas de Escalonamento do Linux
• SCHED_OTHER
– É a política de escalonamento padrão do Linux.
– Possui prioridade estática 0, portanto sempre tem menos prioridade do que as políticas de tempo real.
– A prioridade entre eles é calculada através de prioridades dinâmicas.
Sistemas Operacionais ICMC USP 19
Políticas de Escalonamento do Linux
– Essas prioridades são calculadas pelo escalonador através do valor do nice e do tempo de processamento.
• O valor de nice vai de -20 (maior prioridade) a 19 (menor prioridade)
• Quanto mais tempo de processamento, menor a prioridade.
– Com isso o kernel do Linux dá mais preferência a processos I/O-Bound.
– Sistema multifilas, onde temos uma fila para cada prioridade
Sistemas Operacionais ICMC USP 20
Políticas de Escalonamento do Linux
• Libera CPU nas situações:
– Quantum esgota;
– Processo de prioridade superior se torna apto;
– Libera processador espontaneamente para um processo de prioridade igual.
– Termina ou bloqueia;
Sistemas Operacionais ICMC USP 21
Políticas de Escalonamento do Linux
• SCHED_BATCH
– Tudo que se falou do SCHED_OTHER se aplica ao SCHED_BATCH.
– As diferenças fundamentais:
• Quantum maior
• Tempo de processamento perde menos prioridade
– Ideal para sistemas não interativos
Sistemas Operacionais ICMC USP 22
Políticas de Escalonamento do Linux
• SCHED_IDLE
– É indicado para processos com pouca prioridade
– Só vai rodar em ciclos de CPU ociosas
– Não sobe a prioridade no caso de ficar bastante tempo na fila
– Os processos podem sofrer starvation
Sistemas Operacionais ICMC USP 23
Políticas de Escalonamento do Linux
Sistemas Operacionais ICMC USP 24
Escalonamento no Linux
• O escalonador do Linux pode ser ativado de 2 formas:
– Direta: chamada explícita à rotina que implementa o escalonador. Ou seja, uma chamada de sistema para a solicitação de E/S ou sincronização;
– Lazy: ocorre em 3 situações:
• Rotina de tratamento de interrupção de tempo aciona o escalonador quando se esgota o quantum;
• Quando processo de maior prioridade é desbloqueado;
• O processo em execução libera expontaneamente a CPU, através de uma chamada de sistema do tipo yeld.
Sistemas Operacionais ICMC USP 25
Esquema Geral para a Solução do Projeto
Sistemas Operacionais ICMC USP 26
Objetivo
Estudar o funcionamento do escalonador de processos do Linux;
Avaliar o desempenho do sistema de acordo com as diferentes políticas de escalonamento.
Sistemas Operacionais ICMC USP 27
Ambiente
• Sistema Operacional Linux
• Ubuntu Server Kernel 2.6.28
• Script → interpretador de comandos bash para inicializar todos os processos.
• Benchmark, onde serão atribuídas diferentes cargas proporcionando diferentes resultados para comparação.
Sistemas Operacionais ICMC USP 28
Avaliação• O projeto utilizará os seguintes fatores:
– Políticas SCHED_FIFO e SCHED_RR;
– Tipos de processos: I/O Bound e CPU Bound;
– Prioridades dos processos;
• Cargas de Trabalho:– 100% CPU Bound;
– 100% I/O Bound;
– 50% CPU Bound e 50% I/O Bound;
– 70% CPU Bound e 30% I/O Bound;
– 30% CPU Bound e 70% I/O Bound;
Sistemas Operacionais ICMC USP 29
O que medir?
• Depende da aplicação e do tipo do sistema
• Turnaround
– Tempo de processamento + Tempo de espera
– Satisfação do usuário
• Throughput
– Relação entre utilização e tempo de resposta.
– Produtividade do sistema X Satisfação do usuário.
Sistemas Operacionais ICMC USP 30
Dúvidas – Sugestões?
Obrigado!
Recommended