Escalonamento de tempo real introdu o
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

Escalonamento de Tempo Real Introdução PowerPoint PPT Presentation


  • 53 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

Escalonamento de Tempo Real Introdução

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Escalonamento de tempo real introdu o

Escalonamento de Tempo RealIntrodução

André Luis Meneses Silva

[email protected]

http://strufs.wordpress.com/


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.


Abordagens para concorr ncia

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 ncia1

Abordagens para Concorrência

/* Módulo de inicialização da aplicação */

intinit_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);

return0;

}


Abordagens para concorr ncia2

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 ncia3

Abordagens para concorrência

module REGNIVEL :

input Inic_Reg, Fim_Reg, Niv_min, Niv_max;

output Abra_Valv, Fecha_Valv;

awaitInic_Reg;

emitFecha_Valv;

abort

loop

awaitNiv_min;

emitAbra_Valv;

awaitNiv_max;

emitFecha_Valv;

endloop

whenFim_Reg

endmodule


Abordagem ass ncrona

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

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


Tarefas1

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.


Tarefas2

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.


Tarefas3

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.


Tarefas4

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


Tarefas5

Tarefas

Período de Ativação

Tempo de Computação

Jitter (J)

Deadline


Tarefas6

Tarefas

Legenda

Tempo de Chegada

Tempo de liberação

Tempo de início

Tempo de término


Tarefas7

Tarefas

Essa tarefa é periódica ou aperiódica?

Tempo de Computação


Tarefas8

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 dica

Tarefa Aperiódica

Legenda

Tempo de Chegada

mini

Tempo de início

Tempo de término


Estados de uma tarefa processo

Estados de uma tarefa (processo)


Escalonamento

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.


Escalonamento1

Escalonamento

Escala de Execução

Política de Escalonamento

(Ordem)


Escalonamento2

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.


Escalonamento3

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.


Escalonamento4

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

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 real1

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 real2

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 real3

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 real4

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 real5

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 real6

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 real7

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

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

Referências

  • Farines (Capítulo 2)

    • Seções 2.1 a 2.3


  • Login