Sistemas Operacionais

Aula 23: Sistemas de Tempo Real

Referências:

Sistemas de Tempo Real

Computadores são muito eficientes em tarefas repetitivas e que exigem precisão.

Controladores de máquinas:

Conseguem ser muito mais precisos e eficientes do que pessoas fazendo as mesmas tarefas.

Problema: frequentemente fazem tudo errado pois o projetista do sistema não pensou em todas as situações:

Sistemas de Tempo Real

O tempo causa problemas sutis e importantes:

Problemas temporais são difíceis de identificar e corrigir. Contudo eles afetam drasticamente muitas aplicações computacionais.

Sistemas de Tempo Real

São sistemas aonde o tempo de resposta é parte integral da especificação.

Exemplos:

Problemas

Como ter certeza que o sistema vai responder em tempo ?

Os três métodos de análise mais comuns falham:

Métodos Analíticos

Pode-se especificar o sistema de modo que ele sempre satisfaça suas restrições temporais:

Cyclic Executive

Uma maneira extremamente simples de se projetar um sistema de tempo real correto:

Simples, mas muito restritivo. Não permite novos processos; sincronização; é ineficiente (se um processo for muito rápido).

Rate Monotonic Theory

Um exemplo de técnica fácil de usar é RMS:

Rate Monotonic Theory

Exemplo (Pi = (T, C)):

A utilização de cada processo é:

U = 15 + 20 + 13 = 48% < 69%

Ou seja, todos os processos vão terminar de executar dentro do prazo.

Problemas com RMS

Vantagens:

Desvantagens:

Impõe muitas restrições ao sistema sendo analisado:

Extensões de RMS

Diversas extensões foram propostas que aumentam a eficiência do método de forma significativa:

Sincronização de Tempo Real

Sincronização é um problema porque pode causar inversão de prioridades:

Herança de Prioridades

Uma maneira de se evitar a inversão de prioridades sem limites é usar o protocolo abaixo:

rt_lock(m, p) {

if (m->locked &&

(m->owner)-> pri < p->pri)

(m->owner)->pri = p->pri;

lock(m, p);

};

rt_unlock(m, p); {

p->pri = p->original_pri;

unlock(m, p);

};

Rate Monotonic Theory

Sistemas de Tempo Real

Extremamente importantes!

Pesquisa de SOs de tempo real é muito ativa e interessante.