Escalonamento de Tempo Real Introdução

34
Escalonamento de Tempo Real Introdução André Luis Meneses Silva [email protected] http:// strufs.wordpress.com/

description

Escalonamento de Tempo Real Introdução. André Luis Meneses Silva [email protected] http://strufs.wordpress.com/. Introdução. - PowerPoint PPT Presentation

Transcript of Escalonamento de Tempo Real Introdução

Page 1: Escalonamento de Tempo Real Introdução

Escalonamento de Tempo RealIntrodução

André Luis Meneses [email protected]

http://strufs.wordpress.com/

Page 2: Escalonamento de Tempo Real Introdução

Introdução

• O problema de tempo real consiste então em especificar, verificar e implementar sistemas ou programas que, mesmo com recursos limitados, apresentem comportamento previsível.

• Tempo real é intrínseco de programação concorrente.

Page 3: Escalonamento de Tempo Real Introdução

Abordagens para Concorrência

• Assíncrona– Introduzida por Robert Milner– Ocorrência e percepção de eventos em uma ordem

arbitrária, mas não simultânea.– Interleaving (Entrelaçamento de eventos).– Visa a descrição precisa e exata do sistema.– Análise de propriedades do sistema é complexa.– Orientada a implementação– Pouco portável.– Implementada por Ada, CSP, Real-Time Concurrent C.

Page 4: Escalonamento de Tempo Real Introdução

Abordagens para Concorrência/* Módulo de inicialização da aplicação */

int init_module( void ){ RTIME now = rt_get_time();

/* Inicializa a tarefa em 5 ms */ rtl_task_init( &my_task, cod_tarefa, arg,

stk_size, 1 );

/* Executa a cada 50 ms, aproximadamente 450 na unidade usada */

rtl_task_make_periodic(&mytask, now, 450); return 0;}

Page 5: Escalonamento de Tempo Real Introdução

Abordagens para concorrência• Síncrona– Introduzida por Gérard Berry– Cálculos e comunicação não levam tempo.– Mais portável– Menos dependente das questões de implementação.– Eventos cronológicos, permitindo simultaneidade.– Não existe interleaving, tempo não é tratado de maneira

explícita.– Velocidade de processamento é considerada infinita.– Facilita a observação e a análise de sistemas de tempo

real.– Implementadas por Esterel, Statecharts, Signal e Lustre.

Page 6: Escalonamento de Tempo Real Introdução

Abordagens para concorrênciamodule REGNIVEL :

input Inic_Reg, Fim_Reg, Niv_min, Niv_max;output Abra_Valv, Fecha_Valv;await Inic_Reg;emit Fecha_Valv;abortloop

await Niv_min;emit Abra_Valv;await Niv_max;emit Fecha_Valv;

endloopwhen Fim_Regendmodule

Page 7: Escalonamento de Tempo Real Introdução

Abordagem Assíncrona

• Neste momento, iremos focar a abordagem assíncrona.– Estudaremos escalonamento de tempo real

adequada à classe de problemas que o sistema deve tratar.

– Iremos ver aspectos da teoria de escalonamento e de sistemas operacionais sob a ótica de tempo real.

Page 8: Escalonamento de Tempo Real Introdução

Tarefas

• Unidades de processamento seqüencial que concorrem sobre um ou mais recursos computacionais do sistema.

• Além da correção lógica (correctness), tarefas de tempo real também devem apresentar correção temporal (timeliness).

Page 9: Escalonamento de Tempo Real Introdução

Tarefas

• Podem ser:– Tarefas Críticas• Quando ao ser completada após o seu deadline pode

causar falhas catastróficas no sistema de tempo real e em seu ambiente.

– Tarefas Brandas• Essas tarefas quando completadas após seu deadline

no máximo implicam em uma diminuição do desempenho do sistema.

Page 10: Escalonamento de Tempo Real Introdução

Tarefas

• Tarefas periódicas, aperiódicas e esporádicas.– Similar ao que foi visto em eventos.– Tarefas periódicas, em geral, são associadas a

