Você está na página 1de 21

Sistemas de

Tempo Real
Engº:Nzuzi Rodolfo
Objectivo
● INSTIC: Familiarizar os estudantes com os problemas
específicos relacionados aos sistemas computacionais de
tempo real, possibilitando-lhes conhecer os principais
aspectos ligados aos requisitos de hardware e de software
requeridos por esses sistemas.
Conteúdo Programático
0 Conceptualização Básica
Caracterização de Sistemas de Tempo Real.

1 0
Tipos e Aplicações de Sistemas de Tempo Real

Principais Abordagens para a Solução de Problemas em Tempo Real.


Componentes Básicos de Sistemas de Tempo Real: Sensores.

2 0
Actuadores. Condicionadores de Sinal.
Interfaces de Entrada/Saída. Interface com Operador.Software para Aplicações de Tempo Real:
Ciclo de Vida do Software. Linguagens de Programação de Tempo Real

Escalonamento em Sistemas de Tempo Real


Modelos de Tarefas.

3 0
Restrições Temporais. Relações de Precedência e de Exclusão. Técnicas de Escalonamento: Testes de
Escalonabilidade. Escalonamento de Tarefas Periódicas. Escalonamento de Tarefas Aperiódicas

Sistemas Operacionais de Tempo Real


Aspectos Funcionais. Tarefas e “Threads”. Interrupções. Semáforos.

4 Compartilhamento de Recursos. “Deadlocks”.


Conteúdo Programático
0 Visão Geral dos Principais Sistemas Operacionais de Tempo Real em Unix e Linux.

5 0 Analise de Confiabilidade e Tolerância a Falhas em Sistemas de


Tempo Real..

6
0 Aspectos de Segurança em Sistemas de Tempo Real.

7
O que é um Sistema de Tempo Real?
● A maioria do software que você usa até hoje tem sido interativo:
responde a seus comandos. Software interativo sempre está sujeito
a um tempo de espera. Seguramente você experimentou aquele
sentimento de esperar durante um segundo por um processador de
textos responder a você entrando em uma única batida de tecla, ou
o rato que leva um segundo mais muito tempo para responder que
faria isto um filão. Nós definiremos tais sistemas como segue:

● Sistemas de propósito-geral (hardware e software): são


componentes tangíveis e intangíveis de sistemas de computador
onde operações não estão sujeito a constrangimentos de
desempenho. Pode haver características de resposta desejáveis,
mas há nenhum prazo final duro e nenhuma conseqüência
prejudicial diferente de talvez qualidade pobre de serviço se os
tempos de resposta são extraordinariamente longos.
O que é um Sistema de Tempo Real?
● Definição: um sistema de processamento de informação que tem
que responder a estímulos externos dentro de limites (finitos) de
tempo especificados.

● Em contraste com sistemas de geral-propósito, sistemas de real-


tempo significa monitorar, interagir com, controlar, ou responder ao
ambiente físico. A interface é por sensor, sistemas de
comunicações, actuadores, e outro dispositivos de entrada e saída.
Sob de tais circunstâncias, é necessário responder a informação no
tempo oportuno. Tempo de espera podem demostrar perigo ou até
mesmo catastrófe. Por conseguinte, nós definiremos um sistema de
real-tempo como um onde:

1. o tempo ao qual uma resposta é entregue é tão importante


quanto o resultado logico da resposta, e
2. as conseqüências de um atraso da resposta são da mesma
maneira que perigoso como as conseqüências de uma resposta
incorreta.
O que é um Sistema de Tempo Real?
● O computador é um componente dentro um sistema maior de
engenharia => EMBEDDED COMPUTER SYSTEM

● 99% de todos os processadores são destinados para o mercado de


sistemas embarcados.

● Alguns exemplos de sistemas reais de tempo incluem:


1. transporte: controle sistemas para e controle de tráfico de veículos,
navios, aeronave e astronave; 2. exército: sistema de armas,
localizando e comunicações; 3. processos industriais: controle para
produção inclusive energia, substância química e fabricando usando
robótica; 4. médicina: monitoramento de paciente, terapia de radiação;
5. telecomunicações: telefone, rádio, televisão, satélite, telefonia vídea,
cinema digital e redes de computador; 6. casa: monitorando e controla
de eletrodomésticos; e 7. administração de contruções: segurança,
aquecimento, ventilação, ar condicionado e iluminação.
Exemplos de Aplicações
Exemplos de Aplicações
Classificação do STR
Os sistemas de tempo real podem ser classicados conforme ainteração
em:

● Reativos
- Sistemas cujo escalonamento é dirigido pela interação
com seu ambiente. Figura: Modelo de um STR
- Exemplo: Sistema para controle de incêndios que reage
ao pressionar de um botão.

● Embarcados
- Fazem partes de sistemas maiores não computacionais
-Exemplo: controle de injeção de combustível, airbag,
freios, etc.
Caracterização do STR
● Forte acoplamento do sistema com o seu Ambiente:
- Forte relação com o mundo físico
- Processamento ativado por estímulos do ambiente

● Requisitos temporais são definidos pelo ambiente


- Mundo físico onde o sistema computacional está inserido Figura: Modelo de um STR

● Tempos de Resposta delimitam Estímulos/Respostas


- Processamentos devem terminar dentro de prazos (deadlines)
- Se terminar fora de prazo sistema falha (falha temporal)

● Fluxos de estímulos na execução são definidos pelo ambiente:


