Programação Distribuída



Documentos relacionados
Falha benigna. Sistema. Sistema Próprio. Interrompido. Restauração. Falha catastrófica. Falha catastrófica. Sistema. Impróprio

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Sistemas Distribuídos. Aleardo Manacero Jr.

Sistemas Distribuídos

MC714 - Sistemas Distribuídos. Leandro Villas

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 13

Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Sistemas Distribuídos. Fundamentos. Nazareno Andrade. Universidade Federal de Campina Grande 02/2008

UNIVERSIDADE. Sistemas Distribuídos

SERVIDORES REDES E SR1

Programação Distribuída

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto

Sincronização em SDs I. Bruno M. Carvalho Sala: 3B2 Horário: 35T34

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Sistemas Distribuídos Aula 10

SISTEMAS DISTRIBUIDOS

Sistemas Distribuídos. Introdução


Bancos de Dados III. Replicação de Dados. Rogério Costa Replicação

ANALISTA DE SISTEMAS - SUPORTE

Sincronização em Sistemas Distribuídos

Tempo e estados globais. Tempo. Tempo. Sincronização de relógios físicos. Sincronização de relógios físicos: drift

Banco de Dados Orientado a Objetos

Introdução ao Modelos de Duas Camadas Cliente Servidor

Sincronização. Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol

Banco de Dados Heterogêneos. Celso Antonio Colom bo Leandro Giaretta

ICORLI INSTALAÇÃO, CONFIGURAÇÃO E OPERAÇÃO EM REDES LOCAIS E INTERNET

MANUAL DE CONFIGURAÇÃO

Manual de instalação, configuração e utilização do Enviador XML

Este artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007.

Grupos de Processos (Comunicação Grupal)

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

É importante que nos atenhamos a alguns aspectos importantes sobre banco de dados:

Sistemas Distribuídos (DCC/UFRJ)

Sistemas Operacionais. Prof. André Y. Kusumoto

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos

Sistemas Distribuídos Grupos

Revisão. Karine Peralta

Topologia de rede Ligação Ponto-a-Ponto

Sistemas Cliente-Servidor

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

Início Rápido: Registar para o Centro de Negócios da Microsoft

INTRODUÇÃO À REDES DE COMPUTADORES. Dois ou mais computadores conectados um ao outro por um meio de transmissão.

Entendendo como funciona o NAT

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

Faculdade Lourenço Filho - ENADE

Sincronização. Sincronização de Relógios. Relógios Físicos

Implantação do Sistema de Controle de Tempos Nas Agências de Atendimento - TMA

NORMAS PARA O USO DE SISTEMA DE PROTEÇÃO FIREWALL DE PERÍMETRO NO ÂMBITO DA REDE INFOVIA-MT

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Política de Segurança Corporativa da Assembleia Legislativa do Estado do Ceará

Sistemas Distribuídos

2 Fundamentação Conceitual

ADMINISTRAÇÃO E SERVIÇOS DE REDE

Aplicações P2P. André Lucio e Gabriel Argolo

Meio Físico. Mensagem. Protocolo. Emissor e Receptor. Data Terminal Equipment Data Communications Equipment

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O

Cap 03 - Camada de Aplicação Internet (Kurose)

SISTEMAS DISTRIBUÍDOS

Conceito de Rede e seus Elementos. Prof. Marciano dos Santos Dionizio

Gerência de Redes. Arquitetura de Gerenciamento.

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

Comparação SDs X Scs

ADMINISTRAÇÃO GERAL GESTÃO DE PROCESSOS

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;

Sincronização em Sistemas Distribuídos

PORTABILIDADE NUMÉRICA UMA SOLUÇÃO ORIENTADA PELA SIMPLICIDADE, QUALIDADE E BAIXO CUSTO

Profs. Deja e Andrei

Disciplina: Redes de Comunicação. Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos. Setembro 2013

TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo

Exclusão Mútua em Sistemas Distribuídos

GBD PROF. ANDREZA S. AREÃO

Transcrição:

Unidade 4 Programação Distribuída Transações Distribuídas O que são? São sistemas compostos por diversas partes cooperantes que são executadas em máquinas diferentes interconectadas por uma rede Exemplos de aplicações distribuídas WWW, ICQ, IRC, Morpheus/Kazza,, etc. Sistemas bancários Sistemas de gerenciamento de redes de telecomunicações, transmissão de energia, etc. Sistemas de informação de grandes empresas 2 Estrutura Física Máquinas (hosts) são conectadas a um provedor (ISP) ou rede local, metropolitana, sem fio,, etc. Estas redes são interligadas por redes de longa distância públicas (ex.: Internet) ou privadas Kurose & Ross 3 Vantagens Usam melhor o poder de processamento por distribuir a carga entre as máquinas Podem apresentar melhor desempenho, maior confiabilidade, e suportar um maior número de usuários Permitem compartilhar dados e recursos e reutilizar serviços já disponíveis 4 Acoplamento fraco Máquinas trocam dados pela rede Tempo de comunicação ilimitado pode comprometer o funcionamento do sistema Como reduzir o tráfego na rede? Não-deterministas Comportamento pouco previsível Como evitar congestionamento/sobrecarga? Sistemas heterogêneos Máquinas, linguagens e S.O. s diferentes Como tratar estas diferenças? Não há uma base de tempo global Em geral os relógios não estão sincronizados Como ordenar os eventos no sistema? Difícil ter uma visão global Transações envolvem várias máquinas Como manter o estado global do sistema? 6

