A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Escalonamento de Tempo Real Introdução André Luis Meneses Silva

Apresentações semelhantes


Apresentação em tema: "Escalonamento de Tempo Real Introdução André Luis Meneses Silva"— Transcrição da apresentação:

1 Escalonamento de Tempo Real Introdução André Luis Meneses Silva

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

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

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

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

6 Abordagens para concorrência module REGNIVEL : input Inic_Reg, Fim_Reg, Niv_min, Niv_max; output Abra_Valv, Fecha_Valv; await Inic_Reg; emit Fecha_Valv; abort loop await Niv_min; emit Abra_Valv; await Niv_max; emit Fecha_Valv; endloop when Fim_Reg endmodule

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

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

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

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

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

12 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

13 Tarefas Período de Ativação Deadline Tempo de Computação Jitter (J)

14 Tarefas Legenda Tempo de Chegada Tempo de liberação Tempo de início Tempo de término

15 Tarefas Tempo de Computação Essa tarefa é periódica ou aperiódica?

16 Tarefas Tarefas Periódicas – Representada pela quádrupla (J i, C i, P i, D i ), 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 (C i, D i, min i ), onde Ci = tempo de computação da tarefa, Di = Deadline e mini é o mínimo intervalo entre duas requisições consecutivas.

17 Tarefa Aperiódica Legenda Tempo de Chegada min i Tempo de início Tempo de término

18 Estados de uma tarefa (processo)

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

20 Escalonamento Escala de Execução Política de Escalonamento (Ordem)

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

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

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

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

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

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

27 Escalonamento de Tempo Real Abordagens para o escalonamento – Garantia em tempo de projeto – Garantia em tempo de execução – Abordagens de melhor esforço

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

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

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

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

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

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

34 Referências Farines (Capítulo 2) – Seções 2.1 a 2.3


Carregar ppt "Escalonamento de Tempo Real Introdução André Luis Meneses Silva"

Apresentações semelhantes


Anúncios Google