Вы находитесь на странице: 1из 71

Sistemas em Tempo Real

Módulo 1: Conceitos Básicos


Jarbas Silveira, Ago – 2007.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Roteiro

Ementa:

1. Conceitos Básicos: o que é um sistema


em tempo real; arquitetura básica de um
sistema em tempo real; interfaces;
deadlines; sistemas de comunicação
disparados por eventos (Event-Triggered) e
sistemas de comunicação disparados por
tempo (Time-Triggered).
Sistema em Tempo Real DETI - UFC Jarbas Silveira
Roteiro

Ementa:

2. Concorrência: Conceito de processos;


estados de processos; algoritmos para
escalonamento de processos; Regiões
Críticas; Exclusão Mútua; Comunicação e
sincronização de processos (semáforos,
monitores, passagem de mensagens);
Deadlocks.
Sistema em Tempo Real DETI - UFC Jarbas Silveira
Roteiro

Ementa:

3. Tolerância a Falhas: Falha, Erro e


Defeito; Tipos de falhas; Redundância
(Estática e Dinâmica); Detecção; Avaliação
de Danos; Recuperação de erros.
Sistema em Tempo Real DETI - UFC Jarbas Silveira
Roteiro

Ementa:

4. Modelagem de Sistemas em Tempo


Real: Estados; Transições; Processos de
Estados Finitos; Modelando processos
concorrentes.
Sistema em Tempo Real DETI - UFC Jarbas Silveira
Roteiro

Ementa:

5. Sistemas operacionais e Linguagens de


Programação em tempo real: Real-Time
Linux; Ambiente Java; Corba; ADA;
OCCAM; C
Sistema em Tempo Real DETI - UFC Jarbas Silveira
Roteiro

Ementa:

6. Sistemas Embarcados: Características;


Restrições; Considerações de projeto;
Embarcando sistemas operacionais em
sistemas embarcados
Sistema em Tempo Real DETI - UFC Jarbas Silveira
Roteiro

Conceitos Básicos:

- O que é um sistema de tempo real?


- Arquitetura básica
- Interfaces
- Deadlines
- Sistemas Event-Triggered
- Sistemas Time-Triggered

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

- Estão sujeitos a um tempo real


- Tempo que progride continuamente e durante o
qual o mundo prossegue ao seu ritmo próprio
- O que está feito, feito está! E há
consequências...
- A única forma de funcionarem corretamente
É fazendo certo no instante certo !

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

- Exemplo:

Um piloto de fórmula 1, durante a corrida,


precisa tomar decisões a uma velocidade de 300
Km/h. Ele não pode parar o carro e analisar qual
decisão tomar!

Sistema em Tempo Real DETI - UFC Jarbas Silveira


- PerguntaOmais
que freqüentes:
é um sistema de tempo real?

- Um processador rápido não resolve?

Se for para executar um programa com


estrutura trivial (tipo um único ciclo infinito), é
provável que sim. Se o computador tiver de
executar várias tarefas em simultâneo, a
rapidez de processamento já não basta. Umas
tarefas podem bloquear outras e
causar atrasos demasiado grandes ou mesmo
imprevisíveis.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

-Pergunta mais freqüentes:

- Então o que é necessário?

Escalonamento! Uma seqüência de


ordenação correta das tarefas a serem
executadas. Existem critérios de ordenação que
nos permitem restringir e determinar os atrasos
máximos que as tarefas poderão sofrer.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?
-Pergunta mais freqüentes:

- Só se aplica quando o sistema é multi-tasking?

Estamos considerando situações em que um computador tem


de executar várias tarefas simultaneamente. Será normal que nessas
situações se utilize um sistema operacional (ou apenas um kernel)
multi-tasking. Mas, muitas vezes, mesmo quando o corpo principal do
programa é um simples ciclo infinito, existem
várias tarefas dentro de rotinas de interrupção assíncronas, o que leva
à mesma situação. O disparo de rotinas de interrupção também pode
ser atrasado, ou até descartado. É necessário usar técnicas adequadas
para restringir e determinar
esses atrasos.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

-Pergunta mais freqüentes:

- E esses atrasos são assim relevantes?


Se estivermos a falar de sistemas de controle, e se os atrasos
forem tais que levam à perda de amostras, é provável que se perca o
controle! Se isso acontecer num avião... ou num carro com atuação
eletrônica ... ou num robô que se movimenta perto de outros
equipamentos e pessoas... Por outro lado, se estivermos a falar de
sistemas multimédia, desde consoles de jogos a DVDs, ou de routers
em redes de computadores, atrasos nas tarefas não provocarão a
morte a ninguém mas haverá uma perda de Qualidade-de-Serviço.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