Acesso concorrente a dados e recursos Dados/recursos em diferentes máquinas Como controlar o acesso concorrente? Como evitar deadlocks? Difícil gerenciar e manter o sistema Máquinas dispersas pela rede Administração pode ser independente 7 Sujeito a falhas As máquinas e a rede podem falhar Como evitar que estas falhas comprometam o funcionamento do sistema? Segurança Mais difícil controlar o acesso a dados e recursos em sistemas distribuídos Como garantir a segurança do sistema e o sigilo dos dados trocados pela rede? 8 É necessário determinar com exatidão o tempo no qual os eventos ocorrem nos sistemas computacionais Registro de acesso ao sistema (login/logout( login/logout) Determinação do tempo de uso (ex.: telefonia, acesso à rede, vídeo sob demanda, videoconferência, etc.) Registro de transações bancárias Registro de compra/venda de produtos Auditoria e segurança Os relógios das máquinas não são sincronizados Os relógios não são precisos: há um desvio entre o tempo real e o marcado pelo relógio Mesmo que se acerte os relógios, com o passar do tempo eles perdem a sincronia Rede... 9 0 Possíveis soluções: Relógios atômicos colocados em todas as máquinas, marcando o tempo universal (UTC) Inviável! vel! Receptores de satélite em todas as máquinas (satélites difundem o sinal de tempo UTC) Sairia caro demais! Sincronização pela rede Servidores de tempo, com relógios precisos, difundem um sinal de tempo pela rede NTP ( (Network Time Protocol) Hieraquia de Servidores Servidores de o nível (ou primários): rios): possuem relógios precisos Servidores de 2 o, 3 o,..., N o nível: recebem o tempo do nível n anterior Clientes (máquinas dos usuários finais): perguntam o tempo a um servidor e atualizam seus relógios com base na resposta recebida 2 2

NTP ( (Network Time Protocol) o Nível 2 o Nível 3 Características do NTP Barato por não exigir relógios precisos (atômicos ou com GPS) em todas as máquinas Impreciso devido ao tempo de propagação das mensagens pela rede não ser constante O O algoritmo de sincronização dos relógios leva em conta uma estimativa do tempo de propagação das mensagens pela rede Mesmo assim, existe um erro implícito que pode chegar a dezenas de ms, e que deve ser levado em conta pelos sistemas 4 Relógios Lógicos (Lamport( Lamport,, 978) Usados para definir a ordem dos eventos produzidos por um grupo de processos Cada processo mantém um contador, e atribui marcas de tempo ( (timestamp)) aos eventos (ex.: envio ou recepção de mensagens) Cada mensagem trocada pela rede carrega consigo o timestamp atribuído pelo remetente Os eventos são ordenados pelos timestamps Relógios Lógicos Exemplo: Analisando os timestamps temos que: a b c d f f ; a e ; e f p p 2 p 3 a e 2 b m 3 4 c d m 2 f Tempo físico (real) 6 Relógios Lógicos com Ordenação Total O identificador do processo é usado para definir a ordem de eventos concorrentes Assim podemos assumir que a e 2 p a b m Relógios Vetorias (Mattern,, 89; Fidge,, 9) Usa vetores de timestamps com o valor conhecido do relógio lógico de cada processo Se V x [i] V y [i] Vi e V x V y, então x y p (,0,0) (2,0,0) a b m p 2 3 4 c d m 2 Tempo físico (real) p 2 (2,,0) (2,2,0) c d m 2 Tempo físico (real) p 3 p 3 (0,0,) (2,2,2) e f 7 e f 8 3

de um Sistema Distribuído É o conjunto dos estados locais dos processos Como o estado local de cada processo muda continuamente, é muito difícil conhecer o estado global do sistema Tentar obter o estado global consultando cada processo pode levar a inconsistências Exemplos: Crianças trocando figurinhas Saldo das contas de correntistas de um banco Quando é preciso obter o? Garbage Collection : verificar se existem clientes de objetos acessados remotamente Debugging Distribuído: verificar os valores das variáveis de um programa distribuído Controle de Membership : listar os membros de um grupo de processos ou usuários Como obter um consistente? É preciso considerar o efeito das mensagens trafegando na rede para obter o estado global Saldo das contas de correntistas de um banco 9 20 Protocolo de Snapshot (Chandra & Lamport O processo que inicia o protocolo salva seu estado e envia uma mensagem marker por todos os seus canais de saída Os demais processos salvam seu estado ao receber o o marker e enviam markers por todos os seus canais de saída O estado de um canal consiste nas mensagens recebidas pelo canal até chegar um marker Assim obtém o estado de todos os processos e canais de comunicação do sistema Lamport,98) 2 Protocolo de Snapshot Exemplo: R$0 R$9 R$9, disquete C C C Vende (disquete, R$) Marker disquete Vende (CDR, R$3) Marker Estado do processo C: R$9 Estado do canal S->C: S disquete Estado do processo S: 99 disquetes, 0 CDRs, R$ Estado do canal C->S: C vazio S S S 00 disquetes, 0 CDRs, R$0 99 disquetes, 0 CDRs, R$ 99 disquetes, 0 CDRs, R$ 22 Transações Distribuídas Replicação de Dados Os dados do sistema podem estar replicados É necessário garantir a consistência de réplicas réplicas com o mesmo valor! Alterações nos dados devem ser propagadas para as máquinas com réplicas do dado Replicação dificulta a obtenção do estado global do sistema Cada réplica deve atualizar seu estado ao reintegrar-se ao sistema; qualquer inconsistência nos dados deve ser resolvida 23 Transações distribuídas alteram o estado de vários processos em várias máquinas Devem ser garantidos a atomicidade,, a consistência,, o isolamento e a durabilidade Falhas podem impedir a execução de uma transação Falha de software Falha da máquina Falha na comunicação Nem sempre é possível saber quem falhou! 24 4

Transações Distribuídas Execução de Transações Distribuídas Coordenadores de transações coordenam a execução das transações iniciadas localmente Gerenciadores de transações administram a execução da parte local da transação Máquina Coordenador Gerenciador Máquina 2 Coordenador Gerenciador Máquina 3 Coordenador Gerenciador Transações Distribuídas Coordenador de Transações Inicia a execução da transação Divide a transação em sub-transações e as distribui no sistema para execução Efetiva ou faz o rollback em todos os sites Gerenciador de Transações Controla a execução da sub-transação local Matém um log das operações executadas para permitir a recuperação da transação 2 26 em Sist. Distrib. Protocolos para controlar o acesso a dados e recursos compartilhados Mecanismos de detecção de deadlock Protocolo de Bloqueio Único (Centralizado) Uma máquina funciona como gerenciador de bloqueios, que administra todos os pedidos de bloqueio de dados ou recursos no sistema É simples, pois a detecção de deadlocks é local, mas é sujeito a falhas e pouco escalável 27 Protocolo de Bloqueio Múltiplo (Descentralizado) São usados vários gerenciadores em diferentes máquinas Cada gerenciador administra os bloqueios de um conjunto de dados/recursos Evita o gargalo do protocolo centralizado, mas dificulta a detecção de deadlocks Impede o acesso ao dado/recurso se o gerenciador falhar, mesmo que a máquina com o dado/recurso esteja funcionando 28 Protocolo de Bloqueio Distribuído Cada máquina do sistema tem o seu gerenciador de bloqueios Cada gerenciador administra os bloqueios de dados/recursos locais Assim como o anterior, evita o gargalo, mas dificulta a detecção de deadlocks Impede o acesso somente quando a máquina com o dado/recurso falhar Protocolo com Cópia Primária Usado no acesso a dados replicados Cada dado replicado possui uma cópia primária em um máquina O bloqueio é solicitado à máquina com a cópia primária daquele dado Simples e escalável,, mas impede o acesso às réplicas se o primário falhar, e dificulta a detecção de deadlocks 29 30

Protocolo da Maioria Usado no acesso a dados replicados Cada máquina possui um gerenciador para bloqueio de réplicas de dados locais O bloqueio de dados com réplicas é concedido se a maioria dos sites permitir Mais complexo para implementar que os anteriores, e difícil detectar deadlocks 3 Protocolo Parcial Cada máquina tem o seu gerenciador de bloqueio das réplicas locais de dados Bloqueios compartilhados são obtidos contatando o gerenciador de somente uma réplica do dado Bloqueios exclusivos devem ser solicitados em todos os gerenciadores de bloqueio de todas as máquinas com réplicas Bem escalável,, mas difícil detectar deadlocks 32 Detecção de Deadlocks Distribuídos Cada máquina monta um gráfico de espera com os bloqueios mantidos localmente Um nó P EX é adicionado ao gráfico para representar P P 2 uma espera por recursos externos bloqueados P 3 P EX Um ciclo passando apenas por nós locais representa um deadlock Um ciclo envolvendo P EX indica um possível deadlock,, que deve ser verificado junto às máquinas envolvidas 33 6