Escalonamento de Tempo Real Introdução

Post on 10-Feb-2016

36 views 1 download

description

Escalonamento de Tempo Real Introdução. André Luis Meneses Silva andreluis.ms@gmail.com http://strufs.wordpress.com/. Introdução. - PowerPoint PPT Presentation

Transcript of Escalonamento de Tempo Real Introdução

Escalonamento de Tempo RealIntrodução

André Luis Meneses Silvaandreluis.ms@gmail.com

http://strufs.wordpress.com/

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.

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.

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;}

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.

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

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.

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

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.

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.

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.

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

Tarefas

Período de Ativação

Deadline

Tempo de Computação

Jitter (J)

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

Tarefas

Tempo de Computação

Essa tarefa é periódica ou aperiódica?

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.

Tarefa AperiódicaLegendaTempo de Chegadamini

Tempo de inícioTempo de término

Estados de uma tarefa (processo)

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.

Escalonamento

Escala de Execução

Política de Escalonamento

(Ordem)

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.

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.

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.

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.

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.

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.

Escalonamento de Tempo Real

• Abordagens para o escalonamento– Garantia em tempo de projeto– Garantia em tempo de execução– Abordagens de melhor esforç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.

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.

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.

Escalonamento de Tempo Real

• O escalonamento de tempo real é dividido em duas etapas fundamentais:– Teste de escalonabilidade– Cálculo da escala de execuçã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.

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.

Referências

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