Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.