computação distribuída
DESCRIPTION
Computação distribuída mod 1TRANSCRIPT
-
Computao DistribudaINE 5625
Prof. Mario Dantashttp://www.inf.ufsc.br/~mario
Universidade Federal de Santa Catarina (UFSC)
Departamento de Informtica e Estatstica
-
Objetivo
Neste curso vamos estudar os conceitos relativos a computao distribuda, abordando paradigmas tais:
computao obqua; computao pervasiva; computao colaborativa; ambientes de troca de mensagens; memria compartilhada; e objetos distribudos.
-
Objetivo
Vamos iniciar nosso curso com as novas abordagens de computao distribudas, estas conhecidas como ubqua, pervasiva e colaborativa.
O objetivo introduzir uma viso inovadora de ambientes computacionais altamente distribudos, que necessitam de um tratamento especial por parte de especialistas e, por outro lado,ser ignorado pelos seus usurios.
-
Objetivo
Quanto as bibliotecas de troca de mensagem sero estudadas: PVM(Parallel Virtual Machine) e MPI (Message Passing Interface).
Ambientes de middlewares orientados memria compartilhada (shared memory), tais como Jiajia e ThreadMark, sero tambmestudados.
-
Objetivo
Finalmente, os objetos distribudos sero abordados atravs dastecnologias CORBA, DCOM e Java RMI
-
Contedo ProgramticoModulo I. Introduo a computao distribuda
. Ambientes de middleware
Modulo II. Paradigma de troca de mensagem
. Parallel Virtual Machine (PVM)
. Message Passing Interface (MPI)
. Ambientes de Memria Compartilhada
-
Contedo ProgramticoModulo III. Objetos distribudos
. Componentes
. CORBA
. Barramento de objetos CORBA
. Adaptador bsico de objetos
. Linguagem de definio de interfaces
-
Contedo Programtico
. Servios CORBA
. Objetos COM
. Barramento de objetos COM
. Servios OLE/COM
Java/RMI
-
Bibliografia Recomendada
Coulouris, Dollimore e Kindberg, Distributed Systems: Concepts and Design, ISBN: 0201619180, Addison Weley, 2006
Tanenbaum e van Steen, Distributed Systems: Principles and Paradigms (2nd Edition), ISBN: 0132392275, Prentice Hall, 2000
Dantas, Computao Distribuda de Alto Desempenho: Redes, Clusters e Grids C omputacionais, ISBN: 8573232404, Axcel Books 2005.
-
Contedo Programtico
Modulo I. Introduo a computao distribuda
. Ambientes de middleware
. Paradigma de troca de mensagem
. Parallel Virtual Machine (PVM)
. Message Passing Interface (MPI)
. Ambientes de Memria Compartilhada
-
- Aplicaes tm se tornado a cada dia mais complexas. Um exemplo a utilizao de diversos tipos de mdia (voz, dados, imagens);
- O crescimento numa imaginado da Internet e redes;
- A transparncia provida pela Web;
Introduo a computao distribuda
-
- Computadores pessoais se tornam cada vez mais acessveis;
- Redes e dispositivos mveis sem fio tornam-se um padro de comunicao pessoal e empresarial.
Introduo a computao distribuda
-
Exemplo tpico
- Jogos Pan-Americanos- Muitas pessoas/dispositivos entrando com
dados/imagens;- Sistema computacionais para processar
informaes;- Disponibilizar um Web Site para entrada e busca
de informao.
-
Exemplo ilustrado
PCs
Leblon
Ipanema
World
WindowsMac
IRIX 5.3Silicon Graphics
UNIX System VSun
-
Fatores a serem considerados
Eficincia desenvolvimento da soluo; tempo de execuo.
Confiabilidade Transparncia
flexibilidade; tolerncia falha X alta disponibilidade.
-
Codificao da Aplicao fcil utilizao
Computao da Aplicao precisa; segura; eficiente.
Fatores a serem considerados
-
Aplicao Web flexvel; Poder ser replicada; eficiente.
Fatores a serem considerados
-
Possveis solues
C/C++ aplicaes + Sockets no possui uma maior escalabilidade problemas de
empacotamento/desempacotamento muitos protocolos temporrios
DCE (remote procedure invocation) no existe polimorfismo
-
Possveis solues
Ambientes de troca de mensagem;
Pacotes de memria compartilhada distribuda;
Objetos distribudos.
-
intranet
ISP
desktop computer:
backbone
satellite link
server:
%
network link:
%
%
%
Uma tpica parte da Internet
Fonte: [Coulouris]
-
Uma tpica Intranet
the rest of
email server
Web server
Desktopcomputers
File server
router/firewall
print and other servers
other servers
print
Local areanetwork
email server
the Internet
Fonte: [Coulouris]
-
Dispositivos mveis e portveis em sistemas distribudos
Laptop
Mobile
PrinterCamera
Internet
Host intranet Home intranetWAP Wireless LAN
phone
gatew ay
Host site
Fonte: [Coulouris]
-
Web servers and web browsers
Internet
BrowsersWeb servers
www.google.com
www.cdk3.net
www.w3c.org
Protocols
Activity.html
http://www.w3c.org/Protocols/Activity.html
http://www.google.comlsearch?q=kindberg
http://www.cdk3.net/
File system ofwww.w3c.org
Fonte: [Coulouris]
-
Computadores na Internet
Date Computers Web servers
1979, Dec. 188 0
1989, July 130,000 01999, July 56,218,000 5,560,8662003, Jan. 171,638,297 35,424,956
Fonte: [Coulouris]
-
Computadores vs. Web servers na Internet
Date Computers Web servers Percentage
1993, July 1,776,000 130 0.008
1995, July 6,642,000 23,500 0.41997, July 19,540,000 1,203,096 61999, July 56,218,000 6,598,697 122001, July 125,888,197 31,299,592 25
42,298,371
Fonte: [Coulouris]
-
Como podemos definir um sistema distribudo ?
Introduo a computao distribuda
-
Como podemos definir um sistema distribudo ?
No mundo real os sistemas distribudos, sob o aspecto de arquitetura de mquinas para execuo de aplicativos, devem ser vistos como configuraes com grande poder de escala pela agregao de computadores existentes nas redes.
Introduo a computao distribuda
Fonte: [Dantas]
-
Como podemos definir um sistema distribudo ?
Nos ambientes distribudos, a homogeneidade ou heterogeneidade de um conjunto de mquinas, onde cada qual possui sua arquitetura de software-hardware executando sua prpria cpia do SO, permite a formao de interessantes configuraes de SMPs, de MPPs, declusters e de grids computacionais.
Introduo a computao distribuda
Fonte: [Dantas]
-
Tipos de Transparncias1. Access transparency: enables local and remote resources to be accessed using identical operations;
2. Location transparency: enables resources to be accessed without knowledge of their physical or network location (for example, which building or IP address);
3. Concurrency transparency: enables several processes to operate concurrently using shared resources without interference between them;
Fonte: [Coulouris]
-
Tipos de Transparncias
4. Replication transparency: enables multiple instances of resources to be used to increase reliability and performance without knowledge of the replicas by users or application programmers;
5. Failure transparency: enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components;
Fonte: [Coulouris]
-
Tipos de Transparncias
6. Mobility transparency: allows the movement of resources and clients within a system without affecting the operation of users or programs;
7. Performance transparency: allows the system to be reconfigured to improve performance as loads vary;
8. Scaling transparency: allows the system and applications to expand in scale without change to the system structure or the application algorithms.
Fonte: [Coulouris]
-
Sistemas Distribudos: Modelos de Arquitetutras
Modelos de Arquiteturas
Applications, services
Computer and network hardware
Platform
Operating system
Middleware
Fonte: [Coulouris]
-
Server
Client
Client
invocation
result
Serverinvocation
result
Process:Key:
Computer:
Clientes invocando servidores individuais
Sistemas Distribudos: Modelos de Arquitetutras
-
Server
Server
Server
Service
Client
Client
Um servio provido por mltiplos servers
Sistemas Distribudos: Modelos de Arquitetutras
-
Client
Proxy
Web
server
Web
server
serverClient
Web proxy server
Sistemas Distribudos: Modelos de Arquitetutras
-
Coordination
Application
code
Coordination
Application
code
Coordination
Application
code
Uma aplicao distribuda baseada em processos fim (peer processes)
Sistemas Distribudos: Modelos de Arquitetutras
-
a) client request results in the downloading of applet code
Web server
ClientWeb serverApplet
Applet codeClient
b) client interacts with the applet
Web applets
Sistemas Distribudos: Modelos de Arquitetutras
-
Thin clients e servidores
Sistemas Distribudos: Modelos de Arquitetutras
-
Internet
gateway
PDA
service
Music service
serviceDiscovery
Alarm
Camera
Guestsdevices
LaptopTV/PC
Hotel wirelessnetwork
Redes Ad hoc (espontnea)
Sistemas Distribudos: Modelos de Arquitetutras
Exemplo de um hotel
-
Conceito de Sistemas Distribudos:
Cooperao Mquinas trabalham em conjunto para chegar a um determinado objetivo; para cooperar as mquinas precisam se comunicar de alguma forma
Interconexo Mquinas dispem de um meio de comunicao para trocar dados com o intuito de cooperar de modo a alcanar um objetivo comum
So sistemas compostos por diversas partes So sistemas compostos por diversas partes cooperantescooperantes que so executadas em mquinas que so executadas em mquinas diferentes diferentes interconectadasinterconectadas por uma rede por uma rede
-
Computao Distribuda: Consiste em executar processos / aplicaes
cooperantes em mquinas diferentes Tornou-se bastante comum a partir da
popularizao das redes de computadores
Processos so executados em mquinas diferentes interligadas por uma rede Redes locais Internet Outras redes pblicas ou privadas
-
Infra-Estrutura Fsica
Mquinas (hosts) so conectadas a um provedor (ISP), rede local, metropolitana ou sem fio;
Estas redes so interligadas por redes de longa distncia pblicas (ex.: Internet) ou privadas
Kurose & Ross Kurose & Ross
-
Sistemas distribudos x centralizados
Sistemas centralizados tm um ponto nico de falha;
Sistemas distribudos podem aumentar a robustez do sistema e a disponibilidade dos dados;
Sistemas centralizados so limitados pela capacidade de processamento e armazenamento da mquina;
-
Sistemas distribudos x centralizados
Sistemas distribudos podem crescer em escala adicionando novos servidores ao sistema;
Sistemas distribudos so mais sujeitos a apresentar falhas parciais de funcionamento e de segurana;
Sistemas distribudos so mais difceis de administrar pois os servidores esto em locais diferentes;
-
Sistemas distribudos x paralelos
Ambos podem executar processamento paralelo usando os vrios processadores disponveis;
Em mquinas paralelas os processadores podem trocar dados usando discos ou memria;
Em sistemas distribudos dados so trocados pela rede, o que pode prejudicar o seu desempenho;
-
Sistemas distribudos x paralelos
Sistemas paralelos so mais vulnerveis a alguns tipos de falha (ex.: falha na alimentao ou na rede);
Sistemas paralelos no so to escalveis quanto sistemas distribudos.
-
Aplicaes
ClienteCliente
Servidor WebServidor Web
RequisioRequisio RespostaResposta
World Wide Web
Servidor WebServidor Web
RequisioRequisio
RespostaResposta
-
Aplicaes E-Mail Envio, Recepo e Leitura de E-Mails:
Remetente
SMTP
SMTP
Servidor de e-mailmail.empresa.com
POP, IMAP,Webmail,
Destinatrio
Servidor de e-mail mail.empresa2.com
-
Aplicaes
NTP (Network Time Protocol)
11oo Nvel Nvel
22oo Nvel Nvel
-
Aplicaes
DNS Servidores Raiz:
b USC-ISI Marina del Rey, CAl ICANN Marina del Rey, CA
e NASA Mt View, CAf Internet Software C. Palo Alto, CA
i NORDUnet Stockholm
k RIPE London
m WIDE Tokyo
a NSI Herndon, VAc PSInet Herndon, VAd U Maryland College Park, MDg DISA Vienna, VAh ARL Aberdeen, MDj NSI (TBD) Herndon, VA
Kurose & Ross Kurose & Ross
-
Aplicaes
DNS Consulta:
mquina.empresa.com venus.inf.ufsc.br
Servidor de nomes raiz
Servidor de nomes .br
1
28
3
9
10
Serv. de nomesns.ufsc.br
7
4
Serv. de nomesns.inf.ufsc.br
6
5
Serv. de nomesns.empresa.com
11
-
Aplicaes
Outros exemplos de aplicaes distribudas:
Messenger, ICQ;
Redes Peer-to-Peer (P2P);
Sistema de Reserva de Passagens;
Sistema de Operadoras de Carto de Crdito;
-
Aplicaes
Sistemas bancrios;
Sistemas de gerenciamento de redes de telecomunicaes, transmisso de energia;
Sistemas de informao de grandes empresas;
- Nova abordagem de TV digital.
-
Caractersticas
Classificao: Sistemas Homogneos
Todos os sites tm o mesmo software e hardware
Sistemas Heterogneos Hardware, sistema operacional e aplicativos podem ser
diferentes em cada mquina Podem representar os dados de modo diferente Protocolos de comunicao precisam ser os mesmos
para que as mquinas possam interagir
-
Caractersticas
Vantagens
Dispem de maior poder de processamento;
Se bem construdos, podem apresentar um melhor desempenho que sistemas centralizados;
Podem apresentar maior confiabilidade ;
-
Caractersticas
Vantagens Permitem reutilizar servios j disponveis;
Possuem maior capacidade para armazenamento de dados que sistemas centralizados;
Podem compartilhar dados e recursos; Podem atender um maior nmero de usurios;
-
Caractersticas
Dificuldades
Desenvolver, gerenciar e manter o sistema;
Controlar o acesso concorrente a dados e a recursos compartilhados;
Controlar a consistncia dos dados replicados;
-
Caractersticas
Dificuldades Evitar que falhas de mquinas ou da rede
comprometam o funcionamento do sistema Mais hardware mais falhas
Garantir a segurana do sistema e o sigilo dos dados trocados entre mquinas;
Lidar com a heterogeneidade do ambiente;
-
Caractersticas
Desempenho Mais mquinas maior poder de processamento;
Uso da rede pior desempenho;
importante utilizar adequadamente o poder de processamento disponvel e limitar a comunicao da rede para que o desempenho da aplicao distribuda seja satisfatrio;
-
Caractersticas
Compartilhamento de Dados e de Recursos possvel acessar dados e recursos disponveis em
outras mquinas do sistemaEx.: impressoras, cmeras, bancos de dados, filmes.
Recursos podem estar indisponveis devido a falhas; Acesso concorrente deve ser controlado; Deadlocks precisam ser evitados;
-
Caractersticas
Uso da Rede Acoplamento fraco mquinas trocam dados
atravs da rede Tempo de comunicao ilimitado pode
comprometer o funcionamento do sistema Como reduzir o trfego na rede?
-
Caractersticas
No-deterministas Comportamento pouco previsvel devido ao uso
da rede, que leva possibilidade de ocorrerem retardos inesperados ou mesmo falhas na comunicao
Como evitar congestionamento/sobrecarga?
-
Caractersticas
Influncia do Tempo Sistemas distribudos so bastante influenciados
pelo tempo de comunicao pela rede Em geral no h uma referncia de tempo global,
pois os relgios das mquinas no esto sincronizados
Como ordenar os eventos no sistema?
-
Caractersticas
Controle Os sistemas distribudos tendem a empregar
recursos remotos, sobre os quais no se tem total controle
Estes recursos podem estar indisponveis por j estarem sendo usados ou por falha na mquina ou programa que os administra, na rede ou no prprio recurso
-
Caractersticas Sujeito a Falhas
As mquinas e a rede podem falhar Como evitar que estas falhas comprometam o
funcionamento do sistema? Segurana
Mais difcil controlar o acesso a dados e recursos em sistemas distribudos
Como garantir a segurana do sistema e o sigilo dos dados trocados pela rede?
-
Caractersticas
Difcil ter uma viso global do sistema Difcil saber o estado de cada parte do sistema
em um determinado instante devido latncia da rede
Transaes envolvem vrias mquinas Como conhecer o estado global do sistema?
-
Caractersticas
Gerenciamento e manuteno do sistema Mquinas dispersas pela rede difcil gerenciar
e manter as mquinas e o sistema funcionando H maior dificuldade se o sistema for heterogneo Administrao pode ser independente
-
Caractersticas
Replicao de Dados
Os dados do sistema podem estar replicados;
necessrio garantir a consistncia de rplicas rplicas com o mesmo valor!
Alteraes nos dados devem ser propagadas para as mquinas com rplicas do dado;
-
Caractersticas
Replicao de Dados
Replicao dificulta a obteno do estado global do sistema;
Cada rplica deve atualizar seu estado ao reintegrar-se ao sistema; qualquer inconsistncia nos dados deve ser resolvida.
-
Desenvolvimento de Aplicaes
Aplicaes Distribudas so criadas usando: APIs e Bibliotecas: fornecem rotinas para
comunicao entre processos, controle de concorrncia, monitorar transaes, etc.Ex.: Sockets, WinSock, java.net, etc.
-
Desenvolvimento de Aplicaes
Middleware para Programao Distribuda: fornece suporte para criar / executar programas distribudos.Ex.: CORBA, COM, .NET, etc.
Servidores de Aplicao: hospedam aplicaes que provem servios e dados a clientes remotos Ex.: JBoss, WebSphere, etc.
Linguagens e sistemas operacionais distribudos vem caindo em desuso
-
Mquina 1Mquina 1 Mquina NMquina N
Desenvolvimento de Aplicaes
Middleware para Programao Distribuda
AplicaoAplicao Servio Servio
AplicaoAplicao
Middleware para Programao DistribudaMiddleware para Programao Distribuda
HardwareHardware
Sistema OperacionalSistema Operacional Sistema OperacionalSistema Operacional
HardwareHardware
Servio Servio AplicaoAplicao
AplicaoAplicao
......
......
-
Desenvolvimento de Aplicaes Servidores de Aplicao
Mquina ClienteMquina Cliente Mquina ServidoraMquina Servidora
ClienteCliente
Servidor de AplicaoServidor de Aplicao
HardwareHardware
Sistema OperacionalSistema Operacional Sistema OperacionalSistema Operacional
HardwareHardware
Servio Servio AplicaoAplicao
AplicaoAplicao
......
......
-
Desenvolvimento de Aplicaes
Projeto de Aplicaes Distribudas
Abordagens de projeto Top-Down: usada em sistemas construdos do zero,
possivelmente homogneos
Bottom-Up: usada quando os sistemas locais j esto instalados e precisam ser integrados
-
Desenvolvimento de Aplicaes
Questes a serem respondidas no projeto Onde colocar os sites? Como distribuir dados e servios pelos sites? Replicao necessria? Como integrar sistemas j existentes?
-
O que vem a ser computao ubqua ?
Introduo a computao distribuda
-
O que vem a ser computao ubqua ?
O termo computao ubqua foi primeiramente sugerido por MarkWeiser em 1988. Este descreve sua idia de tornar os computadores onipresentes e invisveis.
O esforo tirar o computador do caminho entre o usurio e seu trabalho. Em outras palavras, o objetivo ir alm da interface amigvel e longe da realidade virtual.
Introduo a computao distribuda
-
O que vem a ser computao ubqua ?
Ao invs de usar ao mximo todas os canais de entrada e sada do corpo, semelhante realidade virtual, a idia permitir que o indivduo faa seu trabalho com o auxlio de computadores sem nunca ter que se preocupar em trabalhar nos computadores.
Melhorando-se as interfaces fazem do obstculo (o computador) um elemento mais fcil de usar.
Introduo a computao distribuda
-
O que vem a ser computao ubqua ?
Este tipo de computao cria a era da tecnologia calma (calm technology).
A computao passa a ser subjacente s nossas vidas. Os computadores passam a ser to naturais, to sob medida e to embutidos em todos os locais, que eles se tornam praticamente invisveis, isto , ns os utilizamos quase sem pensar.
Introduo a computao distribuda
-
O que vem a ser computao ubqua? Fonte: [Mark Weiser]
Introduo a computao distribuda
-
O que vem a ser computao pervasiva ?
Mark Weiser e seus colegas no Lab. PARC, utilizaram os termoscomputao ubqua e pervasiva de maneira intercambivel paradescrever como a computao iria migrar do ambiente desktop,para um ambiente pessoal e depois para uma configurao maisdistribuda mvel e embarcada.
Introduo a computao distribuda
-
O que vem a ser computao pervasiva ?
Todavia, existe uma diferena nestes tipos de computao.
O termo computao ubqua significa o estado de estar presente emtodos os lugares.
Por outro lado, computao pervasiva representa passar atravs, ouser difundida atravs de.
Introduo a computao distribuda
-
O que vem a ser computao pervasiva ?
No mundo real, a computao ubqua est relacionada aos frameworks, sistemas embarcados, redes e displays que estotransparentes e em qualquer lugar, permitindo aos usuriosoperaes de plug-and-play em dispositivos e ferramentas.
Introduo a computao distribuda
-
O que vem a ser computao pervasiva ?
Por outro lado, a computao pervasiva refere-se a dispositivosfsicos tais como seu telefone celular, computador de mo, umajaqueta inteligente que se modifica com a temperatura do corpo. Assim, podemos entender a computao pervasiva como um conjunto de ferramentas dentro de um determinado ambiente, no qual podemosacessar as informaes a qualquer hora e a qualquer momento.
Introduo a computao distribuda
-
Introduo a computao distribuda
Fonte:[Mark Weiser]
-
Tolerncia Faltas
Conceitos
Tipos de Faltas
Replicao
Deteco de Falhas
Recuperao de Falhas
86
-
Conceitos Confiana de Funcionamento (Dependability )
Representa a confiana depositada em um determinado sistema em relao ao seu correto funcionamento
Um sistema dito confivel (dependable) possui uma grande probabilidade de se comportar da maneira esperada
87
-
Conceitos
Confiana de Funcionamento (Dependability )
A confiana de funcionamento um importante requisito de Qualidade de Servio (QoS) em sistemas computacionais crticos
88
-
Conceitos
Estados de um Sistema: Sistema prprio: servio fornecido pelo sistema como foi
especificado Sistema interrompido ou imprprio: servio no fornecido
conforme especificado
SistemaInterrompido
Sistema Prprio
SistemaImprprio
Falha catastrficaFalha catastrfica
Falha benigna
Restaurao
-
Conceitos A Confiana de Funcionamento de um sistema medida pelos
seguintes fatores:
Confiabilidade (Reliability): tempo de funcio-namento contnuo (sem falhas) do sistema
Manutenibilidade (Maintainability): tempo gasto para restaurar o sistema aps uma falha
90
-
Conceitos A Confiana de Funcionamento de um sistema medida pelos
seguintes fatores:
Disponibilidade (Availability): tempo de funcionamento em relao ao tempo de falha
Seguridade (Safety): prejuzo causado pela falha do sistema
91
-
Conceitos
Confiabilidade pode ser representada por:
Tempo Mdio Para a Falha (MTTF): indica o tempo mdio que o sistema fica sem falhar
Ex.: X horas ou dias de funcionamento Quanto maior, melhor
Mdio Entre Falhas (MTBF): representa o tempo entre falhas sucessivas
Ex.: Y horas ou dias entre falhas Quanto maior, melhor
92
-
Conceitos
Confiabilidade pode ser representada por:
Probabilidade (taxa) de Falha Ex.: 10-Z falhas/hora ou falhas/dia Quanto maior o expoente, melhor
93
-
Conceitos
Manutenibilidade representada por: Tempo Mdio Para Reparo (MTTR): indica o tempo
necessrio para que o sistema volte a funcionar corretamente
Ex.: X segundos, minutos ou horas para o sistema voltar a funcionar corretamente
Quanto menor, melhor
94
-
Conceitos
Disponibilidade representada por: Grau de disponibilidade:
MTBFMTBF + MTTR
Ex.: sistema disponvel por 99.9% do tempo Quanto maior, melhor
95
~ 1 ms~ 4 dias
~ 9 horas~ 1 hora
~ 5 minutos~ 30 segundos
90%99%
99.9%99.99%99.999%99.9999%
Tempo de parada / anoDisponibilidade
-
Conceitos
Seguridade representada por: Grau de Seguridade: probabilidade do sistema ser
recupervel (de no se tornar imprprio) em caso de falha, ou seja, a chance de uma falha no ser catastrfica
Falhas Benignas Falhas Benignas + Catastrficas
Ex.: sistema recupervel em 98% das falhas Quanto maior, melhor
-
Conceitos
Falta, Erro e Falha Faltas so defeitos que ocorrem em sistemas
Originadas por fatores internos ou externos Podem ficar dormentes at serem notadas
Erros so resultantes de faltas no sistema Ocorrem quando faltas impedem o funcionamento normal
do sistema Diferentes faltas podem causar o mesmo erro
Falhas podem ocorrer devido a erros no sistema A falha o efeito observvel do erro Diversos erros podem levar mesma falha
97
-
Conceito
Falta, Erro e Falha Exemplo: HD
Um setor do disco pode estar com defeito (falta)
Um erro de leitura pode ocorrer se um programa tentar ler ou escrever neste setor
Pode ocorrer uma falha em um sistema que tente acessar este setor e no consiga
Se os dados gravados neste setor estiverem replicados em outro local, o sistema pode tolerar a falta e no apresentar falha
98
-
SistemaSistema
ComponenteComponente
ComponenteComponente
Conceitos
Falhas em Cascata
ErroErro
FaltaFaltaFalhaFalha
ErroErro
FaltaFaltaFalhaFalha
ErroErroFaltaFalta
FalhaFalha
99
-
Conceitos
Falhas em Cascata A falha de um componente pode ocasionar a falha de outro
que necessita dos servios do primeiro, e assim sucessivamente, podendo levar o sistema como um todo a falhar
Exemplo: Uma falta no disco pode causar uma falha no
sistema de arquivos Os servidores Web e de e-mail, que usam o sist. de
arquivos, podem falhar Uma aplicao de comrcio eletrnico baseada na
Web pode tambm falhar
100
-
Conceitos Previso de Faltas
Estima a probabilidade de que faltas ocorram Permite que se avalie os riscos de falha
Remoo de Faltas Consiste em detectar e remover as faltas antes que causem
erros e falhas Usar ferramentas como debugger, scandisk, ...
Preveno de Faltas Elimina as condies que fazem com que faltas ocorram
durante a operao do sistema Usa replicao interna, tcnicas de validao, ...
101
-
SistemaSistema
ComponenteComponente
ComponenteComponente
Conceitos
Tolerncia a Faltas
ErroErro
FaltaFaltaFalhaFalha
ErroErro
FaltaFaltaFalhaFalha
102
Uma barreira Uma barreira impede que a impede que a
falha se propaguefalha se propague
-
Conceitos
Tolerncia a Faltas Propriedade de sistemas que no falham necessariamente
ao se deparar com uma falta Sistemas Tolerantes a Faltas
So sistemas capazes de tolerar faltas encontradas durante a sua execuo
Tcnicas de Tolerncia a Faltas Permitem prevenir falhas contornando as faltas que os
sistemas podem vir a apresentar
103
-
Tipos de Faltas
Classificao em relao sua origem: Fsica: causada pelo hardware De projeto: introduzida durante a fase de projeto do
sistema De interao: ocorrida nas interfaces entre componentes
do sistema ou na interao com o mundo exterior Classificao em relao sua natureza:
Acidental ou Intencional Maliciosa ou No
104
-
Tipos de Faltas
Classificao em relao ao seu surgimento: Na fase de desenvolvimento do sistema Na fase de operao do sistema
Classificao em relao sua localizao: Interna Externa
Classificao em relao persistncia: Temporria
Transiente ou Intermitente Permanente
105
-
Tipos de Faltas
Classificao com base no modelo de faltas: Faltas Omissivas
Crash: deixa de funcionar permanentemente Omisso: sistema deixou de fazer o que deveria em um
determinado instante Temporal: sistema atrasou-se para executar uma
determinada ao Faltas Assertivas
Sinttica: formato da sada inadequado Semntica: sada apresenta valor incorreto
Faltas Arbitrrias: omissivas + assertivas
106
-
Tipos de Faltas
Os tipos de faltas mais freqentes so: Faltas de operao e administrao: 42% Faltas de software: 25% Faltas de hardware: 18% Faltas de ambiente: 14% Fonte: Jim Gray. Why do Computers Stop and What Can
Be Done About It? IEEE SRDS85. Estudos mais recentes confirmam estes dados
107
-
Replicao
Tolerncia a faltas pode ser obtida atravs do uso de recursos redundantes
Redundncia pode ser aplicada das seguintes maneiras: Redundncia Temporal: repetir uma mesma tarefa at que
um resultado vlido seja obtido Redundncia de Valores: replicar um dado armazenado ou
enviado pela rede Redundncia Espacial: usar vrias rplicas de um
componente de hardware ou software
108
-
Replicao
Uso de rplicas aumenta a disponibilidade Exemplo: se a probabilidade de perda de uma mensagem
na rede de 2% (disponibilidade de 0,98), se duplicarmos todas as mensagens, a chance de se perder as duas cpias ser de 0,04% (disponibilidade de 1-0,022=0,9996)
Exemplo 2: se um servidor fica indisponvel durante 8 horas a cada ano (disponibilidade de 0,999), se criarmos 3 rplicas teremos uma parada total de 3,15 segundos em um sculo (disponibilidade de 1-0,0013= 0,999999999)
109
-
Replicao
O acesso a servios ou dados replicados deve ser transparente para o usurio Usurio deve acessar o dado ou servio replicado da
mesma forma que o faria se no houvesse replicao Se for preciso manter a consistncia dos dados replicados,
este processo deve ser efetuado automaticamente pelas rplicas
Mesmo que mais de uma rplica responda a uma requisio, apenas uma resposta deve ser entregue ao usurio
110
-
Replicao
Tcnicas de Replicao Definem como as rplicas se comportaro durante o
funcionamento normal do sistema e sob a presena de faltas
Principais Tcnicas de Replicao Replicao Passiva (Primrio-Backup) Replicao Ativa Replicao Semi-Ativa (Lder-Seguidores) Replicao Preguiosa (Lazy )
111
-
Replicao
Replicao Passiva (Primrio-Backup) So criados um ou mais backups de um componente
(primrio) com o objetivo de substitu-lo em caso de falha Funcionamento com propagao de estado instantnea:
Primrio recebe requisies, as executa, atualiza o estado dos backups e retorna o resultado ao cliente
112
-
Replicao
Replicao Passiva (Primrio-Backup)
Mquina 1
Primrio
Mquina 2
Backup
ClienteCliente
1.Requisio1.Requisio
4. Resposta4. Resposta
3. Estado3. Estado
2.Executa2.Executa
113
-
Replicao
Replicao Passiva (Primrio-Backup) Em caso de falha do primrio, um backup ser escolhido
para assumir o seu lugar O backup escolhido ter o mesmo estado do primrio at a
ltima requisio executada Uma requisio em execuo durante a falha pode ser
recuperada pelo cliente reenviando a requisio ao novo primrio
Atualizao de estado a cada requisio causa uma sobrecarga considervel no primrio
114
-
Replicao
Replicao Passiva (Primrio-Backup) Funcionamento com log e checkpoints :
As requisies de clientes so enviadas ao primrio e ao(s) backup(s) Primrio executa as requisies e responde aos
clientes Backup recebe as requisies mas no as executa
apenas as registra em um log O estado do primrio transferido para o(s) backup(s)
em instantes predeterminados chamados de checkpoints
115
-
Replicao
Replicao Passiva (Primrio-Backup) Funcionamento com log e checkpoints (cont.):
O backup limpa o log a cada checkpoint Em caso de falha do primrio, o backup escolhido para
assumir o seu lugar ter o estado do primrio no ltimo checkpoint
Para chegar ao mesmo estado do primrio no instante da falha, o backup escolhido executa as requisies registradas no log
116
-
Replicao
Replicao Passiva (Primrio-Backup)
Mquina 1
Primrio
Mquina 2
Backup
ClienteCliente3.Resposta3.Resposta
1.Requisio1.Requisio
log
2.Registra2.Registra2.Executa2.Executa
117
-
Replicao
Replicao Passiva (Primrio-Backup) Procedimento executado a cada Checkpoint :
Mquina 1
Primrio
Mquina 2
Backup1.Transfere1.TransfereEstadoEstado
log2.Limpa2.LimpaLogLog
118
-
Replicao
Replicao Passiva (Primrio-Backup) Consideraes:
O(s) backup(s) consomem muito pouco poder de processamento, pois no precisam processar as requisies
O primrio tem a obrigao de salvar seu estado e enviar ao(s) backup(s), o que consome processamento e largura de banda
Transferncia de estado pode ser incremental Quanto maior o intervalo entre checkpoints, menor a
sobrecarga no primrio, e maioro tempo de recuperao de falhas
119
-
Replicao
Replicao Ativa Um grupo de rplicas de um componente recebe uma
requisio de um cliente Todas as rplicas processam a requisio
concorrentemente e enviam as suas respostas ao cliente No preciso sincronizar o estado das rplicas, pois todas
executam os mesmos procedimentos
120
-
Replicao
Replicao Ativa
Mquina 1
Rplica 1
Mquina 2
Rplica 2
ClienteCliente
1.Requisio1.Requisio
2. Resposta2. Resposta
121
-
Replicao
Replicao Ativa O cliente precisa de apenas uma resposta A resposta vlida para o cliente pode ser:
A mais freqente (votao) A primeira recebida Uma mdia etc.
Com isso, a replicao ativa pode tolerar faltas de valor por meio de votao
Em 2N+1 rplicas podemos ter N respostas erradas sem ocasionar falha do sistema
122
-
Replicao
Replicao Ativa Consideraes:
Alto custo para execuo das rplicas ativas As requisies devem ser entregues na mesma ordem
para todas as rplicas usar protocolo de difuso atmica
Ordenao de mensagens tem custo alto Recuperao mais rpida que na replicao passiva,
pois caso uma rplica falhe, as demais continuam funcionando normalmente
123
-
Replicao
Replicao Semi-Ativa (Lder-Seguidores) Um componente (lder) possui uma ou mais rplicas
(seguidores) Cada requisio enviada a todos, que as executam na
ordem definida pelo lder Apenas o lder responde ao cliente que efetuou a requisio No preciso sincronizar o estado das rplicas, pois todas
executam os mesmos procedimentos
124
-
Replicao
Replicao Semi-Ativa (Lder-Seguidores)
Mquina 1
Lder
Mquina 2
Seguidor
ClienteCliente
1.Requisio1.Requisio
4. Resposta4. Resposta
3.Executa3.Executa 3.Executa3.Executa
2.Define2.DefineOrdemOrdem
125
-
Replicao
Replicao Semi-Ativa (Lder-Seguidores) Consideraes:
Mesmo que as requisies dos clientes sejam entregues fora de ordem, todas as rplicas chegaro ao mesmo estado, j que a ordem de execuo arbitrada pelo lder
O tempo gasto para processamento nas rplicas seguidoras grande, j que elas tambm tm que processar a chamada
Caso o lder falhe, um seguidor escolhido para assumir o seu lugar
126
-
Replicao
Replicao Preguiosa (Lazy) Operaes que precisam de ordenao total (ou seja, que
alteram o estado) so executadas como na replicao ativa Operaes que podem ser executadas em ordens
diferentes em cada rplica podem ser enviadas para qualquer rplica, que deve:
Atender a requisio Enviar a resposta ao cliente Difundir em background a requisio para as outras
rplicas
127
-
Replicao
Replicao Preguiosa (Lazy) Operao
com ordemcausal
Mquina 1
Rplica 1
Mquina 2
Rplica 2
ClienteCliente
4.Requisio4.Requisio
2.Executa2.Executa
1.Requisio1.Requisio
3.Resposta3.Resposta5.Executa5.Executa
128
-
Replicao
Replicao Preguiosa (Lazy) Consideraes:
Reduz a sobrecarga na execuo de algumas operaes, j que nem sempre necessrio usar um protocolo de difuso atmica
Exige que a semntica das operaes seja conhecida para diferenciar as operaes que exigem ordenao total daquelas nas quais ordem causal suficiente
129
-
Replicao
Programao com Mltiplas Verses Rplicas no precisam ser idnticas So criadas diferentes implementaes de um mesmo
componente de software Linguagem de programao, compilador e suporte de
execuo diferentes Algoritmos diferentes Times de desenvolvimento diferentes
Resultados so obtidos atravs de votao Com mltiplas verses, reduz-se a chance de todas as
rplicas falharem no mesmo instante
-
Deteco de Falhas
A falha de um componente de um sistema pode levar todo o sistema a falhar
Mesmo que o sistema consiga tolerar a falha do componente, este deve ser recuperado para restaurar a capacidade do sistema de tolerar faltas Ex.: na replicao passiva, se o nico backup existente
assume o lugar do primrio, preciso criar um novo backup
preciso detectar as faltas sofridas pelos componentes para poder recuper-los
131
-
Deteco de Falhas
Deteco Local de Falhas Podem ser usados diversos mtodos:
Rotinas de auto-verificao (self-check) Guardies: verificam constantemente as sadas geradas
por um componente Watchdogs : componente deve constante-mente reiniciar
um temporizador antes que ele se esgote, indicando uma falha
Problema: mesmo para um observador local, processos lentos podem parecer falhos
132
-
Deteco de Falhas
Deteco Distribuda de Falhas Um componente do sistema envia mensagens
periodicamente aos seus pares e avisa que est vivo (I am alive) ou pergunta se eles esto vivos (Are you alive ?)
Se um componente no se manifestar por um determinado tempo, ele suspeito de falha
Suspeitas infundadas podem ser causadas por atraso, particionamento ou falha da rede
133
-
Deteco de Falhas
Diagnstico do Sistema Componentes faltosos podem reportar erroneamente o
estado dos seus pares Em um sistema com f componentes faltosos, cada
componente deve ser testado por pelo menos f outros, e precisamos de n 2f +1 elementos para detectar corretamente a falta
Para diagnosticar falhas de componentes do sistema, um elemento deve coletar e analisar os dados obtidos dos demais componentes
134
-
Deteco de Falhas
Detector de Falhas Servio ou mdulo que verifica a ocorrncia de falhas em
componentes do sistema Implantado junto ao componente Executa um algoritmo de deteco de falhas Interage com detectores de outros componentes do
sistema O componente pode requisitar ao seu detector informaes
sobre o estado de outros componentes do sistema
135
-
Deteco de Falhas
Tipos de Detectores de Falhas Perfeitos
Determinam precisamente se um componente do sistema falhou ou no
Todos os componentes tm a mesma viso Imperfeitos
Detectores determinam se um processo suspeito de falha ou no
Diferentes componentes podem ter vises distintas de um mesmo componente
136
-
Deteco de Falhas
Tipos de Detectores de Falhas Detectores perfeitos so difceis de obter, principalmente
em sistemas distribudos Detectores quase-perfeitos podem ser obtidos usando
crash controlado Se um componente suspeito de falha, ele removido
do sistema O componente passa a ser ignorado por todos os
demais componentes Pode levar a descartar componentes que esto
funcionando corretamente
137
-
Recuperao de Falhas
Recuperao de Erros Ao perceber um erro, o componente pode tentar recuperar-
se automaticamente Recuperao de erro por retrocesso (backward error
recovery): componente volta a um estado anterior ao erro e continua ativo
Exemplos: reinicia a execuo de um mtodo, retransmite pacotes perdidos, etc.
Operaes posteriores ao instante de retrocesso so perdidas, mas seu efeito pode ainda ser sentido no sistema, levando possivelmente a inconsistncias
138
-
Recuperao de Falhas
Recuperao de Erros (cont.) Recuperao por avano (forward error recovery):
componente toma medidas que anulem ou aliviem o efeito do erro e continua a operar normalmente
Exemplo: descartar pacotes, substituir um valor invlido pelo valor vlido anterior, etc.
Usada quando no h tempo para voltar para estado anterior e retomar execuo, ou quando aes no podem ser desfeitas
139
-
Recuperao de Falhas
Recuperao de Falhas Se ocorrer a falha de um componente, um sistema
tolerante a faltas deve mascar-la usando as rplicas disponveis
Na replicao passiva, substituir o primrio por um backup e criar um novo backup
Na replicao semi-ativa, substituir o lder por um de seus seguidores e criar um seguidor
Nas replicaes ativa e lazy, criar uma nova rplica para manter a capacidade do sistema de tolerar faltas (ou falhas de componentes)
140