Upload
internet
View
106
Download
1
Embed Size (px)
Citation preview
Sistemas Distribuídos de Tempo Real
Erian Bordin - 6872331
Geovana de Mello Espírito Santo - 6766110Henrique Canto Duarte - 6766086
Leonardo Akira Endo Wesseling - 6766235
Sistemas Distribuídos de Tempo Real 2
Tópicos
Sistemas de Tempo Real
Sistemas Distribuídos de Tempo Real
Falhas
Implementação
Geovana
3
Sistemas de Tempo Real
Sistemas Distribuídos de Tempo Real 4
Sistemas de Tempo Real
“Um sistema cujo funcionamento correto depende não apenas da correção das tarefas realizadas, mas também do momento em que elas são finalizadas”
(Stankovic, 1988).
Geovana
Sistemas Distribuídos de Tempo Real 5
Sistemas de Tempo Real
Sistemas Não Críticos
Processamento Bancário Vídeogames Teleconferências Aplicações de Multimídia Controladores
Inteligentes embutidos em utilidades domésticas, tais como lavadoras de roupa.
Geovana
Sistemas Distribuídos de Tempo Real 6
Sistemas de Tempo Real
Sistemas Críticos
Controle de Tráfego Aéreo Sinalização de Ferrovia Controle de Planta Nuclear
e Química Sistemas de Defesa Militar Monitoramento de
Pacientes Sistemas Embarcados em
robôs e veículos.
Geovana
Sistemas Distribuídos de Tempo Real 7
Previsibilidade
Comportamento Funcional e Temporal pode ser de algum modo antecipado ou previsto.
Envolve uma série de técnicas que vão desde a especificação e verificação formal do sistema até o gerenciamento adequado dos recursos disponíveis .
A previsibilidade é um dos aspectos mais importantes de um sistema de tempo real!
Geovana
8
Sistemas Distribuídos de Tempo Real
Sistemas Distribuídos de Tempo Real 9
Sistemas Distribuídos de Tempo Real
Por que exatamente sistemas distribuídos de tempo real?
1. Localização: Muitas vezes o processamento precisa ser feito próximo ao sensor ou atuador e também estar em rede. Ex: robôs, aeronaves, etc.
2. Confiabilidade: replicação de recursos computacionais permite tolerância a falhas, algo desejável também em sistemas em tempo real.
3. Alto throughput (paralelização de processamento).
Leonardo
Sistemas Distribuídos de Tempo Real 10
Sistemas Distribuídos de Tempo Real
Características destes sistemas são derivadas de especificações que podem vir de leis da natureza, teoria matemática, limitação de componentes, etc.
Exemplos: Certas tarefas só podem ser executadas em um mesmo processador
por questões funcionais, segurança ou performance. Tarefas idênticas precisam ser executadas em processadores
diferentes por tolerância a falhas ou performance. Exclusão: Certos trechos de código precisam ser executados sem
interrupção Restrições de tempo: Como qualquer sistema de tempo real, certas
tarefas tem que conseguir serem realizadas independentemente de quaisquer atrasos provenientes do sistema distribuído (atrasos por comunicação, possivelmente race conditions e outros).
Leonardo
Sistemas Distribuídos de Tempo Real 11
Sistemas Distribuídos de Tempo Real
Como vemos, para satisfazer essas e outras características, os sistemas distribuídos podem se tornar bastante complexos de se gerenciar.
Como manter o cumprimento das exigências dos sistemas de tempo real em ambientes usualmente heterogêneos e muito mais sujeitos a falhas e atrasos como os de sistemas distribuídos?
Leonardo
Sistemas Distribuídos de Tempo Real 12
Sistemas Distribuídos de Tempo Real
3 capacidades básicas de um sistema que precisam ser fornecidas: Comunicações entre threads em execução. Sincronização de eventos. Latência controlada e uso eficiente dos recursos de rede.
Tipicamente usa-se um middleware comercial para prover-se essas necessidades do sistema.
Leonardo
Sistemas Distribuídos de Tempo Real 13
Sistemas Distribuídos de Tempo Real
DDS (Data Distributions Service):
Implementa o modelo publish/subscribe, onde nós que produzem informações (publishers) criam “tópicos” e publicam “amostras”. O DDS encarrega-se de entregar as amostras para todos os nós interessados nestes, chamados subscribers.
O DDS cuida de todos os aspectos da transmissão e mensage: endereçamento de mensagem, data marshalling e demarshalling (permitindo que subscribers trabalhem em plataformas diferentes dos publishers, flow control, o que acontece caso ocorra falha na entrega de mensagens, etc.
Leonardo
Sistemas Distribuídos de Tempo Real 14
Sistemas Distribuídos de Tempo Real
O DDS permite ao usuário especificar parâmetro de QoS (Quality of Service).
QoS traz à aplicação meios de explicitamente definir o nível de serviço (prioridade, confiabilidade, performance, etc.) . => Latência controlada e uso eficiente dos recursos de rede
Outra grande vantagem de se usar um middleware como o DDS é a facilidade que ele provê através de suas interfaces de interfacear, integrar, debugar e manter o sistema como um todo.
Leonardo
Sistemas Distribuídos de Tempo Real 15
Sistemas Distribuídos de Tempo Real
Leonardo
16
Falhas
Sistemas Distribuídos de Tempo Real 17
Falhas
Pode gerar danos sérios em: Sistemas Nucleares Robótica Aeronaves
Henrique
Sistemas Distribuídos de Tempo Real 18
Tipos de Falhas
Falha de Rede
Falhas Físicas
Falha de Processador
Falha de Processos
Henrique
Sistemas Distribuídos de Tempo Real 19
Tipos de Falhas – Temporização
Falha de Omissão
Falha de Temporização
Falha de Sincronização
Henrique
Sistemas Distribuídos de Tempo Real 20
Tipos de Falhas – Perenidade
Permanente
Intermitente
Transiente
Henrique
Sistemas Distribuídos de Tempo Real 21
Detecção de Falhas
Selecionar um detector de falhas é uma tarefa difícil
Para que uma técnica de tolerância seja aplicada é necessário detectá-la
Henrique
Sistemas Distribuídos de Tempo Real 22
Tolerância a Falhas
Existem diversas abordagens
São escolhidas de acordo com o comportamento do sistema
Henrique
Sistemas Distribuídos de Tempo Real 23
Replicação
Henrique
Baseada na replicação de recursos
Sistemas Distribuídos de Tempo Real 24
Check-Pointing
Armazenamento do estado total de uma tarefa
Pode ser dividido em: Coordenado Não-coordenado Induzido a comunicação
Quanto ao escopo: Local Global
Henrique
25
Implementação
Sistemas Distribuídos de Tempo Real 26
Implementação
Geovana
Requisitos
Funcionais: atender às tarefas propostas Temporais: atendê-las dentro do prazo
estipulado
Sistemas Distribuídos de Tempo Real 27
Implementação
Geovana
Desafios
Heterogeneidade▪ Little-endian / Big-endian
▪ Ponto flutuante
▪ Código de caracteres (ASCII ou EBCDIC)
Marshaling▪ empacotamento de dados em forma de
mensagens
Sistemas Distribuídos de Tempo Real 28
Implementação
Geovana
Ferramentas Middleware▪ camada de software que oferece abstrações de alto
nível, fornecendo uma visão uniforme na utilização de recursos heterogêneos e um modelo de programação mais produtivo para os desenvolvedores▪ CORBA
Linguagens de programação▪ Java: Sockets, Servlets, Real Time, RMI, Jini▪ Pearl
Sistemas Distribuídos de Tempo Real 29
Conclusão
Concluímos, assim, que sistemas distribuídos de tempo real possuem toda a complexidade de problemas de um sistema distribuído convencional, porém agravados. Em contrapartida teremos, porém, mais recursos para implementar as soluções para o problema de tempo real.
Erian