-Definições relacionadas com “Tempo-Real”

Existe uma grande diversidade de definições relacionadas


com Tempo-Real, os sistemas que lidam com Tempo-Real,
os serviços que prestam e as funcionalidades que
desempenham.

Em comum têm o fato de exprimirem a dependência de


um sistema computacional face ao tempo tal como existe
num determinado processo físico.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Funcionalidade ou Serviço de Tempo-Real

Que tem de ser desempenhada ou prestado dentro


de intervalos de tempo finitos impostos por um processo
físico.

Sistema de Tempo-Real

Aquele que desempenha pelo menos uma


funcionalidade de tempo real ou que presta pelo menos
um serviço de tempo-real.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

- Notar que tempo-real não significa rapidez mas apenas


um rítmo de evolução próprio de um certo processo físico
(termo relativo).

- Genericamente, quando um sistema de controlo ou


monitoração consegue acompanhar o estado de um dado
processo físico e, se necessário, atuar a tempo sobre ele,
então trata-se de um sistema de tempo-real.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

- O principal objetivo do estudo dos Sistemas de Tempo-


Real (RTOS) é o de desenvolver técnicas de

• projeto,
• análise e
• verificação

que permitam obter garantias de que um dado sistema,


tenha comportamento temporal adequado
à dinâmica do sistema com o qual deve interagir.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

- Relativamente às atividades computacionais dos RTOS


os aspectos que normalmente mais interessam ser
caracterizados são:

• O tempo de execução
• O tempo de resposta
• A regularidade de eventos periódicos

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Alguns aspectos particularmente importantes


relativamente ao
• Tempo de execução
- Estrutura do código (linguagem, condicionais, ciclos)
- DMA, caches, pipeline
- Sistema operacional ou kernel (system calls)
• Tempo de resposta e regularidade
- Interrupções
- Multi-tasking
- Acesso a recursos partilhados (bus, disks, com ports,...)

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Os requisitos tipicamente impostos aos Sistemas de


Tempo-Real são de 3 tipos:

• Funcionais
• Temporais
• de Dependabilidade

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Requisitos funcionais

Amostragem de dados
- Amostragem das variáveis do sistema (entidades
de tempo-real) quer do tipo contínuo quer discreto
Controle Digital
- Acesso direto do sistema controlador aos sensores
e atuadores
Interação com o operador (MMI)
- Informação do estado do sistema, registro
histórico, suporte à correta operação do sistema

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Requisitos Temporais

Normalmente advêm da dinâmica do processo físico que


se pretende controlar
Impõem restrições:
• Aos atrasos de observação do estado do sistema
• Aos atrasos de computação dos novos valores de
controle (atuação)
• Às variações dos atrasos anteriores (jitter)
que têm de ser cumpridas em todas as instâncias
(incluindo o pior caso) e não apenas em termos
médios

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Requisitos temporais

Classificação das restrições temporais:


(de acordo com a utilidade do resultado para a aplicação)
• Suave (Soft) – Restrição temporal em que o resultado
que a ela está associado mantém alguma utilidade
para a aplicação mesmo depois de um limite D embora
haja uma degradação da qualidade de serviço.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Requisitos temporais

Classificação das restrições temporais:


(de acordo com a utilidade do resultado para a aplicação)
• Firme (Firm) – Restrição temporal em que o resultado
que a ela está associado perde qualquer utilidade
para a aplicação depois de um limite D.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Requisitos temporais

Classificação das restrições temporais:


(de acordo com a utilidade do resultado para a aplicação)
• Rígida (Hard) – Restrição temporal que, quando não
cumprida, pode originar uma falha catastrófica.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Requisitos temporais

Classificação dos Sistemas de Tempo-Real:


(de acordo com o tipo das restrições temporais)
• Soft Real-Time – O sistema apenas apresenta restrições
temporais do tipo firm ou soft (e.g., simuladores, sistemas
multimedia)
• Hard Real-Time – O sistema apresenta pelo menos uma
restrição temporal do tipo hard. São sistemas de
segurança crítica (e.g. controle de vôo de aviões, de
mísseis, de centrais nucleares, de fábricas de produtos
perigosos)

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Requisitos de Dependabilidade

Os sistemas de tempo-real são normalmente usados em


aplicações críticas quer em termos de segurança quer
econômicos (e.g., centrais nucleares, controle de tráfego
ferroviário e aéreo, indústria de processo).

Daí resulta um requisito de:

Elevada Confiabilidade – Em sistemas hard real-time são


típicos requisitos de confiabilidade elevada (l<10-9
falhas/hora – não se pode verificar experimentalmente!).

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Requisitos de Dependabilidade

Aspectos importantes num sistema de segurança crítica:


