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

Post on 17-Apr-2015

108 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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!

top related