Escalonamento de Tempo RealIntrodução
André Luis Meneses [email protected]
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
Top Related