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

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

Escalonamento de Tempo Real

Apresentações semelhantes


Apresentação em tema: "Escalonamento de Tempo Real"— Transcrição da apresentação:

1 Escalonamento de Tempo Real
Métodos de escalonamento de processos para sistemas de tempo real

2 Escalonamento de Processos
Bloco de Controle Programa que foi ativado Estados de um processo: ID do Processo Estado Prioridade Escalonador Program Counter Criação Término New Running Memory Pointers Ready Halted Contexto (regs.) I/O Status Evento ocorreu Esperando evento Waiting Accounting Info tempo CPU limites, etc.

3 Filas de Escalonamento
Short-term scheduling Long- term queue Short- term queue Process request FIM CPU High-level scheduling I/O I/O queue I/O scheduling I/O queue I/O Interrupt of process from I/O Interrupt Handler I/O I/O queue

4 Exemplo Processo A parou: Req. serviço ao S.O.
Sist. Operacional A “Waiting B “Ready Execu-tando Contr. Serviços Scheduler contr. interrupção Outros processos A “Waiting B Run Execu- tando Contr. Serviços Scheduler contr. interrupção Outros processos Sist. Operacional Processo A parou: Req. serviço ao S.O. Interrupção de A Ex. erro Interrupção de outra fonte Ex. I/O Sist. Operacional Contr. Serviços Scheduler contr. interrupção A Run Execu- tando B “Ready” Outros processos

5 Taxonomia de Escalonamento
Estático Baixo overhead Não flexível Dinâmico Requer kernel flexível Online Decisões tomadas online Offline Decisões tomadas offline Pre-emptivo Não pre-emptivo Mono-Processador Multi-processador

6 Escalonamento Pre-runtime

7 Escalonamento pre-runtime

8 Exemplo 2

9 Exemplo 3

10 Núcleos operacionais para sistemas de tempo real
Real-Time Kernels Núcleos operacionais para sistemas de tempo real

11 Introdução Que funções um núcleo deve ter? Que tipos existem?
Como são implementados? Núcleo: comprar ou construir, eis a questão.

12 Funções de um núcleo Escalonamento Dispatcher
Comunicação entre tarefas

13 Tipos de Núcleo Nano-kernel: Micro-kernel: Kernel: Executivo
Uma única thread (apenas task dispatching) Micro-kernel: + escalonamento (multi-tasking) Kernel: + comunicação Executivo Blocos privados de memória, I/O e outros serviços (maioria dos kernels comerciais) Sistema Operacional Interface com usuário (shell), gerenciamento de arquivos, segurança.

14 Sistemas de Tempo Real - STR Implementação
WCET: Restrições Impostas Memória virtual Memória cache Alocação dinâmica de memória Garbage collection Recursão Técnicas de Implementação Interrupção Exceção Polling Processos em background e Foreground Co-rotinas

15 Polled Loop Exemplo: while TRUE do { if (sensor_ativo)
processe_dados(); sensor_ativo = FALSE; }

16 Polled Loop com interrupções
Elimina switch bounce while TRUE do { if (tecla_ativa) contador = 0; while (contador < 3); tecla_ativa = FALSE; processe_dados(); } interrupt Clock { contador++; }

17 Phase/State-Driven Code
Processos são implementados como FSMs while TRUE { get(input); estado = transicao[ord(input)][state]; executeProcesso(estado); } executeProcesso(state estado) switch estado case 0: processo0; case 1: processo1;

18 Corotinas (Ada e Modula-2)
Dificil de Programar ProcessoA() { while TRUE switch estadoA case 0: faseA0; case 1: faseA1; } ProcessoB() { while TRUE switch estadoB case 0: faseB0; case 1: faseB1; }

19 Modelo de Pilha Tarefas são controladas diretamente por interrupção
Salvam seu contexto na pilha Usado em sistemas embarcados Taski salva contexto executa código restaura contexto

20 Round-robin com time slicing
Tarefas tem tempo fixo de execução Salvam seu contexto na pilha Usado em sistemas embarcados

21 Sistemas baseados em prioridade
Rate-monotonic Requer um kernel (pequeno S.O.) para escalonar as tarefas dinamicamente Todas as tarefas são periódicas Tarefas esporádicas podem ser tratadas por “servidores esporádicos”, que são tarefas periódicas Tarefas com menor período têm maior prioridade Existem técnicas de análise capazes de garantir a priori se um conjunto específico de tarefas é escalonável, ou seja, que obedecerão seus deadlines. Para isso, é necessário que: Todos os deadlines sejam iguais aos períodos Não haja precedência ou exclusão mútua

22 Sistemas baseados em prioridade
Deadline monotonic Baseado no rate monotonic Todas as tarefas são periódicas Tarefas esporádicas podem ser tratadas por “servidores esporádicos”, que são tarefas periódicas Tarefas com menor deadline têm maior prioridade Também permite analisar a escalonabilidade, mas não é necessário que os os deadlines sejam iguais aos períodos

23 Sistemas foreground/background
Caso geral de SETR Foreground Processos com interrupções (ex. round-robin, prioridade fixa) Background Processos sem interrupções (pre-emptáveis pelos processos em foreground) Se p = tempo processos foreground e = tempo de execução background t = e / (1-p) = período dos background.

24 Problema da Exclusão Mútua
Garantir que apenas um processo acesse um dado compartilhado por vez: definição de seções críticas Problemas: deadlock starvation (oposto de fairness)

25 Resolvendo a exclusão mútua
Busy-waiting Controle de acesso a região variável Lock loop: test lock bne loop add #1, loop Lock = 0 pode entrar lock = 1 bloqueado e se houver Interrupção? Desabilitar interrupções Simplicidade Regiões devem ser pequenas Inviável em multiprocessadores

26 Núcleo: comprar ou construir
Existem núcleos para sistemas embarcados? Performance Complexidade Corretude

27 Comunicação Mailboxes Regiões Críticas Primitivas de comunicação
Semáforos

28 Comentários Multi-tarefa em tempo real pode ser conseguido sem interrupções (mais fácil de analisar) Um kernel cíclico sem interrupção usa um ou mais ciclos principais para descrever a ordem de execução de ciclos menores Arquiteturas foreground/background são as mais usadas Modelo task-control block é usado em kernels e S.O. comerciais com No. de tarefas dinâmico e indeterminado. Quanto mais flexibilidade no kernel, mais complexo, lento e difícil de analisar


Carregar ppt "Escalonamento de Tempo Real"

Apresentações semelhantes


Anúncios Google