Capítulo 19:
Sistemas de Tempo
Capítulo 19: Sistemas de Tempo Real
Características do sistema
Recursos dos sistemas de tempo real
Implementando sistemas operacionais de
tempo real
Escalonamento de CPU em tempo real Escalonamento de CPU em tempo real VxWorks 5.x
Objetivos
Explicar os requisitos de tempo dos sistemas de
tempo real
Distinguir entre sistemas de tempo real rígidos e
flexíveis
Discutir as características de definição dos
sistemas de tempo real sistemas de tempo real
Descrever os algoritmos de escalonamento para
Visão geral dos sistemas de tempo real
Um sistema de tempo real requer que os
resultados sejam produzidos dentro de um período de tempo especificado.
Um sistema embutido é um dispositivo de
computação que faz parte de um sistema maior (por exemplo, automóvel, avião.)
(por exemplo, automóvel, avião.)
Um sistema de segurança crítica é um sistema de
tempo real com resultados catastróficos em caso de falha.
Um sistema de tempo real rígido garante que as
tarefas de tempo real sejam completadas dentro dos prazos exigidos.
Características do sistema
Finalidade única Pequeno tamanho
Produzidos em massa com pouco custo Requisitos de tempo específicos
Sistema no chip
Muitos sistemas de tempo real são projetados
usando a estratégia system-on-chip (SOC).
SOC permite que CPU, memória, unidade de
gerência de memória e portas periféricas
conectadas (p.e., USB) estejam contidas em um único circuito integrado.
Recursos dos kernels de tempo real
A maioria dos sistemas de tempo real não oferece
os recursos encontrados em um sistema de desktop padrão.
Algumas razões são:
Sistemas de tempo real normalmente servem a
uma única finalidade. uma única finalidade.
Sistemas de tempo real normalmente não
exigem interface com um usuário.
Os recursos encontrados em um PC de
desktop exigem hardware mais substancial do que normalmente está disponível em um
Memória virtual em sistemas de tempo
real
A tradução de endereço pode ocorrer via: (1) Modo de endereçamento real, onde
programas geram endereços reais
(2) Modo registrador de relocação
Implementando sistemas operacionais de
tempo real
Em geral, sistemas operacionais de tempo real
devem oferecer:
(1) Escalonamento preemptivo, baseado em prioridade
(2) Kernels preemptivos (3) Latência reduzida
Reduzindo a latência
Latência de evento é a quantidade de tempo desde
Latência de interrupção
Latência de interrupção é o período de tempo desde
quando uma interrupção chega na CPU até quando ela é atendida.
Latência de despacho
Latência de despacho é a quantidade de tempo
exigida para o escalonador interromper um processo e iniciar outro.
Escalonamento de CPU em tempo real
Processos periódicos requisitam a CPU em
intervalos (períodos) especificados
p é a duração do período
d é o prazo para o processo ser atendido t é o tempo de processamento
Escalonamento de tarefas
O escalonamento de tarefas quando P2 tem
Escalonamento de tarefas
Prazos perdidos com escalonamento
Escalonamento monotônico de taxa
Uma prioridade é atribuída com base no inverso
do seu período
Períodos mais curtos = prioridade mais alta Períodos mais longos = prioridade mais baixa P1 recebe uma prioridade mais alta que P2.
Escalonamento do prazo mais antigo
primeiro
As prioridades são atribuídas de acordo com o
prazo:
Quanto mais cedo o prazo, maior a prioridade; quanto mais tarde o prazo, menor a prioridade.
Escalonamento de quotas proporcionais
T quotas são alocadas entre todos os processos
no sistema.
Uma aplicação recebe N quotas, onde N < T.
Isso garante que cada aplicação receberá N / T
Escalonamento Pthread
A API Pthread oferece funções para
gerenciamento de threads em tempo real.
Pthreads define duas classes de escalonamento
para threads de tempo real:
(1) SCHED_FIFO - threads são escalonados
usando uma estratégia FCFS com uma fila FIFO. usando uma estratégia FCFS com uma fila FIFO. Não existe divisão de tempo para threads de
mesma prioridade.
(2) SCHED_RR – semelhante a SCHED_FIFO, exceto que oferece divisão de tempo entre as
Microkernel Wind
O microkernel Wind tem suporte para o seguinte:
(1) processos e threads;
(2) escalonamento round-robin preemptivo e não preemptivo;
(3) gerenciamento de interrupções (com tempos limitados para a latência de interrupção e de
limitados para a latência de interrupção e de despacho);
(4) facilidades de memória compartilhada e passagem de mensagens para comunicação entre processos.