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

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

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

Apresentações semelhantes


Apresentação em tema: "Escalonamento de Tempo Real Métodos de escalonamento de processos para sistemas 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 n Programa que foi ativado n Estados de um processo: Ready Running Waiting New Halted Criação Escalonador Término Esperando evento Evento ocorreu ID do Processo Estado Program Counter Memory Pointers Contexto (regs.) I/O Status Prioridade Accounting Info tempo CPU limites, etc. Bloco de Controle

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

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

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

6 Escalonamento Pre-runtime

7 Escalonamento pre-runtime

8 Exemplo 2

9 Exemplo 3

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

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

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

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

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

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

16 Polled Loop com interrupções n 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 n 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) n Dificil de Programar u ProcessoA() { while TRUE switch estadoA case 0: faseA0; case 1: faseA1; } u ProcessoB() { while TRUE switch estadoB case 0: faseB0; case 1: faseB1; }

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

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

21 Sistemas baseados em prioridade n Rate-monotonic u Requer um kernel (pequeno S.O.) para escalonar as tarefas dinamicamente u Todas as tarefas são periódicas u Tarefas esporádicas podem ser tratadas por “servidores esporádicos”, que são tarefas periódicas u Tarefas com menor período têm maior prioridade u 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: F Todos os deadlines sejam iguais aos períodos F Não haja precedência ou exclusão mútua

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

23 Sistemas foreground/background n Caso geral de SETR n Foreground u Processos com interrupções (ex. round-robin, prioridade fixa) n Background u Processos sem interrupções (pre-emptáveis pelos processos em foreground) u 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 n Garantir que apenas um processo acesse um dado compartilhado por vez: u definição de seções críticas n Problemas: u deadlock u starvation (oposto de fairness)

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

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

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

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


Carregar ppt "Escalonamento de Tempo Real Métodos de escalonamento de processos para sistemas de tempo real."

Apresentações semelhantes


Anúncios Google