Executivo cíclico

Propaganda
Suporte à execução de várias tarefas
❚ Escalonadores e mudanças de contexto
❚
❚
❚
❚
ciclo infinito (“loop” com “polling”)
…
RTOS preemptivo e baseado em prioridades
Escalonadores orientados a metas temporais
SC -- cra
Algumas categorias de escalonadores de tarefas
Tipo de escalonador
Execução de tarefas
Tipo de
interface E/S
Ciclo infinito
Não há tarefas
“polling”
Executivo cíclico básico
Execução sempre que
possível
Executivo cíclico despoletado Frequência única
pelo tempo
Executivo cíclico multiVárias frequências,
frequência
maior precisão
Executivo multi-frequência
Várias frequências,
com interrupções
maior precisão
Escalonamento preemptivo
Tarefas periódicas e
baseado em prioridades
não-periódicas
Escalonamento por metas
Tarefas periódicas e
temporais
não-periódicas
“polling”
“polling”
“polling”
“polling” e
interrupções
“polling” e
interrupções
“polling” e
interrupções
SC -- cra
1
Ciclo infinito
❚ Não há tarefas
❚ Todo o código num mesmo ciclo
❚ Diversas operações executadas em sequência
SC -- cra
Executivo cíclico básico
❚ Código separado em
tarefas
❚ Executadas
sequencialmente num
ciclo infinito
❚ Execução completa
❚ E/S por “polling”
❚ Não há problemas
com partilha de dados
SC -- cra
2
Executivo cíclico depoletado por tempo
❚ Interrupção por
temporizador
❚ Maior precisão no início
da execução
❚ Execução sequencial e
total das tarefas
❚ Devem terminar antes
da próxima interrupção
❚ E/S por “polling”
SC -- cra
Executivo cíclico multi-frequência
❚ Execução de tarefas com
diferentes frequências
❚ Múltiplas da frequência
base (várias execuções por
cada interrupção)
❚ Possível problema com
espaçamento
SC -- cra
3
Limitações dos executivos cíclicos
❚ “Polling”
❚
❚
perda de eventos
desperdício de CPU
❚ Baixa precisão no início de
execução
❚ Preempção manual (complexa)
❚ Problema na partilha de dados
❚ Problemas com modificação de
código
SC -- cra
Executivos multi-frequência para
tarefas periódicas
❚ Interrupções do temporizador a
um ritmo suficientemente
elevado para suportar a tarefa
mais frequente
❚ (mínimo múltiplo comum)
SC -- cra
4
Adição de interrupções
❚ Cuidado na
partilha de
dados
❚ Possíveis
problemas de
coerência
SC -- cra
Executivo multi-frequência com
interrupções
❚ Utilização de conjuntos de
“buffers” diferentes
❚ Inibição temporária das
interrupções para efectuar
troca/cópia
❚ Uma tarefa executa-se
completamente antes do
início de outra
❚ E/S por interrupção em
paralelo, mas dados apenas
disponíveis no ciclo seguinte
SC -- cra
5
Escalonamento preemptivo
❚ Mudança de tarefas em
qualquer altura
❚ Maior complexidade
❚ Necessidade de guardar
contexto das tarefas
❚ RTOS
❚ E/S por “polling” ou
interrupção
SC -- cra
Escalonamento preemptivo
SC -- cra
6
Escalonamento preemptivo
Núcleo preemptivo
Núcleo não-preemptivo
SC -- cra
Problemas associados à preempção
de tarefas
❚ Critérios para a
preempção
(prioridades)
❚ Coerência na
partilha de dados
SC -- cra
7
Mecanismos de sincronização e
comunicação
❚ Semáforos
❚ Filas de
mensagens
(“queues”)
SC -- cra
Outros critérios no escalonamento
❚ Rate Monotonic – maior prioridade a tarefas mais
frequentes
❚ Escalonamento baseado em metas temporais
(“deadline”)
SC -- cra
8
Download