erian bordin - 6872331 geovana de mello espírito santo - 6766110 henrique canto duarte - 6766086...

29
Sistemas Distribuídos de Tempo Real Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

Upload: internet

Post on 18-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

Sistemas Distribuídos de Tempo Real

Erian Bordin - 6872331

Geovana de Mello Espírito Santo - 6766110Henrique Canto Duarte - 6766086

Leonardo Akira Endo Wesseling - 6766235

Page 2: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique 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

Page 3: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

3

Sistemas de Tempo Real

Page 4: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 5: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 6: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 7: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 8: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

8

Sistemas Distribuídos de Tempo Real

Page 9: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 10: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 11: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 12: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 13: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 14: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 15: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

Sistemas Distribuídos de Tempo Real 15

Sistemas Distribuídos de Tempo Real

Leonardo

Page 16: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

16

Falhas

Page 17: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

Sistemas Distribuídos de Tempo Real 17

Falhas

Pode gerar danos sérios em: Sistemas Nucleares Robótica Aeronaves

Henrique

Page 18: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

Sistemas Distribuídos de Tempo Real 18

Tipos de Falhas

Falha de Rede

Falhas Físicas

Falha de Processador

Falha de Processos

Henrique

Page 19: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 20: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

Sistemas Distribuídos de Tempo Real 20

Tipos de Falhas – Perenidade

Permanente

Intermitente

Transiente

Henrique

Page 21: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 22: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 23: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

Sistemas Distribuídos de Tempo Real 23

Replicação

Henrique

Baseada na replicação de recursos

Page 24: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 25: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

25

Implementação

Page 26: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

Sistemas Distribuídos de Tempo Real 26

Implementação

Geovana

Requisitos

Funcionais: atender às tarefas propostas Temporais: atendê-las dentro do prazo

estipulado

Page 27: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 28: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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

Page 29: Erian Bordin - 6872331 Geovana de Mello Espírito Santo - 6766110 Henrique Canto Duarte - 6766086 Leonardo Akira Endo Wesseling - 6766235

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