Escalonamento de Tempo Real Introdução
description
Transcript of Escalonamento de Tempo Real Introdução
![Page 1: Escalonamento de Tempo Real Introdução](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/1.jpg)
Escalonamento de Tempo RealIntrodução
André Luis Meneses [email protected]
http://strufs.wordpress.com/
![Page 2: Escalonamento de Tempo Real Introdução](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/2.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/3.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/4.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/5.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/6.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/7.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/8.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/9.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/10.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/11.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/12.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/13.jpg)
Tarefas
Período de Ativação
Deadline
Tempo de Computação
Jitter (J)
![Page 14: Escalonamento de Tempo Real Introdução](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/14.jpg)
TarefasLegendaTempo de ChegadaTempo de liberaçãoTempo de inícioTempo de término
![Page 15: Escalonamento de Tempo Real Introdução](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/15.jpg)
Tarefas
Tempo de Computação
Essa tarefa é periódica ou aperiódica?
![Page 16: Escalonamento de Tempo Real Introdução](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/16.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/17.jpg)
Tarefa AperiódicaLegendaTempo de Chegadamini
Tempo de inícioTempo de término
![Page 18: Escalonamento de Tempo Real Introdução](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/18.jpg)
Estados de uma tarefa (processo)
![Page 19: Escalonamento de Tempo Real Introdução](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/19.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/20.jpg)
Escalonamento
Escala de Execução
Política de Escalonamento
(Ordem)
![Page 21: Escalonamento de Tempo Real Introdução](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/21.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/22.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/23.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/24.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/25.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/26.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/27.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/28.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/29.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/30.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/31.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/32.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/33.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022052401/56815cc6550346895dcacb3f/html5/thumbnails/34.jpg)
Referências
• Farines (Capítulo 2)– Seções 2.1 a 2.3