Quase sempre impossível controlar os estímulos provenientes do
ambiente
Caracterização do STR
As conseqüências do não satisfazer prazos (deadline) permite
descrever o sistemas de real-tempo como:
1. STR Rigorosos (real-time) — sistemas onde é absolutamente
imperativo que as respostas ocorram dentro de prazo de entrega
solicitado. Falha relacionada a um único deadline pode provocar
falhas completas do sistema ou até mesmo catástrofes (sistema de
controle de vôo)
2. SRT Tolerantes (Soft real-time )— sistemas onde os prazos de
entrega são importantes, mas continuarão funcionando
“corretamente” se os prazos não forem atendidos ocasionalmente
(sistema de aquisição de dados)
3. Real real-time — sistemas que são hard real-time e que os tempos de
respostas são curtos (sistema de guia de míssil)
4. STR Seguros (Firm real-time) Sistema em que a perda de poucos
deadlines não provocam falha total, no entanto, a perda de uma
quantidade muito grande podem provocar falhas completa do
sistema ou até mesmo catástrofes

 Um único sistema pode ter sub-sistemas hard, soft e real real-time


(função custo associada com cada prazo de entrega)
Caracterização do STR
Conceitos relacionados na disciplina
Principais Abordagens para a Solução de Problemas em
Tempo Real.
● O Problema Tempo Real consiste então em especificar, verificar e
implementar sistemas ou programas que, mesmo com recursos
limitados, apresentam comportamentos previsíveis, atendendo as
restrições temporais impostas pelo ambiente ou pelo usuário.

● Se consideramos esses aspectos de construção, tempo real pode


ser visto inicialmente como um problema intrínseco de
programação concorrente.

● Baseado então na maneira de tratar a concorrência surgiram duas


abordagens diferentes amplamente discutidas na literatura nesses
vinte últimos anos: a Abordagem Assíncrona e a Abordagem
Síncrona
Principais Abordagens para a Solução de Problemas em
Tempo Real.
A abordagem assíncrona

● Trata a ocorrência e a percepção de eventos independentes numa


ordem arbitrária mas não simultânea.
● Essa abordagem visa uma descrição a mais exata possível de um
sistema; para tal, baseia-se na observação durante a execução de
todas as combinações de ocorrência de eventos (de forma não
simultânea), conhecida como entrelaçamento de eventos
("interleaving").
● Essa abordagem é considerada como orientada à implementação
● é implementada usando linguagens e sistemas operacionais e está
fundamentada no tratamento explícito da concorrência e do tempo
de uma aplicação em tempo de execução; a questão do
escalonamento de tempo real é o ponto principal do estudo da
previsibilidade dos sistemas de tempo real.
Principais Abordagens para a Solução de Problemas em
Tempo Real.
A abordagem síncrona

● Têm como princípio básico na consideração que os cálculos e as


comunicações não levam tempo.
● A abordagem síncrona se coloca num nível de abstração dos
aspectos de implementação tal que o tempo é visto com
granularidade suficientemente grossa para que essa hipótese seja
verdadeira.
● A observação dos eventos nessa abordagem é cronológica,
permitindo uma eventual simultaneidade entre eles.
● Nesta abordagem, a partir das suas premissas, a concorrência é
resolvida sem o entrelaçamento de tarefas ("interleaving") e o
tempo não é tratado de maneira explícita.
● abordagem síncrona facilita a especificação e a análise das
propriedades de sistemas de tempo real
Software para
Aplicações de
Tempo Real:
Ciclo de Vida do Software.
Linguagens de Programação de Tempo Real
Software para Aplicações de Tempo Real.

Metodologias e ferramentas convencionais são usadas, em uma prática


corrente, no projeto e implementação de sistemas de tempo real. A
programação dessas aplicações é feita com o uso de linguagens de alto
nível, em geral eficientes, mas com construções não deterministas ou
ainda, com linguagens de baixo nível. Em ambos os casos, sem a
preocupação de tratar o tempo de uma forma mais explícita, o que torna
difícil a garantia de implementação das restrições temporais.
Características de uma linguagem de programação
de real-tempo
Idealmente, uma linguagem de programação de real-tempo terá de ter
mecanismos construídos para seu desenho, para facilitar
1. encapsulação de dados,
2. controle de excepções,
3. sincronização (incluindo exclusão mútua e serialização),
4. concorrencia, e
5. passe de mensagem
● A linguagem de programação de Ada especificamente foi projetada
nos anos setenta com estas metas em mente.
● Outras linguagens de programação de real-tempo incluem Modula e
Modula-2, e há uma especificação de real-tempo para Java, uma
linguagem de programação que implementa o primeiro quatros dos
anteriores cinco mecanismos.
● Se o custo com a produção e manutenção , em lugar de
desempenho, é de preocupação primária , uma linguagem de
programação como a Java é provávelmente o apropriado
Software para aplicações de tempo real e o ciclo
de desenvolvimento de software
A especificação para o ciclo de vida de um software de tempo real
seguem as mesma especificada pela a engenharia de software.
● Definição do problema
● Levantamento de requisitos
1.elicitatação, 2. analise, 3. especificação,4. validação, e
5. administração.
● Planeamento do projecto
● Modelagem
● Implementação do código
● Integração
● Verificação e validação
● Manuntenção
Obrigado!
alguma questão?
nzuzirodolfo9@gmail.com

CRÉDITOS: Esta plantilla para presentaciones es una creación de


Slidesgo, e incluye iconos de Flaticon e infografías e imágenes de
Freepik

Você também pode gostar