• Interfaces estáveis entre os subsistemas críticos e os
restantes por forma a evitar a propagação de erros de uns
para os outros.

• Cenários de pior caso bem definidos. O sistema deve


possuir os recursos adequados para fazer face aos
cenários de pior caso sem necessidade de recurso a
argumentos probabilísticos, i.e., deve fornecer garantias
de serviço mesmo em tais cenários.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Requisitos de Dependabilidade

Aspectos importantes num sistema de segurança crítica:

• Arquitetura composta por subsistemas autônomos,


cujas propriedades podem ser verificadas
independentemente uns dos outros.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

Requisitos de Dependabilidade

- Reliability (Confiabilidade)
- Safety (Segurança)
- Maintanability (Manutenabilidade)
- Availability (Disponibilidade)
- Security (Segurança)

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

- Reliability (Confiabilidade)

- Probabilidade de um sistema fornecer um determinado


serviço em um determinado tempo.
- Geralmente fornecido em taxas de falha
- O inverso da taxa de falhas é conhecido como MTTF
(Mean Time to Failure)
- Se a taxa de falhas de um sistema é da ordem de
potencia de 10-9 ou menor, o mesmo pode ser dito do tipo
ultra high reliability.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

- Safety (Segurança)

- Pode ser entendido como a confiabilidade de um sistema


perante a tarefas críticas;
- Um modo de falha crítico é dito do tipo maligno
enquanto um modo de falha não crítico é dito do tipo
benigno;
- Sistemas Hard Real Time devem ter confiabilidade do
tipo Ultra High;

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

- Maintanability (Manutenabilidade)

- É a medida de tempo requerida para reparar o sistema


depois da ocorrência de uma falha benigna;
- É medida pela probabilidade M(d) do sistema ser
restaurado dentro de um intervalo de tempo d após a
ocorrência de uma falha;
- O MTTR (mean time to repare) define a quantidade
medida de manutenabilidade do sistema;
- Conflito: manutenabilidade alta requer modularização, o
que pode acarretar custos e mais complexidade, podendo
comprometer a confiabilidade.
- SRUs – Smallest Replacement Units

Sistema em Tempo Real DETI - UFC Jarbas Silveira


O que é um sistema de tempo real?

- Security (Segurança)

- É concebida como a habilidade do sistema prevenir-se


contra acessos sem autorização;
- Existem dificuldade em definir uma quantidade
mensurável para este atributo;
- Medidas como autorizaçao e criptografia de sistemas são
largamente utilizados;

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

- Classificação de sistemas de tempo real

- Hard Real Time x Soft Real Time


- Fail-safe x Fail-operational
- Guaranteed-response x Besf-effort
- Resource-adequate x Resource-inadequate
- Event-triggered x Time-triggered

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

Hard Real Time x Soft Real Time

Response Time
Peak-load performance
Control of Pace
Safety
Size of data files
Redundancy Time
Data integrity
Error detection

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

Response Time

- Em sistemas do tipo hard real-time são da ordem de


milisegundos ou menos;
- Os sistemas hard real-time devem ser autônomos para
manter a segurança, embora possam prever a intervenção
humana;

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

Peak-load performance

- Em sistemas hard real-time deve ter um cenário bem


definido, ou seja, todos os estados são conhecidos e seus
impactos também;
- Em sistemas soft real-time, a média de desempenho
geralmente é a mais importante;
- Isto exige o total conhecimento dos estados de um
sistema hard real-time;

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

Control of Pace

- Sistemas hard real-time devem manter sincronismo com


o ambiente de saída em todos os cenários;
- Sistemas soft real-time podem degradar o serviço e
conseqüentemente o ambiente mantém com requisitos de
tempo degradado;

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

Safety

- A detecção de erro deve ser autônoma;


- Alguns sistemas implementam detecção automática e
periódica de erros (house-keeping);
- Podem precisar ações de recuperação de erros;

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

Size of data files

- Sistemas de tempo real são compostos de pequenos


arquivos de dados, os quais constituem a base de dados
em tempo real do sistema, que é composta
temporariamente da imagem de tempo do sistema;
- Mirror database para compatibilizar diversos acessos de
leitura;
- O tempo de acesso aos dados é o ponto mais
importante;

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

Redundancy Type

- Após uma detecçao de erro, o sistema deve retornar a


um ponto seguro;
- Em sistemas de tempo real, este fato limita-se por
algumas razões: deadline de tempo; o tempo externo
pode não voltar; perda de computação (imprecisão dos
dados);

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

Data integrity

- A aquisição dos dados deve ser suficiente, além do


processamento dos dados;
- Nas técnicas de recuperação de erro esses dados podem
ser perdidos;

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

