avaliação de desempenho dos escalonadores de processos disponibilizados no linux alessandro...

30
Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

Upload: internet

Post on 17-Apr-2015

108 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

Avaliação de Desempenho dos Escalonadores de Processos

Disponibilizados no Linux

Alessandro NakamutaBruno Guazzelli Batista

Paulo Sérgio Franco Eustáquio

Page 2: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

Sistemas Operacionais ICMC USP 2

Roteiro

Introdução

Revisão Bibliográfica

Objetivos

Page 3: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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

Page 4: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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

Page 5: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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.

Page 6: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

Sistemas Operacionais ICMC USP 6

Políticas de Escalonamento

FIFO

Round-Robin

Page 7: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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

Page 8: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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

Page 9: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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

Page 10: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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.

Page 11: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

Sistemas Operacionais ICMC USP 11

Parte 2

Page 12: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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).

Page 13: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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

Page 14: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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.

Page 15: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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.

Page 16: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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.

Page 17: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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.

Page 18: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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.

Page 19: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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

Page 20: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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;

Page 21: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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

Page 22: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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

Page 23: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

Sistemas Operacionais ICMC USP 23

Políticas de Escalonamento do Linux

Page 24: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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.

Page 25: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

Sistemas Operacionais ICMC USP 25

Esquema Geral para a Solução do Projeto

Page 26: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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.

Page 27: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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.

Page 28: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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;

Page 29: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

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.

Page 30: Avaliação de Desempenho dos Escalonadores de Processos Disponibilizados no Linux Alessandro Nakamuta Bruno Guazzelli Batista Paulo Sérgio Franco Eustáquio

Sistemas Operacionais ICMC USP 30

Dúvidas – Sugestões?

Obrigado!