deadlines hard– Tarefas aperiódicas, em geral, são associadas a

deadlines soft• Tarefas se diferenciam de eventos por não ser

causadas por interrupção, desvios condicionais e não condicionais.

Page 11: Escalonamento de Tempo Real Introdução

Tarefas

• Alguns conceitos relativos a tempo– Tempo de computação ("Computation Time") (C)• O tempo de computação de uma tarefa é o tempo

necessário para a execução completa da tarefa.– Tempo de início ("Start Time“) (st)• Esse tempo corresponde ao instante de início do

processamento da tarefa em uma ativação.– Tempo de término ("Completion Time“) (ct)• É o instante de tempo em que se completa a execução

da tarefa na ativação.

Page 12: Escalonamento de Tempo Real Introdução

Tarefas• Alguns conceitos relativos a tempo:

– Tempo de chegada ("Arrival Time") (a)• Instante em que o escalonador toma conhecimento de uma ativação

dessa tarefa. – Tarefas periódicas

» o tempo de chegada coincide sempre com o início do período da ativação.

– Tarefas aperiódicas » Momento em que a tarefa foi solicitada

– Tempo de liberação ("Release Time“) (r)• O tempo de liberação de uma tarefa coincide com o instante de sua

inclusão na fila de Pronto (fila de tarefas prontas) para executar.– Release Jitter (J)

• Máxima variação dos tempos de liberação das instâncias das tarefas

Page 13: Escalonamento de Tempo Real Introdução

Tarefas

Período de Ativação

Deadline

Tempo de Computação

Jitter (J)

Page 14: Escalonamento de Tempo Real Introdução

TarefasLegendaTempo de ChegadaTempo de liberaçãoTempo de inícioTempo de término

Page 15: Escalonamento de Tempo Real Introdução

Tarefas

Tempo de Computação

Essa tarefa é periódica ou aperiódica?

Page 16: Escalonamento de Tempo Real Introdução

Tarefas

• Tarefas Periódicas– Representada pela quádrupla (Ji, Ci, Pi, Di), onde• Pi = período da tarefa, Ci = tempo de computação da

tarefa, Di = Deadline e Ji é o Release Jitter

• Tarefas Aperiódicas– Representada pela tripla (Ci, Di, mini), onde• Ci = tempo de computação da tarefa, Di = Deadline e

mini é o mínimo intervalo entre duas requisições consecutivas.

Page 17: Escalonamento de Tempo Real Introdução

Tarefa AperiódicaLegendaTempo de Chegadamini

Tempo de inícioTempo de término

Page 18: Escalonamento de Tempo Real Introdução

Estados de uma tarefa (processo)

Page 19: Escalonamento de Tempo Real Introdução

Escalonamento

• Escalonamento– Ordenar tarefas na fila de pronto.

• Escala de execução– Ordenação ou lista que indica a ordem de ocupação

do processador por um conjunto de tarefas disponíveis na fila de pronto.

• Política de escalonamento– Implementada pelo escalonador, define critérios ou

regras para ordenação das tarefas na fila de pronto.

Page 20: Escalonamento de Tempo Real Introdução

Escalonamento

Escala de Execução

Política de Escalonamento

(Ordem)

Page 21: Escalonamento de Tempo Real Introdução

Escalonamento

• Algoritmos de escalonamento podem ser:– Escalonamento preemptivo • Quando tarefas podem interrompidas, quando em

estado de execução.

– Escalonamento não preemptivo• Quando tarefas não podem ser interrompidas, quando

em estado de execução.

Page 22: Escalonamento de Tempo Real Introdução

Escalonamento

• Algoritmos de escalonamento podem ser:– Estático• Quando cálculo da escala de execução é feito tomando

como base parâmetros atribuídos às tarefas do conjunto em tempo de projeto.

– Dinâmico• Baseados em parâmetros que mudam em tempo de

execução com a evolução do sistema.

Page 23: Escalonamento de Tempo Real Introdução

Escalonamento

• Algoritmos de escalonamento podem ser:– Off-line• Algoritmos que produzem a escala de execução em

tempo de projeto.

– On-line• Algoritmos que produzem a escala de execução em

tempo de execução.

Page 24: Escalonamento de Tempo Real Introdução

Escalonamento de Tempo Real

• Problema NP-Completo• Algoritmos existentes representam uma

solução polinomial.• Heurísticas também podem ser aplicadas para

encontrar uma escala realizável.

Page 25: Escalonamento de Tempo Real Introdução

Escalonamento de Tempo Real

• Em escalonamento de tempo real, um importante conceito é o de carga computacional.– Somatório dos tempos de computação das tarefas

na fila de prontos.

Page 26: Escalonamento de Tempo Real Introdução

Escalonamento de Tempo Real

• Cargas podem ser:– Carga estática ou limitada• todas as suas tarefas são bem conhecidas em tempo de

projeto• Modeladas através de tarefas periódicas e esporádicas

– Carga dinâmica ou ilimitada• Características de chegadas da tarefa não pode ser

antecipada.• Modeladas através de tarefas aperiódicas.

Page 27: Escalonamento de Tempo Real Introdução

Escalonamento de Tempo Real

• Abordagens para o escalonamento– Garantia em tempo de projeto– Garantia em tempo de execução– Abordagens de melhor esforço

Page 28: Escalonamento de Tempo Real Introdução

Escalonamento de Tempo Real• Garantia em tempo de projeto• Carga computacional estática.• No sistema existe uma reserva de recursos suficiente para

a execução das tarefas, incluindo pior caso.• Testes de escalonabilidade em tempo de projeto.• Desperdício de recursos• Executivo Cíclico.

– Escala de execução de tamanho finito e definida em tempo de projeto.

• Escalonamento dirigido a prioridades.– Escala é produzida em tempo de execução.

Page 29: Escalonamento de Tempo Real Introdução

Escalonamento de Tempo Real

• Garantia em tempo de execução• Carga computacional dinâmica.• Escala de execução e teste de escalonabilidade realizado

em tempo de execução.– Se a nova tarefa não satisfazer deadline, a mesma é descartada.

• Podem descartar tarefas desnecessariamente• Indicado para sistemas críticos que operam em ambientes

não-determinístico.

Page 30: Escalonamento de Tempo Real Introdução

Escalonamento de Tempo Real

• Abordagens de melhor esforço• Carga computacional dinâmica.• Não existe previsão de pior caso• Não consegue prever recursos para todas as situações de

carga.• Escala de execução e teste de escalonabilidade realizado

em tempo de execução.– Não descartam a nova tarefa, caso ela provoque perda de

deadline.

• Possui bom desempenho nos casos médios.

Page 31: Escalonamento de Tempo Real Introdução

Escalonamento de Tempo Real

• O escalonamento de tempo real é dividido em duas etapas fundamentais:– Teste de escalonabilidade– Cálculo da escala de execução

Page 32: Escalonamento de Tempo Real Introdução

Teste de Escalonabilidade

• Determina se existe uma escala realizável para um conjunto de tarefas.

• Normalmente correspondem a análise de pior caso.

• Podem ser de três tipos:– Exatos.– Suficientes.– Necessários.

Page 33: Escalonamento de Tempo Real Introdução

Testes de Escalonabilidade• Testes Exatos.– Identificam, exatamente, conjuntos escalonáveis e

não escalonáveis.• Testes Suficientes.– São mais simples, porém apresentam o custo de

descarte de conjuntos de tarefas escalonáveis.• Testes Necessários.– Simples, mas não tão restritivo. Não implica que o

conjunto de tarefas é escalonável, porém os conjuntos de tarefas descartados são certamente não escalonáveis.

Page 34: Escalonamento de Tempo Real Introdução

Referências

• Farines (Capítulo 2)– Seções 2.1 a 2.3