Característica Hard real-time Soft real-time


Response Time Hard required Soft-desired

Peak-load performance predictable Degraded


Control of Pace environment Computer
Safety Often critical Non-critical
Size of data files Small/medium Large
-
Redundancy Type Active Checkpoint recovery
Data integrity Short-term Long term
Error detection Autonomus User assisted

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

- Fail-safe x Fail-operational

- Alguns sistemas precisam identificar estados seguros na


ocorrência de falhas;
- Estes estados são chamados de fail-safe;
- Nestes sistemas a probabilidade de detecção de erro
deve ser próximo de 1;
- Técnicas como watchdog timer são bastante utilizadas;
- Watchdog devem ter alta confiabilidade, portanto são
composto de hardware com extrema simplicidade;
- Quando um sistema precisa manter-se em operação,
embora degradada, chama-se fail operational;

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

- Guaranteed-response x Besf-effort

- Os sistemas do tipo resposta garantida tem seus estados


bem determinados, e seu comportamento deve ser
conhecido em todas as situações;
- Em caso de falhas e uso máximo de carga no sistema
sua resposta é prevista com precisão;
- Esses sistemas exigem bastante análise em tempo de
projeto e a arquitetura utilizada é fundamental para o
sucesso do projeto;
- Sistemas best-effort não requerem uma especificação
rigorosa do comportamento do sistema no uso máximo de
sua carga e podem funcionar de maneira degradada;

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real
- Resource-adequate x Resource-inadequate

- Sistemas com resposta garantida são baseado no


princípio da adequação aos recursos, ou seja, que existem
recursos computacionais suficientemente disponíveis para
lidar com o pico de carga do sistema [LAW 92];
- Alguns sistemas são projetados partindo do princípio de
que os recursos não são adequados;
- Assumem que não é economicamente viável manter
estes recursos e utiliza compartilhamento degradando ou
desconhecendo o funcionamento do sistema em alguns
cenários;
- No futuro, em sistemas computacionais, este paradigma
deve ser revisto, pois o uso de computadores é cada vez
mais utilizado em tarefas críticas;
Sistema em Tempo Real DETI - UFC Jarbas Silveira
Classificação de sistemas de tempo real

- Event-triggered x Time-triggered

- Um evento é definido pela ocorrência de determinado


fato no tempo;
- Intervalo é o tempo decorrido entre o início do evento e
o fim do evento;
- Uma mudança de estado é na verdade um evento;
- Em sistemas digitais esta observação de eventos é
quebrada em porções de clock do sistema;
- Trigger é um evento que dispara o início de uma ação no
sistema;
- Dependendo do mecanismo de Trigger utilizado, temos
duas formas distintas de projetar sistemas em tempo real.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


Classificação de sistemas de tempo real

- Event-triggered x Time-triggered

- A abordagem do tipo Event-triggered (ET), todas as


comunicações e atividades de processos são iniciadas por
uma mudança de estado;
- Na abordagem do tipo Time-triggered (TT) todas as
comunicações e atividades de processos são iniciadas num
tempo pre-determinado;
- Em sistemas ET os mecanismos de dispato devem ser
extremamente seguros, pois sua ocorrência traz a atenção
da CPU para o evento;
- Em sistemas TT o tempo de varredura deve ser
suficiente para não perder nenhum evento importante do
sistema;
Sistema em Tempo Real DETI - UFC Jarbas Silveira
arquiteturas de software de Tempo Real

Virtualmente todas aplicações de tempo real utilizam


elementos
de pelo menos um de cinco modelos de arquitetura:
• Cyclic executives (também chamados timelines ou
sistemas
frame-based)
• Event-driven com ambas atividades: periódicas e
aperiódicas
• Pipeline
• Cliente-servidor
•Máquinas de estados

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Um modelo cyclic executive consiste em seqüências de tarefas repetidas


continuamente, conhecidas como frames principais. Cada frame principal
consiste em um número de pequenas fatias de tempo, conhecidas como
frames
secundários; tarefas são escalonadas em frames secundários específicos.
• Um timeline utiliza um timer para disparar uma tarefa a cada ciclo
secundário (ou frame).
• Um conjunto não repetitivo de ciclos secundários constitui um ciclo
principal.
• As operações são implementadas como procedures, e são colocadas em
uma lista pré-definida cobrindo cada ciclo secundário.
• Quando um ciclo secundário inicia, a tarefa timer chama cada procedure
da
lista.
• Não é utilizada concorrência; operações extensas devem ser partidas
manualmente para se ajustar aos frames.

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira


arquiteturas de software de Tempo Real

Sistema em Tempo Real DETI - UFC Jarbas Silveira

Вам также может понравиться