Cap. 06 Sincronização

Tamanho: px
Começar a partir da página:

Download "Cap. 06 Sincronização"

Transcrição

1 Cap. 06 Sincronização 6.1 Sincronização de Relógio Relógio Físicos Sistema de Possicionamento Global Algoritmos de Sincronização de Relógio 6.2 Relógios Lógicos Relógio Lógico de Lamport Relógios de Vetores Pg. 1/97

2 Cap. 06 Sincronização 6.3 Exclusão Mútua Algoritmo Centralizado Algoritmo Descentralizado Algoritmo Distribuído Algoritmo Token Ring 6.4 Algoritmos de Eleição Algoritmos de Eleição Tradicional Eleição em Ambiente sem Fio Eleição em Sistemas de Larga Escala Pg. 2/97

3 Referências Bibliográficas Andrew S. Tanenbaum; Maarten van Steen - Distributed Systems: Principles and Paradigms, Prentice-Hall, 2007, ISBN-10: , ISBN-13: Lectures dos autores Andrew S. Tanenbaum e Maarteen van Steen ( e ) George Coulouris; Jean Dollimore; Tim Kindberg Sistemas Distribuídos: Conceitos e Projeto, Bookman, 4th Edition, 2007, ISBN Notas de Aula do Prof. Ricardo Anido do Instituto de Computação (IC) da UNICAMP - Pg. 3/97

4 6 Sincronização 6 Sincronização Objetivo do Cap. 06 discutir como processos podem sincronizar suas atividades em um ambiente distribuído; e.g.,... considere o cenário de múltiplos processos acessando simultaneamente recursos compartilhados, como impressoras. objetivo... permitir que os processos cooperem entre si para garantir que cada um acesse individualmente e, por uma certo período de tempo, o recurso objeto do compartilhamento. Problema sincronização em sistemas distribuídos é frequentemente mais difícil comparada com a sincronização em sistemas monoprocessados ou multiprocessados. Pg. 4/97

5 6 Sincronização Sincronização de Relógio 6.1 Sincronização de Relógio tempo grandeza determinística em sistemas centralizados, no entanto, não se pode dizer o mesmo em sistemas descentralizados;... quando um processo deseja saber o tempo, ele simplesmente invoca uma chamada de sistema e o kernel o informa; e.g.,... considere o caso de 02 processos (A e B) que solicitam informações de tempo em sequência, ou seja, A e depois B; resposta:... o tempo obtido pelo processo B será >= (maior ou igual) ao tempo obtido pelo processo A. problema em sistemas distribuídos a mesma operação não necessariamente irá produzir o mesmo resultado; e.g., apenas pense, por um momento, nas implicações da falta de um medida global de tempo ao programa make do UNIX?! Pg. 5/97

6 6 Sincronização Sincronização de Relógio 6.1 Sincronização de Relógio e.g., apenas pense, por um momento, nas implicações da falta de uma medida global de tempo no programa make do UNIX?! make - no UNIX, programas grandes são normalmente divididos em múltiplos programas, de modo que a mudança em um arquivo fonte requeira a recompilação apenas daquele arquivo;... se um programa contempla 100 arquivos, não recompilar tudo em razão da mudança de um arquivo, aumenta consideravelmente a velocidade com que programadores podem trabalhar.... de fato o uso do make funciona bem em sistemas em que a medida de tempo é global, mas quais serão as implicações se não tivermos a medida global de tempo p.ex. sistemas distribuídos?! Pg. 6/97

7 6 Sincronização Sincronização de Relógio 6.1 Sincronização de Relógio Fig. 6.1 Quando cada máquina dispõe de relógio próprio, um evento que acontece após o outro jamais estará associado a um tempo anterior como o tempo do primeiro evento! Pg. 7/97

8 6 Sincronização Sincronização de Relógio Relógios Físicos Quase todos os computadores dispõem de circuitos para rastrear o tempo e, embora o termo clock seja utilizado para referenciar estes dispositivos, ele não é usado no sentido real; timer - com certeza é uma palavra que melhor ilustra o que estamos medindo ou interessados em medir;... em sistemas computacionais o timer (cronômetro) é precisamente implementado por um dispositivo de cristal de quartzo;... associado ao cristal, há 02 registradores: holding register e counter cujo valor é decrementado de 1 a cada oscilação do cristal de quartzo (quando submetido a tensão elétrica);... quando o counter chega a zero, uma interrupção é gerada e o counter é recarregado com o valor do holding register. Pg. 8/97

9 6 Sincronização Sincronização de Relógio Relógios Físicos... desta forma é possível gerar 60 interrupções - clock tick - a cada segundo ou qualquer outra frequência que se deseje. Com a introdução de múltiplas CPUs, cada qual com o seu clock, a situação muda radicalmente;... pois embora o cristal gere oscilações estáveis, não é possível garan- tir que cristais em diferentes máquinas operem na mesma frequência.... no mundo real, um sistema com n computadores, os n cristais oscilam em frequências levemente diferentes, causando no tempo diferenças de valores entre as n diferentes leituras - clock skew ;... com consequência do clock skew, programas que esperam pelo tempo correto associado ao arquivo, objeto, processo ou menssagem e independente da máquina onde foi gerado podem falhar. Pg. 9/97

10 6 Sincronização Sincronização de Relógio Relógios Físicos Em Sistemas de Tempo Real há algumas exigências como a de tempo de relógio real, ou seja, necessidade de relógios externos;... assim, por razões de eficiência e redundância, a presença de múltiplos relógios físicos é desejável, mas produz 02 problemas: como sincronizá-los com o relógio do mundo real?! como sincronizar os relógios uns com os outros!?... antes de respondermos a esta questão, vejamos como de fato o tempo é medido, ou seja, quais eventos naturais são utilizados e como são contabilizados na medida do tempo. Pg. 10/97

11 6 Sincronização Sincronização de Relógio Relógios Físicos Fig. 6.2 Medição do Tempo mean solar day. Pg. 11/97

12 6 Sincronização Sincronização de Relógio Relógios Físicos... como pode ser verificado, o período do evento que queremos medir é o de trânsito do sol, ou seja, o tempo entre 02 passagens consecutivas do sol pelo ponto mais alto no céu - solar day ; solar second - 1 / do dia solar, ou seja, 1 / (24 * 3600) do dia solar como mostrado na Fig como há outras variáveis envolvidas no processo de cálculo do dia solar bem como do segundo solar, a quantidade resultante é denominas média do segundo solar - mean solar second ;... com o advento do relógio atômico, o segundo solar passou a ser medido pelo número de transações do Átomo Cesium 133, ou seja, são necessárias transações para que 01 segundo tenha transcorrido no tempo. Pg. 12/97

13 6 Sincronização Sincronização de Relógio Relógios Físicos Periodicamente laboratórios espalhados pelo mundo informam ao Bureau International de l'heure (BIH) o tempo atômico ou no francês - Temps Atomique International TAI; TAI média do número de ticks do Átomo Cesium 133 desde a 00:00 de 01/Jan/1958 quando então deu-se início a medida dividido por ; Obs.:... embora seja altamente estável, há o sério problema com os segundos que agora são 3 ms menor que a média do dia solar, pois o dia solar vem se tornando maior a cada dia; leap seconds -... ou segundos bissextos, acompanha a diferença entre o TAI e o dia solar real está crescendo e hoje já assume o valor de 800 ms. Pg. 13/97

14 6 Sincronização Sincronização de Relógio Relógios Físicos Fig. 6.3 Segundos TAI são constantes, diferentemente dos segundos solares, pois isso, foi introduzido os leap seconds ; leap seconds - mantém em fase o TAI e o dia solar. Pg. 14/97

15 6 Sincronização Sincronização de Relógio Relógios Físicos Para prover Universal Coordinated Time - UTC para aqueles que precisam do tempo real, o NIST - National Institute of Standard Time opera uma estação de ondas curtas;... esta estação emite um pulso a cada início de segundo UTC e sua precisão é não mais do que +-1 ms, mas por questões de interferência na propagação do pulso esta precisão na prática é não mais do que +-10 ms. Vários satélites também oferecem o Serviço UTC e o satélite Geostationary Environment Operational - GEOS pode prover o UTC com precisão de 0.5 ms. Pg. 15/97

16 6 Sincronização Sincronização de Relógio Sistema de Possicionamento Global Global Positioning System sistema distribuído baseado em satélite lançado em 1978 que pode determinar a posição geográfica de qualquer um na Terra;... composto de 29 satélites em órbita a uma altura de aproximadamente Km, cada qual com até 04 relógios atômicos calibrados regularmente de estações na Terra;... um satélite radiodifunde - broadcast continuamente sua posição e adiciona em cada mensagem o tempo local, ou seja, hora local no satélite proveniente do(s) relógio(s) atômico(s);... esta difusão de mensagens permite aos destinatários calcular a sua posição, utilizando em princípio informações de 03 satélites. Pg. 16/97

17 6 Sincronização Sincronização de Relógio Sistema de Possicionamento Global Fig. 6.4 Cálculo da posição no espaço bi-dimensional. eixo y representa a altura; e o eixo x representa uma linha ao longo da superfície terrestre no nível do mar e os círculos representam pontos a uma mesma distância para cada um dos centros. Pg. 17/97

18 6 Sincronização Sincronização de Relógio Sistema de Possicionamento Global Princípio da intersecção de círculos pode ser expandido para 03 dimensões, ou seja, necessitamos de 03 satélites para determinar a longitude, latitude e altitude de um receiver na terra; Pg. 18/97

19 6 Sincronização Sincronização de Relógio Sistema de Possicionamento Global Há 02 fatos do mundo real que precisamos considerar:... tempo de propagação da mensagem até o receiver ;... relógio do receiver normalmente não sincronizado com o do satélite. Seja Δr o desvio do relógio do receiver com o tempo real, assim, quando a mensagem do satélite i como timestamp Ti é recebida, o atraso Δ i = ( Tnow Ti) + Δr ;... como o sinal progaga na velocidade da luz, a distância percorrida é c * Δi, ou seja, di = c * (Tnow Ti);... distância real entre o receiver e o satélite pode ser calculada pela equação: di = sqrt[ (xi xr)2 + (yi yr)2 + (zi zr)2 ] onde xi, yi e zi são as coordenadas do satélite i. Pg. 19/97

20 6 Sincronização Sincronização de Relógio Sistema de Possicionamento Global Obs.: Medida GPS irá também conceder a medida do tempo real, além da posição do receiver na Terra.... em geral o cálculo preciso da posição não é trivial e exige a consideração de outros aspectos não discutidos aqui;... muitos premissas sobre as quais repousam as hipóteses aqui apresentadas contém inúmeras fontes de erros como: desvios na medida UTC; relógios atômicos nos satélites não estão perfeitamente sincronizados; as próprias medidas não são precisas; posição do satélite não é precisa; propagação do sinal não é constante bem com a sua velocidade, terra não é uma esfera perfeita; etc. Pg. 20/97

21 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio Todos os algoritmos seguem praticamente o mesmo modelo, ou seja, cada máquina contempla um cronômetro - timer que gera H interrupções por segundo;... quando um ciclo se completa, o tratador de interrupção adiciona 1 ao relógio de software que por sua vez mantém o nro de ticks ou interrupção tendo por base uma referência do passado; e.g.,... considere que o tempo UTC seja t e o valor do relógio numa máquina p seja Cp(t);... no mundo perfeito, teremos Cp(t) = t para todo p e todo t, ou seja, C'p(t) = dc / dt deve idealmente ser 1; C'p(t) é a frequência de p no tempo t, enquanto que C'p(t) 1 reflete quão distante a frequência está do relógio perfeito. Pg. 21/97

22 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio Cronômetros reais não geram H interrupções por segundo, pois teoricamente para H = 60 são necessários ticks por hora, ou seja, 1 * 60 * 60 * 60 = ticks;... na prática o erro relativo obtido em cronômetros modernos está em torno de 1/105, ou seja, uma máquina pode obter valores na faixa entre e ticks por hora;... 1 ρ <= dc/dt <= 1 + ρ onde a constante ρ é especificada pelo fabricante bem como é conhecida por maximum drift rate Pg. 22/97

23 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio Fig. 6.5 Relação entre o tempo de relógio e o UTC quando frequência de ticks de relógio e diferente. Pg. 23/97

24 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio Network Time Protocol - protocolo que permite aos clientes obterem informações de um servidor de tempo; Fig. 6.6 Obtendo o tempo corrente de um Servidor de Tempo. Pg. 24/97

25 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio A envia uma requisição para B com a marca de tempo T1 e B registra o tempo de recepção da msg em T2 ; B retorna uma resposta para A com a marca de tempo T3 bem como informa o valor de T2 ; A registra o tempo de chegada da resposta de B em T4 Pg. 25/97

26 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio Como apresentado na Fig. 6.6, A pode estimar a distância relativa para B como teta = T3 [(T2 T1) + (T4 T3)] / 2 que reescrita torna-se teta = [(T2 T1) + (T3 T4)] / 2;... se o relógio de A é mais rápido, então teta < 0 o que sugere que A, em princípio, deva atrasar o relógio;... tal ocorrência não deve ser permitida pois pode causar sérios problemas, p.ex., quando um arquivo objeto compilado logo após o relógio mudar tem um marca de tempo anterior do arquivo fonte que por sua vez foi modificado um pouco antes do relógio mudar; solução mudanças como estas devem ser feitas gradualmente. e.g.,... considere a frequência de 100 ticks por segundo, ou seja, cada interrupção irá acrescentar 10 ms ao tempo por vez; Pg. 26/97

27 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio e.g.,... considere a frequência de 100 ticks por segundo, ou seja, cada interrupção irá acrescentar 10 ms ao tempo por vez;... se diminuirmos a frequência, a rotina de interrupção irá adicionar 9 ms a cada tick de relógio até que a correção seja feita;... de modo semelhante o relógio pode ser avançado adicionando 11 ms a cada interrupção ou tick de relógio, ao invés de efetuarmos saltos grandes de uma única vez. No caso do NTP, o protocolo estabelece um emparelhamento entre os servidores, ou seja, B irá também sondar A em relação ao tempo, assim, um desvio delta é também estimado; Pg. 27/97

28 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio No caso do NTP, o protocolo estabelece um emparelhamento entre os servidores, ou seja, B irá também sondar A em relação ao tempo contabilizado no mesmo, assim, além de teta, um desvio delta é estimado como delta = [(T2 T1 ) + (T4 T3] / 2;... após 08 medidas de pares teta e delta, podemos encontrar o menor delta como a melhor estimativa para o atraso entre os 02 servidores bem como o teta correspondente; Se aplicarmos NTP simetricamente em B, em princípio, irá permitir que B ajuste o seu relógio com o de A, mas se B é conhecido por ser mais preciso, então o ajuste não procede;... para resolver este problema o NTP estratifica os servidores de modo que um servidor stratum-1 mantém p.ex., um relógio atômico ou mesmo um relógio www receiver. Pg. 28/97

29 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio solução -... para resolver este problema o NTP estratifica os servidores de modo que um servidor stratum-1 mantém p.ex., um relógio atômico ou mesmo um relógio www receiver.... quando A contacta B, ele irá somente ajustar o seu tempo se o seu nível de stratum é maior que o stratum de B. Há importantes recursos sobre o NTP, muitos relacionados a erros de identificação e de ataques de segurança;... aspectos de implementação e descrição de detalhes da versão 4 (NTPv4) podem ser encontrados em Mills (2006). Pg. 29/97

30 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio Berkeley Algorithm -... servidor de relógio - time daemon solicita periodicamente a cada outro servidor de relógio que informe a sua sua medida de tempo;... tendo por base os dados coletados, calcula a média do tempo e, na sequência, informa aos servidores se os mesmos devem avançar ou atrasar seus relógios;... time daemon informa como ajustar os seus relógios. Obs.:... em muitos sistemas, é suficiente que todas as máquinas ou servidores de relógio concordem com o mesmo valor, ou seja, não é essencial que a medida reflita o valor real de tempo. Pg. 30/97

31 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio Fig. 6.7 daemon solicita a outros servidores de relógio que informem seus valores, para na sequência computar o novo valor. Pg. 31/97

32 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio Clock Synchronization -... servidores de relógio podem ser implantados de modo eficiente e rápido em sistemas distribuídos tradicionais, conferindo assim uma grande vantagem.... tais afirmações não são válidas em redes sem fio ou em redes de sensores onde recursos são limitados e multi rotas são caras, além da necessidade de economia de energia;... ou seja, tais observações levam ao projeto de diferentes algoritmos de sincronização de relógio para redes sem fio. Reference Broadcast Synchronization -... protocolo de sincronização de relógio um pouco diferente de outras propostas;... preocupa-se com a sincronização interna de relógios, ou seja, não tem por objetivo prover o relógio UTC para todos os nós; Pg. 32/97

33 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio... nesta abordagem, o remetente broadcast uma mensagem de referência para permitir que os receptores ajustem seus relógios;... em redes de sensores o tempo de propagação do sinal para outros nós pode ser considerado como constante, desde que o roteamento de múltiplas saltos não esteja presente. tempo de propagação -... medido a partir do instante em que a mensagem deixa a interface de rede do remetente, ou seja, 02 fontes de variação não mais governam o atraso de propagação: tempo gasto para construir a mensagem; tempo gasto para acessar a rede. Pg. 33/97

34 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio Fig. 6.8 Determinação usual de caminhos críticos em Redes Determinísticas e em Reference Broadcast Synchronization. Pg. 34/97

35 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio NTP medida do tempo é adicionada à mensagem antes de ser passada para a interface de rede em razão de fatores não determinísticos em redes sem fio;... mas com a sincronização por referência - Reference Broadcast Synchronization estes fatores são eliminados. Reference Broadcast Synchronization -... quando um nó emite uma mensagem de referência m, cada nó p simplesmente registra o tempo Tp,m em que m é recebida;... ignorando clock skew, 02 nós p e q podem trocar os seus valores de relógio para estimar o offset mútuo: Offset [ p, q] = Somatório ( Tp,k - Tq,k ) / M com k=1 até M onde M é o total de mensagens de referências enviadas. Pg. 35/97

36 6 Sincronização Sincronização de Relógio Algoritmo de Sincronização de Relógio... nó p irá conhecer o valor do relógio de q relativo ao seu próprio valor e calcular offsets bem como armazená-los, mas não terá que ajustar seu relógio economizando assim energia. Infelizmente, relógios podem sofrer desvios e, neste cenário, o cálculo da média dos offset não irá funcionar!?... ao invés de calcular a média dos valores, aplica-se a regressão linear para o cálculo do Offset como uma função: Offset[ p, q]( t ) = alfa * t + beta, onde as constantes alfa e beta são calculadas através dos pares (T p,k, Tq,k );... esta cálculo irá proporcionar um valor mais preciso do relógio corrente de q pelo nó p e vice-versa. Pg. 36/97

37 6 Sincronização Relógios Lógicos 6.2 Relógios Lógicos... discutimos que a sincronização de relógios está atrelada ao tempo real, mas basta ao nós acordarem o valor do tempo sem necessariamente assumir o valor do tempo real;... muitas vezes, o rastreamento dos eventos uns dos outros é o que importa, ou seja, estamos falando dos relógios lógicos. Lamport mostrou em 1978 que embora seja possível a sincronização de relógios, não é necessário que seja absoluta;... pois se 02 processos não tem interação, não é necessário que os seus relógios estejam sincronizados, uma vez que a falta de sincronização não irá causar problemas. Pg. 37/97

38 6 Sincronização Relógios Lógicos Relógio Lógico de Lamport... para sincronizar relógios lógicos, é necessário garantir a expressão happens-before, ou seja, a b - a happens before b significa que todos os processos concordam que o evento a ocorreu primeiro e somente depois o evento b ; 02 situações podem ser observadas: se a e b são 02 eventos no mesmo processo e a ocorre antes de b, então a cláusula a b é verdadeira; se a é o evento de uma mensagem enviada por um processo e b é o evento de uma mensagem recebida por um outro processo, então a b é também uma cláusula verdadeira. happens-before é transitiva, pois se a b e b c, então a c é uma cláusula verdadeira. Pg. 38/97

39 6 Sincronização Relógios Lógicos Relógio Lógico de Lamport happens-before é transitiva, pois se a b e b c, então a c é uma cláusula verdadeira;... se 02 eventos, x e y acontecem em diferentes processos que não trocam mensagens nem mesmo indiretamente, então x y não é verdade e nem mesmo y x é verdade;... podemos afirmar simplesmente que são eventos concorrentes, assim não é possível afirmar quando os eventos aconteceram ou qual evento dentre eles aconteceu primeiro.... precisamos medir a noção de tempo tal que para todo evento a podemos associar um valor C(a) com o qual todos os processos concordam, ou seja, se a b então C(a) C(b). Pg. 39/97

40 6 Sincronização Relógios Lógicos Relógio Lógico de Lamport Fig. 6.9 a. 03 processos, P1, P2 e P3, cada qual com o seu relógio que mede o tempo em diferentes frequências. Pg. 40/97

41 6 Sincronização Relógios Lógicos Relógio Lógico de Lamport Para preparar nossa discussão para Relógio de Vetor, vamos formular este problema com mais precisão, ou seja, ajuste do relógio em um dado servidor através do Algoritmo de Lamport.... é importante distinguir 03 camadas diferentes do software: camada de rede; camada de middleware e a camada de aplicação.... faz-se necessário possicionar em que momento e em que camada os ajustes de relógio são realizados (Fig. 6.10). Pg. 41/97

42 6 Sincronização Relógios Lógicos Relógio Lógico de Lamport Fig Possicionamento (ajustes) do Relógio Lógico de Lamport em Sistemas Distribuídos. Pg. 42/97

43 6 Sincronização Relógios Lógicos Relógio Lógico de Lamport Para implementar o Relógio Lógico de Lamport, cada processo P i mantém um contador local Ci, atualizados da seguinte forma: antes de executar um evento (e.g., envio de uma mensagem na rede, entrega de uma mensagem para a aplicação ou algum outro evento interno), Pi executa Ci Ci + 1; quando um processo Pi envia uma mensagem m para Pj, atribui-se o timestamp de m - ts(m) igual a Ci após executar o passo anterior; na recepção da mensagem m, processo Pj ajusta o seu contador como Cj max[ Cj, ts(m) ], após o qual executa o primeiro passo e, na sequência, entrega a mensagem para a aplicação. Obs.:... solução proposta deriva diretamente da relação/expressão happens before, ou seja, a b então C(a) C(b) Pg. 43/97

44 6 Sincronização Relógios Lógicos Relógio Lógico de Lamport Fig. 6.9 a. 03 processos, cada qual com o seu relógio que mede o tempo em diferentes frequências; b. correção dos relógios. Pg. 44/97

45 6 Sincronização Relógios Lógicos Relógio Lógico de Lamport Obs.:... em algumas situações, requisito adicional é desejável: 02 eventos não ocorrem exatamente no mesmo tempo;... para atender este requisito, podemos combinar o nro do processo no qual o evento ocorreu com a marca de tempo, p.ex., evento no tempo 40 no processo Pi será rotulado por 40.i ; Obs.:... atribuindo o tempo do evento C(a) C i(a) se a aconteceu no processo Pi no tempo Ci(a), teremos uma implementação distribuida do valor de tempo global. Pg. 45/97

46 6 Sincronização Relógios Lógicos Relógio de Vetores Relógio Lógico de Lamport estabelece que todos os eventos em um sistema distribuído são ordenados com a propriedade na qual se a aconteceu antes de b, então C(a) < C(b);... no entanto não podemos afirmar que se C(a) < C(b), então o evento a aconteceu antes do evento b?! e.g., considere as mensagens enviadas por 03 processos: Tsnd(mi ) - tempo no remetente no qual a mensagem mi foi enviada; Trcv(mi) - tempo no destinatário em que a mensagem mi foi recebida; para cada mensagem Tsnd(mi) < Trcv (mi) O que podemos concluir de Trcv(mi) < Tsnd(mj)? mi = m1 e mj = m3 ou mi = m1 e m j = m2 Pg. 46/97

47 6 Sincronização Relógios Lógicos Relógio de Vetores Fig Transmissão de mensagens concorrentes utilizando relógios lógicos não há a captura da causalidade; 1o Caso: mi = m1 e mj = m3 2o Caso: mi = m1 e mj = m2 Pg. 47/97

48 6 Sincronização Relógios Lógicos Relógio de Vetores Problema do Relógio Lógico de Lamport... não captura causalidade, o que pode ser contemplado nos Relógios de Vetores. Vector Clock - um relógio de vetor VC(a) atribuído a um evento a tem a propriedade de que se VC(a) < VC(b) para algum evento b, então o evento a precede o evento b.... são construídos permitindo que cada processo Pi mantenha o vetor VCi com as seguintes propriedades: VCi [ i ] é o nro. de eventos que ocorreram no processo P i, ou seja, é o relógio lógico no processo Pi ; Se VCi [ j ] = k então Pi sabe que k eventos aconteceram em Pj, ou seja, Pi conhece o tempo local de Pj. Pg. 48/97

49 6 Sincronização Relógios Lógicos Relógio de Vetores... primeira propriedade é mantida incrementando VCi[ i ] a cada ocorrência de um novo evento que acontece em Pi ;... segunda propriedade é mantida através de vetores de realimentação com mensagens que são enviadas: antes de executar um evento (e.g., envio de uma mensagem na rede, entrega de uma mensagem para a aplicação ou algum outro evento interno), Pi executa VCi [ i ] VCi [ i ] + 1; quando um processo Pi envia uma mensagem m para Pj, ele torna o ts(m) igual a VCi após ter executado o passo anterior; na recepção da mensagem m, processo Pj ajusta o seu vetor VCj [ k ] max[ VCj[ k ], ts(m)[ k ] ] para cada k, após o qual executa o primeiro passo e, na sequência, entrega a mensagem para a aplicação. Pg. 49/97

50 6 Sincronização Relógios Lógicos Relógio de Vetores Obs.:... se um evento a tem rótulo de tempo ts(a), então ts(a)[ i ] 1 denota o nro de eventos processados em P i que precedem a, como consequência:... quando Pj recebe uma mensagem de Pi com rótulo de tempo ts(m), ele sabe o nro de eventos que ocorreu em Pi que casualmente precederam o envio da mensagem m ;... Pj pode informar quantos eventos em outros processos aconteceram antes de Pi enviar a mensagem m, ou seja, timestamp ts(m) informa quantos eventos em outros processos precederam o envio de m. Pg. 50/97

51 6 Sincronização Relógios Lógicos Relógio de Vetores... ao utilizar relógio de vetor é possível garantir que uma mensagem seja entregue somente se todas as mensagens que a precederam forem também recebidas; causally-ordered multicasting - para este esquema, assume- se que as mensagens são repetidas para um grupo de processo;... se 02 mensagens não estão relacionadas uma com a outra, não é necessário considerar em que ordem serão entregues, ou seja, podem ser entregues em ordem diferente ou localizações. Suponha que Pj recebe uma mensagem m de Pi com rótulo ts(m), assim, a mensagem será entregue a aplicação quando as 02 condições forem satisfeitas: * ts(m)[ i ] = VCj [ i ] + 1 * ts(m)[ k ] <= VCj [ k ] para todo k <> i Pg. 51/97

52 6 Sincronização Relógios Lógicos Relógio de Vetores... primeira condição estabelece que m é a próxima mensagem que Pj está esperando de Pi ;... segunda condição estabelece que Pj tem conhecimento de todas as mensagens conhecidas por P i quando enviou m ; Obs.:... não é necessário que o processo P j atrase a entrega das suas próprias mensagens pelas condições estabelecidas. e.g., considere Po, P1 e P2 trocando mensagens entre si, onde P0 envia no tempo (1,0,0) mensagem m para P1 e P2; após receber a mensagem, P1 decide enviar m* para P 0 e P2, que chega antes da mensagem m (Fig. 6.13). Pg. 52/97

53 6 Sincronização Relógios Lógicos Relógio de Vetores Fig Garantindo a comunicação causal... neste ponto, P2 atrasa a entrega de m* até m ser recebida e entregue à camada de aplicação de P2. Pg. 53/97

54 6 Sincronização Relógios Lógicos Relógio de Vetores Ordered Message Delivery -... há uma controvérsia quanto ao suporte da ordenação de mensagens totally-ordered ou causally-ordered pela camada de comunicação de mensagens ou se as aplicações devem tratar a ordenação. Há 02 problemas ao contemplar a ordenação no middleware : 1o - como o middleware não pode dizer o que a mensagem contém, somente causalidade em potencial é capturada; e.g., 02 mensagens do mesmo remetente que são completamente independentes serão sempre marcadas como relacionadas, mas esta situação é muita restritiva e pode comprometer a eficiência; Pg. 54/97

55 6 Sincronização Relógios Lógicos Relógio de Vetores 2o - nem toda causalidade pode ser capturada. e.g., considere um quadro de boletim eletrônico compartilhado entre Alice e Bob que também eventualmente se comunicam por telefone além de se comunicarem pelo bulletin board ;... neste caso, a comunicação externa impede que o boletim eletrônico compartilhado capture a relação de causalidade. Em essência, aspectos de ordenação, podem ser adequadamente solucionados olhando-se para a aplicação na qual a comunicação está em curso - end-to-end argument. Pg. 55/97

56 6 Sincronização Exclusão Mútua 6.3 Exclusão Mútua concurrency e collaboration -... em sistemas distribuídos a concorrência e colaboração entre múltiplos processos é essencial... para coordenar a concorrência e colaboração entre os processos de modo coerente é necessário garantir aos processos o acesso aos recursos por exclusão mútua. Algoritmos de exclusão mútua em sistemas distribuídos podem ser divididos em 02 categorias: token-based solutions - exclusão mútua é alcançada pela passagem de uma mensagem especial entre os processos conhecida como token ; permission-based solutions - processo esperando para acessar um dado recurso primeiro requer a permissão para outro processo. Pg. 56/97

57 6 Sincronização Exclusão Mútua 6.3 Exclusão Mútua token-based solutions -... exclusão mútua é alcançada pela passagem de uma mensagem especial entre os processos conhecida como token - único em todo o sistema;... token é passado de processo para processo e, caso um processo não tenha interesse no acesso, ele simplesmente repassa para o próximo processo da lista.... algumas propriedades interessantes:... dependendo de como os processos são organizados, cada processo terá a chance de acessar o recurso, ou seja, evita-se starvation ;... deadlocks podem ser evitados, contribuindo para sua simplicidade; desvantagem -... se o token for perdido, um intrincado processo distribuído tem que ser disparado para garantir que um novo token seja criado e que acima de tudo seja único. Pg. 57/97

58 6 Sincronização Exclusão Mútua 6.3 Exclusão Mútua permission-based solutions -... o processo à espera de um dado recurso primeiro requer a permissão para outro processo.... há diferentes maneiras de conceder esta permissão que discutiremos nas próximas seções: eleição de um coordenador pelos pares que concede a permissão quando uma requisição de permissão é encaminhada; Pg. 58/97

59 6 Sincronização Exclusão Mútua Algoritmo Centralizado Abordagem mais rápida para garantir a exclusão mútua em sistemas distribuídos é simular como o problema seria resolvido em um sistema de processador único;... um processo é eleito como coordenador e tem a responsabilidade de gerenciar que processo pode utilizar que recurso;... quando uma concessão é concedida, o coordenador responde ao solicitante com uma mensagem de permissão. e.g., considere 03 processos que requisitam ao coordenador a permissão para utilizar um dado recurso objeto de concorrência entre os processos como representado na Fig Pg. 59/97

60 6 Sincronização Exclusão Mútua Algoritmo Centralizado Fig Para garantir a exclusão mútua em sistemas distribuídos o caminho mais direto é simular como o problema seria resolvido em um sistema de processador único. Pg. 60/97

61 6 Sincronização Exclusão Mútua Algoritmo Centralizado... como pode ser verificado, o algoritmo garante a exclusão mútua, pois a coordenação permite que somente um processo por vez acesse o recurso e na ordem que foram solicitados;... ou seja, nenhum processo espera indefinidamente para acessar o recurso - no starvation. Este esquema é fácil de implementar e requer apenas 03 mensagens pelo uso de cada recurso - request, grant e release, tornando-se assim atrativo para soluções práticas. Pg. 61/97

62 6 Sincronização Exclusão Mútua Algoritmo Centralizado Por outro lado tem como principal desvantagem o fato do coordenador ser um ponto central de falha o que compromete o sistema. e.g.,... quando um processo é bloqueado após uma requisição, não há como distinguir se o coordenador está inativo/finalizado ou se a permissão não foi concedida;... posto que em ambos os casos não há mensagem de retorno. conclusão benefícios advindos da simplicidade podem superar as potenciais desvantagens como ponto central de falha ou gargalo de desempenho em grandes sistemas. Pg. 62/97

63 6 Sincronização Exclusão Mútua Algoritmo Descentralizado essência cada recurso pode ser replicado n vezes, com cada réplica tendo o seu próprio coordenador responsável pelo controle de acesso pelos processos que concorrem pelos recursos;... quando um processo quer acessar um recurso, ele necessita de um nro majoritário de votos m > n/2 coordenadores;... assume-se que se um coordenador não concede acesso a um dado recurso, ele deve responder ao processo solicitante. análise... este esquema torna a solução centralizada menos vulnerável a falhas em razão de um único coordenador;... o problema é como se dá a recuperação da execução de um coordenador após uma falha ter ocorrido?! Pg. 63/97

64 6 Sincronização Exclusão Mútua Algoritmo Descentralizado Se a suposição é que quando um coordenador falha, ele se recupera rapidamente sem se lembrar dos votos que concedeu antes de ter sofrido a falha, ou seja, não guarda o estado uma possível consequência é a concessão de uma permissão já encaminhada a um processo após a sua recuperação. Seja p a probabilidade do coordenador reinicializar-se durante o intervalo de tempo delta t, assim, a probabilidade P[ k ] que k coordenadores de um total de m coordenadores reinicializem durante o mesmo intervalo de tempo é: P[ k ] = {m k} * pk * (1 p) m-k Pg. 64/97

65 6 Sincronização Exclusão Mútua Algoritmo Descentralizado Seja p a probabilidade do coordenador reinicializar-se durante o intervalo de tempo delta t, assim, a probabilidade P[ k ] que k coordenadores de um total de m coordenadores reinicializem durante o mesmo intervalo de tempo é: P[ k ] = {m k} * pk * (1 p) m-k... dado que ao menos 2*m n coordenadores necessitam reinicializar para violar a corretude do mecanismo de votação, a probabilidade que a violação ocorre é: somatório P[ k ] com k = 2*m n até n Pg. 65/97

66 6 Sincronização Exclusão Mútua Algoritmo Distribuído Para muitos, algoritmos corretos do ponto de vista da probabilidade não são suficientes, faz-se necessário algoritmos distribuídos determinísticos para garantir a mútua exclusão; idéia - quando um processo deseja acessar um recurso compartilhado, ele constroi uma mensagem contendo o nome do recurso, nro do processo e o tempo lógico corrente;... na sequência envia a mensagem para todos os outros processos, incluindo o próprio processo;... quando um processo recebe uma requisição de um outro processo, a ação depende do seu estado com respeito ao recurso. Obs.:... assume-se como premissa que a comunicação é confiável, ou seja, não há perda de mensagens. Pg. 66/97

67 6 Sincronização Exclusão Mútua Algoritmo Distribuído 03 diferentes casos são considerados:... se o receptor não está acessando o recurso e não deseja acessá-lo, o mesmo envia uma mensagem de Ok ao remetente;... se o receptor está acessando o recurso, ele simplesmente não responde, mas empilha a requisição do remetente; se o receptor deseja acessar o recurso mas ainda não o fez, ele compara o timestamp da mensagem que chegou com alguma mensagem que solicitou o recurso menor timestamp vence; se a mensagem recebida contém o menor timestamp, o receptor envia de volta uma mensagem de Ok; se a sua mensagem contempla o menor timestamp, o receptor empilha a requisição que recebeu e não envia resposta. Pg. 67/97

68 6 Sincronização Exclusão Mútua Algoritmo Distribuído... após enviar as requisições, um processo aguarda até que alguém conceda a permissão, de modo que tão logo a receba o processo vai em frente e utiliza o recurso;... ao final da região crítica, o processo envia uma mensagem de Ok a todos os processos na sua fila e na sequência remove-os. e.g., considere 03 processos P0, P1 e P2 onde P0 e P2 desejam um recurso compartilhado ao mesmo tempo, mas P0 tem o menor timestamp quando comparado ao timestamp de P2.... algoritmo funciona pois em caso de conflito, o menor timestamp vence e todos concordam com a ordenação das marcas de tempo, ou seja, timestamps. Pg. 68/97

69 6 Sincronização Exclusão Mútua Algoritmo Distribuído Fig processos P0 e P2 desejam um recurso compartilhado ao mesmo tempo, mas o P0 tem o menor timestamp. Ao final da utilização do recurso, P0 envia uma mensagem de Ok. Pg. 69/97

70 6 Sincronização Exclusão Mútua Algoritmo Distribuído... note que a situação poderia ter sido diferente se P 2 tivesse enviado mais cedo a requisição antes que P0 tivesse feito a própria solicitação, pois neste caso, teria concedido;... neste caso, P2 poderia notificar que tem acesso ao recurso no momento da requisição e, assim, não enviaria um reply. Como discutido anteriormente, a exclusão mútua é garantida sem deadlock e starvation e o nro de mensagens exigido por entrada é de 2*(n-1) onde n é o total de processos;... outro aspecto igualmente importante é que não temos um ponto único de falha como na abordagem centralizada;... na verdade, substituimos um único ponto de falha por n pontos de falha pois implica na não resposta às requisições!? Pg. 70/97

71 6 Sincronização Exclusão Mútua Algoritmo Distribuído... quando um processo não responde a uma requisição, este silêncio pode ser interpretado incorretamente como uma negação de permissão - denial of permission ;... que por sua vez irá bloquear todas as tentativas subsequentes de todos os processos para entrar nas regiões críticas. Considerando que a probabilidade de um dos n processos falhar seja ao menos n vezes maior que a falha de um coordenador (algoritmo centralizado), qual a essência da proposta?... substituir um algoritmo pobre por um que é n vezes pior além de requerer maior tráfego na rede de comunicação.... que modificações/alterações incluir para melhorar a proposta? Pg. 71/97

72 6 Sincronização Exclusão Mútua Algoritmo Distribuído... uma possibilidade é o receptor responder com reply negando ou concedendo permissão a toda e qualquer requisição que chega, mas ainda assim problemas persistem;... no caso de uma requisição ou resposta se perderem, o remetente finaliza ou continua tentando até receber uma resposta ou então o remetente conclui que o receptor está morto;... no caso da requisição ser negada, após inúmeras tentativas, o remetente será bloqueado a espera da subsequente mensagem de Ok situação na qual poderá acessar a região crítica. Pg. 72/97

73 6 Sincronização Exclusão Mútua Algoritmo Distribuído Outro problema é a necessidade de se utilizar primitivas de comunicação multicast, senão, cada processo precisa manter uma lista de membros do grupos;... tal lista de membros implicará em operações para entrada e saída de membros, ou seja, funciona para pequenos grupos. Finalmente, em algoritmos distribuídos, todos os processos são envolvidos em todas as decisões relacionadas ao acesso do recurso compartilhado, assim surge uma questão se considerarmos que um processo seja incapaz de tratar uma carga, forçar todos os processos a executarem a mesma coisa em paralelo não irá ajudar muito. Pg. 73/97

74 6 Sincronização Exclusão Mútua Algoritmo Token Ring Uma abordagem completamente diferente para garantir a exclusão mútua em um sistema distribuído, utiliza-se do modo determinístico para garantir que cada processo acesse um recurso objeto de concorrência e/ou compartilhamento;... em essência, uma mensagem especial token circula entre os pares de processos garantindo a cada um em um dado momento a chance de acessar um recurso objeto da concorrrência;... esta ordenação inerente ou não pode ser obtida com topologia de barramento ou de anel lógico dos processos que concorrem. Pg. 74/97

75 6 Sincronização Exclusão Mútua Algoritmo Token Ring Fig a. Grupo não ordenado de processos em rede. b. Anel lógico de processos construído em software. Pg. 75/97

76 6 Sincronização Exclusão Mútua Algoritmo Token Ring... quando o anel é inicializado, concede-se ao P0 o token que pode circular no anel de processo a processo, ou seja, de P k a Pk+1 com mensagens ponto a ponto;... quando um processo adquire um token de um vizinho, ele verifica se quer acessar um recurso compartilhado e, se sim, acessa o recurso compartilhado e ao final o libera;... na sequência repassa o token para o vizinho no anel lógico;... se o processo não tem interesse no acesso do recurso, ele simplesmente repassa o token para o anel;... se nenhum processo requer acesso ao recurso, o token simplesmente circula no anel em alta velocidade. Pg. 76/97

77 6 Sincronização Exclusão Mútua Algoritmo Token Ring Como pode ser observado, somente um processo por vez tem a posse do token, assim somente um processo pode obter o recurso objeto da concorrência e/ou compartilhamento;... necessário garantir a existência de um único token.... starvation não está presente, pois o token circula entre os processos em uma ordem previamente definida;... no pior caso quando um processo deseja acesso o recurso, o mesmo terá apenas que esperar pela passagem do token. Pg. 77/97

78 6 Sincronização Exclusão Mútua Algoritmo Token Ring Por outro lado, este algoritmo também apresenta problemas, como p.ex., perda do token (raro, mas pode acontecer);... se acontecer, faz-se necessário a geração de um novo token e, adicionalmente, a aparição do token não é determinística, ou seja, não há limites de quanto em quanto tempo aparecerá; e.g.,... fato do token não ter aparecido por uma hora não significa que o mesmo foi perdido, muito provavelmente alguém está utilizando e irá liberá-lo em algum momento.... em caso de pane no processo, a recuperação é mais fácil que em outros casos pois o token pode ser repassado para o próximo processo da lista ou o processo é recuperado. Pg. 78/97

79 6 Sincronização Exclusão Mútua Comparação dos 04 Algoritmos Para comparação dos 04 algoritmos anteriormente discutidos, 03 propriedades chaves são analisadas (Fig. 6.17): a. nro de mensagens por um processo para acessar e liberar o recurso; b. atraso antes do acesso ao recurso; c. problemas associados com cada um dos algoritmos. Pg. 79/97

80 6 Sincronização Exclusão Mútua Comparação dos 04 Algoritmos Como pode ser constatado, o Algoritmo Centralizado é o mais simples e o mais eficiente por requer apenas 03 mensagens para solicitar o acesso bem como liberar um recurso. Algoritmo Distribuído requer n-1 mensagens, uma para cada um dos demais processos e um adicional de n-1 mensagens de permissão de um total de 2*(n-1) mensagens;... premissa: apenas comunicação ponto a ponto é utilizada. Algoritmo Token Ring teremos a média de uma passagem de token por entrada e saída por região crítica;... por outro lado o token pode circular por horas sem ninguém se interessar por ele e, neste caso, o nro de mensagens por entrada na região crítica não está limitado. Pg. 80/97

81 6 Sincronização Exclusão Mútua Comparação dos 04 Algoritmos... diferença semelhante está presente em relação ao tempo decorrido entre a sinalização do processo para entrar na região crítica até de fato obter permissão para acessá-la;... tempo de espera torna-se um fator dominante quando recursos são utilizados por longos períodos de tempo. Por fim, todos os algoritmos sofrem pelo evento de acidentes crashes com exceção do algoritmo descentralizado;... neste caso, medidas especiais e complexidade adicional devem ser introduzidas para evitar que um acidente coloque todo o sistema em risco.... irônico perceber que o algoritmo distribuído seja tão sensível a acidentes quando comparado com o algoritmo centralizado.!!! Pg. 81/97

82 6 Sincronização Algoritmos de Eleição 6.4 Algoritmos de Eleição Muitos sistemas distribuídos exigem que um processo atue como coordenador, iniciador ou algo que realize um papel especial;... geralmente o que importa não é a responsabilidade em si, mas que algum processo necessita realizá-la. Em geral, algoritmos de eleição dedicam-se a localizar o processo com o maior nro de identificação para na sequência designá-lo como coordenador ou iniciador;... os algoritmos diferem no modo que localizam o coordenador. Pg. 82/97

83 6 Sincronização Algoritmos de Eleição 6.4 Algoritmos de Eleição premissa cada processo é identificado por um nro. único, p.ex., endereço de rede se tivermos um processo por máquina;... todo processo conhece o nro. único que identifica cada um dos demais processos do sistema. objetivo garantir que uma vez iniciada a eleição, a conclusão virá com a indicação do coordenador através da concordância de todos os processos do sistema. Pg. 83/97

84 6 Sincronização Algoritmos de Eleição Algoritmos Tradicionais de Eleição Bully Algorithm -... projetado por Garcia-Molina 1982, inicia-se quando um processo percebe que o coordenador não mais responde às requisições, neste caso inicia-se uma eleição: P envia uma mensagem ELECTION para todos os processos cujos identificadores sejam maiores que o seu identificador; se nenhum processo que recebeu a mensagem responde, P vence a eleição e torna-se o coordenador; se um processo dentre aqueles que receberam a mensagem responde, o mesmo assume o controle e P é finalizado. Na sequência, anuncia a vitória enviando a todos os processos que a partir daquele momento é o novo coordenador. Pg. 84/97

85 6 Sincronização Algoritmos de Eleição Algoritmos Tradicionais de Eleição Fig a. P4 aguarda por uma eleição; b. P5 e P6 respondem, pedindo ao P4 que pare; c. P5 e P6 mantém uma eleição. Pg. 85/97

86 6 Sincronização Algoritmos de Eleição Algoritmos Tradicionais de Eleição Fig Bully Algorithm: d. P6 solicita que P5 pare; e. P6 vence e informa a todos o novo coordenador. Pg. 86/97

87 6 Sincronização Algoritmos de Eleição Algoritmos Tradicionais de Eleição Um outro algoritmo de eleição tem por base o anel, sem no entanto utilizar o token como mensagem especial;... assume-se que os processos estão fisicamente ou logicamente ordenados, de modo que cada processo conheça o seu sucessor.... quando um processo percebe que o coordenador não está respondendo, ele constroi uma mensagem ELECTION contendo o número de processo e envia para o seu sucessor;... se o sucessor não responder, o remetente procura pelo próximo membro no anel até encontrar um processo; Pg. 87/97

88 6 Sincronização Algoritmos de Eleição Algoritmos Tradicionais de Eleição... se a mensagem voltar ao processo que iniciou, o processo reconhece o evento de receber uma mensagem contendo o seu próprio número de processo;... neste ponto, a mensagem muda de tipo para COORDINATOR e circula mais uma vez, agora para informar a todos quem é o coordenador e quais os membros do anel;... uma vez que a mensagem circule todo o anel, o remetente a remove e os processos iniciam seus trabalhos. Pg. 88/97

89 6 Sincronização Algoritmos de Eleição Algoritmos Tradicionais de Eleição Fig Algoritmo de Eleição: P2 e P5 descobrem simultaneamente que P7 (coordenador) foi finalizado. Cada qual controi uma mensagem ELECTION e inicia a sua circulação pelo anel. Pg. 89/97

90 6 Sincronização Algoritmos de Eleição Algoritmos Tradicionais de Eleição... eventualmente ambas as mensagens circulam pelo anel e são convertidas para mensagens COORDINATOR. Quando ambas percorrerem o anel, ambas as mensagens serão removidas. Pg. 90/97

91 6 Sincronização Algoritmos de Eleição Eleição em Ambientes Wireless Algoritmos de Eleição tradicionais são geralmente baseados na suposição que não são realísticos no ambiente sem fio;... estas suposições são falsas em muitos ambientes sem fio, especialmente nas redes móveis ad hoc. essência para eleger um lider, qualquer nó na rede, chamado de nó fonte pode iniciar uma eleição enviando uma mensagem ELECTION para o seu vizinho imediato;... quando um nó recebe uma mensagem ELECTION pela primeira vez, este nó designa o remetente como o seu pai;... na sequência envia a mensagem ELECTION para todos os vizinhos imediatos, exceto para o nó pai;... ao final cada nó reporta ao nó pai o nó com maior capacidade. Pg. 91/97

92 6 Sincronização Algoritmos de Eleição Eleição em Ambientes Wireless Fig Algoritmo de Eleição em Rede sem Fio: Nó a inicia a eleição enviando para b e j uma mensagem ELECTION. Pg. 92/97

Sistemas Distribuídos Capítulo 6 - Aula 12

Sistemas Distribuídos Capítulo 6 - Aula 12 Sistemas Distribuídos Capítulo 6 - Aula 12 Aula Passada Relógios Lógicos Relógios de Lamport Relógios Vetoriais Aula de hoje Exclusão Mútua Algoritmos de Eleição 1 Exclusão Mútua - Questão fundamental

Leia mais

Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua

Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua Sincronização Roteiro Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua Introdução A comunicação entre processos é importante, mas não é só isso que importa; Uma

Leia mais

Sincronização em Sistemas Distribuídos

Sincronização em Sistemas Distribuídos Sincronização em Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Sincronização Como as regiões críticas são implementadas em um SD? Como

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Exclusão Mútua Gustavo Reis gustavo.reis@ifsudestemg.edu.br - Questão fundamental em SDs Concorrência e colaboração entre vários processos Processos vão precisar acessar simultaneamente

Leia mais

Sistemas Distribuídos. Capítulo 6 - Aula 10

Sistemas Distribuídos. Capítulo 6 - Aula 10 Sistemas Distribuídos Aula Passada Capítulo 6 - Aula 10 Nomeação estruturada Implementação de um espaço de nomes Implementação de resolução de nomes Nomeação baseada em atributo Introdução ao problema

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Sincronização Slide 7 Nielsen C. Damasceno Introdução Utilizando Sistemas Distribuídos, uma grande dificuldade que temos é como garantir o acesso exclusivo a um recurso compartilhado,

Leia mais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos Sistemas Distribuídos Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Curso de Engenharia de Computação UCDB Setembro/2003 Tópicos Sincronização em Sistemas Distribuídos Sincronização de Relógio Estados Globais

Leia mais

Sincronização de Relógios e Relógios Lógicos. Histórico da comunicação. Tempo Global. Mecanismos de ordenação total

Sincronização de Relógios e Relógios Lógicos. Histórico da comunicação. Tempo Global. Mecanismos de ordenação total WTF : Computação mini-curso Distribuída LCMI/DAS/CTC/UFSC canismos de ordenação total Sincronização de Relógios e Relógios Lógicos Prof. Lau Cheuk Lung E-mail: lau.lung@inf.ufsc.br Departamento de Informática

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Exclusão Mútua Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 11.2 pág. 325-329 Conteúdo Algoritmo centralizado Algoritmo distribuído (Algoritmo

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos 2016.1 PROF. MARCIAL PORTO FERNANDEZ MARCIAL@LARCES.UECE.BR PROF. ANDRÉ RIBEIRO CARDOSO ANDREC@LARCES.UECE.BR 1 4. Sincronização em Sistemas Distribuídos 2 Sumário Sincronização de

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Consistência Causal(3) Neste exemplo temos uma sequência de eventos permitida quando o depósito é consistente por causalidade, mas proibida quando

Leia mais

Sistemas Distribuídos. 7 Coordenação e Acordo. Coordenação e Acordo. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Sistemas Distribuídos. 7 Coordenação e Acordo. Coordenação e Acordo. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Sistemas Distribuídos 7 Coordenação e Acordo n Coordenação e Acordo Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Exclusão Mútua Evitar interferência entre um conjunto de processos e garantir a

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Sincronização de Relógios Físicos Departamento de Informática, UFMA Graduação em Ciência da Computação Francisco José da Silva e Silva 1 Serviços de Tempo Em sistemas centralizados,

Leia mais

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1 Exclusão Mútua Distribuída Algoritmos para eleição de um coordenador ou líder 1 Há situações em que os processos de um sistema distribuído necessitam de coordenar as suas ações: - quando há recursos partilhados,

Leia mais

Sincronização de relógios

Sincronização de relógios Sincronização de relógios STD29006 Engenharia de Telecomunicações Prof. Emerson Ribeiro de Mello http://docente.ifsc.edu.br/mello/std 31 DE OUTUBRO DE 2018 Relógios Físicos Problema 1 Quando acordo 1/22

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Sincronização de relógios Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello 25 de novembro

Leia mais

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado Relógio Lógico Algoritmo de Lamport Objetivo: Sincronização de clocks lógicos Os tempos associados aos eventos não são necessariamente próximos ao tempo real. Os processos não precisam estar de acordo

Leia mais

Algoritmos Distribuídos (deadlock) ALGORITMOS DISTRIBUÍDOS Deadlock. Algoritmos Distribuídos (deadlock) Algoritmos Distribuídos (deadlock)

Algoritmos Distribuídos (deadlock) ALGORITMOS DISTRIBUÍDOS Deadlock. Algoritmos Distribuídos (deadlock) Algoritmos Distribuídos (deadlock) Um deadlock é causado pela situação onde um conjunto de processos está bloqueado permanentemente, i.e., não conseguem prosseguir a execução, esperando um evento que somente outro processo do conjunto pode

Leia mais

Faculdade de Informática - PUCRS. Sistemas Distribuídos 2. Faculdade de Informática - PUCRS. Sistemas Distribuídos 4. Faculdade de Informática - PUCRS

Faculdade de Informática - PUCRS. Sistemas Distribuídos 2. Faculdade de Informática - PUCRS. Sistemas Distribuídos 4. Faculdade de Informática - PUCRS Algoritmos Distribuídos Processos em um sistema distribuído geralmente buscam atingir cooperação e para tanto utilizam mecanismos de sincronização para que esta cooperação seja realizada de maneira correta.

Leia mais

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo Modelos Fundamentais de um SD Modelo de Falhas/Avarias Modelo de Interação ou Sincronismo Modelo de Segurança 1 Recordando. Modelo de Avarias: Caracteriza o sistema em termos das falhas/avarias, i.e.,

Leia mais

Sistemas Distribuídos Aula 13

Sistemas Distribuídos Aula 13 Sistemas Distribuídos Aula 13 Aula passada Modelo computação distribuída RPC Marshalling e stubs Semântica operacional RMI Aula de hoje Relógios Hora de referência Sincronizando relógios Algoritmo de Berkeley

Leia mais

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1 Exclusão Mútua Distribuída Algoritmos para eleição de um coordenador ou líder 1 Suponhamos N processos, pi, i=1,2,,n que não partilham variáveis, mas que partilham algum recurso partilhado ao qual devem

Leia mais

Sistemas Distribuídos Exclusão Mútua. Edeyson Andrade Gomes

Sistemas Distribuídos Exclusão Mútua. Edeyson Andrade Gomes Sistemas Distribuídos Exclusão Mútua Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Introdução Coordenação e Acordo Suposição de Falhas Exclusão Mútua Algoritmos Centralizado Distribuído Anel

Leia mais

Sistemas Distribuídos Aula 17

Sistemas Distribuídos Aula 17 Sistemas Distribuídos Aula 17 Aula passada Garantindo ordenação total Relógio de vetores Propriedades Aula de hoje Exclusão mútua Algoritmo centralizado Algoritmo de Lamport Token Ring Exemplo Bancário

Leia mais

Sincronização e Concorrência

Sincronização e Concorrência Tópicos da Aula Sincronização e Concorrência Sincronização sincronização interna sincronização externa sincronização de relógio métodos de sincronização Cristian Berkeley tempo lógico Controle de Concorrência

Leia mais

Tempos e Estados Globais. ECO036 - Sistemas Paralelos e Distribuídos

Tempos e Estados Globais. ECO036 - Sistemas Paralelos e Distribuídos Tempos e Estados Globais ECO036 - Sistemas Paralelos e Distribuídos Tópicos Abordados - Tempo - Relógios e Ordenação de eventos. - Relação Happened- Before - Relógios Lógicos - Vetor de Relógios - Relógios

Leia mais

Sistemas Distribuídos: Conceitos e Projeto

Sistemas Distribuídos: Conceitos e Projeto Sistemas Distribuídos: Conceitos e Projeto Relógios Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 11 de junho

Leia mais

Ordenação. Relógios lógicos

Ordenação. Relógios lógicos Ordenação Relógios lógicos 1 Índice Ordenação FIFO Ordenação Causal Ordenação Total Algoritmos Tempo Lógico Relógios Lógicos Relógios Vectoriais 2 Introdução Ordenação Objectivo Determinar à posteriori

Leia mais

2) Em relação aos algoritmos de sincronização de relógios:

2) Em relação aos algoritmos de sincronização de relógios: Curso: REDES Disciplina: SISTEMAS DISTRIBUÍDOS Professor (a): MARCELA SANTOS Data da Aplicação: 23 de maio de 2010 Teste referente à AV2 Nota: Visto do Professor (a): Nome: 1) Sistemas monoprocessados

Leia mais

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo Modelos Fundamentais de um SD Modelo de Falhas Modelo de Interação ou Sincronismo Modelo de Segurança 1 Modelo de Avarias: Caracteriza o sistema em termos das falhas/avarias, i.e., dos desvios em relação

Leia mais

Sistemas Distribuídos Sincronização de Relógios. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos Sincronização de Relógios. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos Sincronização de Relógios Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Definições Clock Físico Cristian Berkeley Clock Lógico Lamport 2 Definições Clock Físico Dia Solar

Leia mais

Introdução Sincronização Interna Sincronização Externa. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Introdução Sincronização Interna Sincronização Externa. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR n n n Introdução Sincronização Interna Sincronização Externa Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Problema: ausência de um relógio global em SDs; Em um sistema com n computadores,

Leia mais

Redes de Computadores. Prof. MSc André Y. Kusumoto

Redes de Computadores. Prof. MSc André Y. Kusumoto Redes de Computadores Prof. MSc André Y. Kusumoto andrekusumoto.unip@gmail.com Nível de Rede Comunicação entre dispositivos de uma mesma rede ocorrem de forma direta. Quando a origem e o destino estão

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sincronização - Relógios Lógicos Capítulo 6 Agenda Relógios Lógicos Relógios de Lamport Relógios Vetoriais Algumas definições... Um sistema distribuído

Leia mais

Algoritmos Distribuídos (exclusão mútua) ALGORITMOS DISTRIBUÍDOS Exclusão mútua. Algoritmos Distribuídos (exclusão mútua)

Algoritmos Distribuídos (exclusão mútua) ALGORITMOS DISTRIBUÍDOS Exclusão mútua. Algoritmos Distribuídos (exclusão mútua) ALGORITMOS DISTRIBUÍDOS Exclusão mútua Problema: alguns recursos não podem ser usados simultaneamente por diversos processos (ex.: arquivos) Exclusividade de acesso deve ser garantida pelo sistema esta

Leia mais

Sincronização em Sistemas Distribuídos

Sincronização em Sistemas Distribuídos Sincronização em Sistemas Distribuídos problemas clássicos ordenação de mensagens exclusão mútua distribuída eleição de líder... transações ordenação de acontecimentos relógio físico dificuldades relógio

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Deadlocks Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 11.5 pág. 340-344 2 Conteúdo Detecção de deadlock distribuído Detecção centralizada

Leia mais

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA: Sistemas Distribuídos Prof. Msc. André Luiz Nasserala Pires nassserala@gmail.com! EMENTA: Plano de Curso! Conceitos. Comunicação entre processos (IPC). Programação de aplicações cliente- servidor. Sincronização

Leia mais

Relógios Lógicos. Sumário. November 27, Relação Happened-Before. Relógios de Lamport. Relógios Vectoriais

Relógios Lógicos. Sumário. November 27, Relação Happened-Before. Relógios de Lamport. Relógios Vectoriais Relógios Lógicos November 27, 29 Sumário Relação Happened-Before Relógios de Lamport Relógios Vectoriais Eventos Nem sempre é necessário ter relógios sincronizados: Muitas vezes, é suficiente estabelecer

Leia mais

Redes de Computadores. Prof. André Y. Kusumoto

Redes de Computadores. Prof. André Y. Kusumoto Redes de Computadores Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 2/16 Nível de Rede Comunicação entre dispositivos de uma mesma rede ocorrem de forma direta. Quando a origem e o destino estão

Leia mais

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

Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol. Tempo e Relógios Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol Relógios Lógicos 1 O papel do tempo Crucial na ordenação de eventos Tempo Real? - Função

Leia mais

Sistemas Distribuídos Capítulo 6 - Aula 10

Sistemas Distribuídos Capítulo 6 - Aula 10 Sistemas Distribuídos Capítulo 6 - Aula 10 Aula de hoje Introdução ao problema de sincronização Relógios Físicos Algoritmos de Sincronização Aula de hoje Relógios Lógicos Relógios de Lamport Relógios Vetoriais

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Motivação Aplicações Motivam Possibilita Engenharia Motivação! Aplicações cada vez mais complexas! Qual a técnica mais comum para redução de complexidade? " Modularização Dividir

Leia mais

Sincronização e Comunicação entre Processos

Sincronização e Comunicação entre Processos Sincronização e Comunicação entre Processos Monitores/Semáforos Semáforos Mecanismos de sincronização nãoestruturados; Exige do desenvolvedor bastante cuidado, pois qualquer engano pode levar a problemas.

Leia mais

Sistemas Distribuídos Capítulo 8 - Aula 14

Sistemas Distribuídos Capítulo 8 - Aula 14 Sistemas Distribuídos Capítulo 8 - Aula 14 Aula Passada Tolerância a Falhas Conceitos básicos Modelos de falha Redundância Resiliência de Processo Aula de hoje Comunicação Confiável Cliente-Servidor Comunicação

Leia mais

Introdução aos Sistemas Distribuídos

Introdução aos Sistemas Distribuídos Introdução aos Sistemas Distribuídos Prof. Leonardo Barreto Campos http://sites.google.com/sitew/leonardobcampos 1/29 Sumário Ementa; Bibliografia Calendário Site Introdução Características http://sites.google.com/sitew/leonardobcampos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação em Grupo abril de 2017 Grupos em Aplicações Distribuídas Primitiva de comunicação em grupo um processo envia uma mensagem para um grupo de processos e todos os destinatários

Leia mais

Sistemas Distribuídos Aula 15

Sistemas Distribuídos Aula 15 Sistemas Distribuídos Aula 15 Aula passada Relacionando eventos Relógios lógicos Algoritmo de Lamport Propriedades Aula de hoje Limitação de Lamport Relógio de vetores Propriedades Garantindo ordenação

Leia mais

PADI. Tempo em Sistemas Distribuídos PJPF, LAV INESC-ID/IST

PADI. Tempo em Sistemas Distribuídos PJPF, LAV INESC-ID/IST PADI Tempo em Sistemas Distribuídos 2005-14 PJPF, LAV INESC-ID/IST 1 Índice Introdução Relógios, eventos, estados de processos Sincronização de relógios físicos Tempo lógico Relógios lógicos Relógios vectoriais

Leia mais

Sincronização. Fernando Silva DCC-FCUP. Fernando Silva (DCC-FCUP) Sincronização 1 / 45

Sincronização. Fernando Silva DCC-FCUP. Fernando Silva (DCC-FCUP) Sincronização 1 / 45 Sincronização Fernando Silva DCC-FCUP Fernando Silva (DCC-FCUP) Sincronização 1 / 45 Agenda Slides baseados nos slides de Maarten van Steen e no cap. 6 do seu livro com Andrew Tanenbaum. Fernando Silva

Leia mais

Modelos Fundamentais. Introdução. Interação. Falhas. Segurança. Prof. Adriano Fiorese

Modelos Fundamentais. Introdução. Interação. Falhas. Segurança. Prof. Adriano Fiorese Modelos Fundamentais Introdução Interação Falhas Segurança 1 Introdução Como entender/classificar o comportamento de um sistema: Quais são as principais entidades do sistema? Como elas interagem? Quais

Leia mais

SINCRONIZAÇÃO ATRAVÉS DO CLOCK

SINCRONIZAÇÃO ATRAVÉS DO CLOCK SINCRONIZAÇÃO ATRAVÉS DO CLOCK _ NOTAS DE AULA _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP Em geral, os algoritmos distribuídos têm as seguintes propriedades 1) As informações relevantes estão espalhadas

Leia mais

Características de Sistemas Distribuídos

Características de Sistemas Distribuídos Características de Sistemas Distribuídos Carlos Ferraz cagf@cin.ufpe.br 2002-2003 Carlos A. G. Ferraz 2 Tópicos O conceito de Sistemas Distribuídos Infra-estrutura básica Exemplos Vantagens e desvantagens

Leia mais

Sincronização em Sistemas Distribuídos

Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos 2 Roteiro Sincronização através do clock Relógios Lógicos Solução de Lamport (1978, 1990) Relógios Físicos Algoritmo de Cristian Algoritmo de Berkeley 3 Sincronização

Leia mais

Sistemas Distribuídos Capítulo 8 - Aula 13

Sistemas Distribuídos Capítulo 8 - Aula 13 Sistemas Distribuídos Capítulo 8 - Aula 13 Aula de hoje Aula Passada Exclusão Mútua Algoritmos de Eleição Tolerância a Falhas Conceitos básicos Modelos de falha Redundância Resiliência de Processo 1 Tolerância

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar - Aula 3-1. REVISÃO SOBRE CONCEITOS FUNDAMENTAIS DE SISTEMAS DISTRIBUÍDOS Na segunda parte abordamos o tema tolerância a falhas, assunto este muito relacionado a redes de computadores, mas que nos mostra

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sincronização Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 995 Seção. pág. 36-325 2 Conteúdo Relógios lógicos Algoritmo de Lamport Relógios físicos Algoritmos para sincronização

Leia mais

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Sistema Operacional. Prof. Leonardo Barreto Campos.   1/30 Sistema Operacional Prof. Leonardo Barreto Campos 1/30 Sumário Introdução Middleware e SO de Rede SO de Rede Processos e Threads Leitura Complementar Bibliografia 2/30 Introdução A tarefa de qualquer sistema

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Capítulo 8 Introdução à replicação e consistência Material de suporte às aulas de Sistemas Distribuídos Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras

Leia mais

Ordenação. Sistemas Distribuídos e Tolerância a Falhas. Universidade da Beira Interior 07/08

Ordenação. Sistemas Distribuídos e Tolerância a Falhas. Universidade da Beira Interior 07/08 Ordenação Sistemas Distribuídos e Tolerância a Falhas Universidade da Beira Interior 07/08 Benjamim Marques M1440 Daniel Félix M1441 João Duarte a14951 Índice Introdução Problema FIFO Ordenação Causal

Leia mais

O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho

O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho Ciência da Computação Arq. e Org. de Computadores Avaliando e Compreendendo o Desempenho O Que Veremos Avaliando e compreendendo o desempenho: Introdução Definindo desempenho Medindo o desempenho e seus

Leia mais

Sistemas Distribuídos Aula 16

Sistemas Distribuídos Aula 16 Sistemas Distribuídos Aula 16 Aula passada Relacionando eventos Relógios lógicos Algoritmo de Lamport Propriedades Aula de hoje Limitação de Lamport Relógio de vetores Propriedades Garantindo ordenação

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas Transação e Controle de Concorrência Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características

Leia mais

Sistemas Distribuídos Aula 10

Sistemas Distribuídos Aula 10 Sistemas Distribuídos Aula 10 Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Sincronização Comunicação

Leia mais

AULA ANTERIOR: MODELOS FUNDAMENTAIS

AULA ANTERIOR: MODELOS FUNDAMENTAIS AULA ANTERIOR: MODELOS FUNDAMENTAIS Modelos fundamentais de um sistema distribuído Permitem estabelecer quais as premissas existentes a respeito de aspetos chave. Permitem avaliar de forma objetiva as

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Modelo de Interação (Clocks e Eventos) Em SDs é difícil estabelecer limites de tempo sobre o tempo tomado para execução de processos,

Leia mais

Sincronização de Relógios

Sincronização de Relógios Sistemas de Tempo Real: Sincronização de Relógios Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC romulo@das.ufsc.br http://www.das.ufsc.br/~romulo 1 Sincronização de Relógios Motivação

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Sincronização Prof. Marcelo de Paiva Guimarães 1 Comunicação de Grupo Grupo É uma coleção de processos que agem juntos em um sistema, de tal forma que quando uma mensagem

Leia mais

Parte I Multiprocessamento

Parte I Multiprocessamento Sistemas Operacionais I Estrutura dos SO Prof. Gregorio Perez gregorio@uninove.br 2004 Parte I Multiprocessamento Roteiro 1 Multiprocessadores em Sistemas Fortemente Acoplados 1.1 1.2 1.3 Processamento

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Capítulo 7 - Tempo e ordenação de eventos Material de suporte às aulas de Sistemas Distribuídos Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A estrutura da apresentação é semelhante e utiliza

Leia mais

Sincronização em Sistemas Distribuídos

Sincronização em Sistemas Distribuídos Sincronização em Sistemas Distribuídos Prof. Raul Ceretta Nunes Curso de Ciência da Computação ELC1018 - Sistemas Distribuídos 1 Sincronização em SD baseada no tempo real (absoluto) baseada na ordem relativa

Leia mais

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos Sistemas de arquivos distribuídos ECO036 - Sistemas Paralelos e Distribuídos Sistemas de arquivos distribuídos - Daniel Nogueira 20938 - Felipe Castro Simões 21525 Sumário 1. Introdução 2. Sistemas de

Leia mais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos Sistemas Distribuídos Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Curso de Engenharia de Computação UCDB Setembro/2003 Tópicos Sincronização em Sistemas Distribuídos Exclusão Mútua Transações Distribuídas

Leia mais

SSC546 -Avaliação de Desempenho de Sistemas

SSC546 -Avaliação de Desempenho de Sistemas Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC546 -Avaliação de Desempenho de Sistemas Parte 1 -Aula 2 Sarita Mazzini Bruschi Material

Leia mais

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S Explicitar aos alunos os modelos de entrada e saída em um computador e quais barramentos se aplicam a cada componente: memória,

Leia mais

Vamos fazer um pequeno experimento

Vamos fazer um pequeno experimento 1 Vamos fazer um pequeno experimento Dividam-se em dois grupos: Mestre Escravo Projeto de Sistemas Distribuídos Comunicação entre Processos Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com

Leia mais

MC714 - Sistemas Distribuídos. Leandro Villas

MC714 - Sistemas Distribuídos. Leandro Villas MC714 - Sistemas Distribuídos Aula de Hoje Aula Passada Relógios Lógicos Relógios de Lamport Relógios Vetoriais Aula de Hoje Exclusão Mútua Algoritmos de Eleição Exclusão mútua Questão fundamental em SDs

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Consistência e Replicação Capítulo 7 Agenda Distribuição de Conteúdo Estado versus operações Protocolos de recuperação de atualizações versus protocolos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Definição Sistema Distribuído é aquele onde os componentes de software e hardware localizados em redes de computadores comunicam-se e coordenam suas ações apenas por passagem de mensagens.

Leia mais

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

Sincronização. Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol Sincronização Tempo e Relógios Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol 1 Caso mais simples: Sincronização interna entre dois processos num sistema

Leia mais

Deadlock. Um problema de concorrência. Parte dos slides: Sistemas Operacionais Modernos 2ª Edição, Pearson Education

Deadlock. Um problema de concorrência. Parte dos slides: Sistemas Operacionais Modernos 2ª Edição, Pearson Education Deadlock Um problema de concorrência Parte dos slides: Sistemas Operacionais Modernos 2ª Edição, Pearson Education 1 Interação entre Processos Processos que executam em paralelo podem trocar informações

Leia mais

Sistemas Distribuídos Estados globais. Vinícius Fernandes Soares Mota

Sistemas Distribuídos Estados globais. Vinícius Fernandes Soares Mota Sistemas Distribuídos Estados globais Vinícius Fernandes Soares Mota 1 2 Tópicos Tempo e relógio lógicos (revisão curta) Relógios vetoriais Estados Globais Snapshot distribuído 3 Antes... Por que a sincronização

Leia mais

CPE Roteamento em Redes de Computadores

CPE Roteamento em Redes de Computadores Programa de Engenharia de Sistemas e Computação Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de Engenharia Universidade Federal do Rio de Janeiro Por Tiago Azevedo 1 - Especificação ZigBee

Leia mais

Computação Distribuída

Computação Distribuída Aula 1 Introdução aos Sistemas Distribuídos Anos 50 - Sistemas Operacionais tipo Lote Aumentar a capacidade de processamento de programas Usuário ia ao computador Processamento Seqüencial Leitoras de cartões

Leia mais

Roteamento e Roteadores. Conceitos Diversos

Roteamento e Roteadores. Conceitos Diversos e Roteadores Conceitos Diversos Um roteador é um dispositivo que provê a comunicação entre duas ou mais LAN s, gerencia o tráfego de uma rede local e controla o acesso aos seus dados, de acordo com as

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Resiliência de Processos

Sistemas Distribuídos: Conceitos e Projeto Resiliência de Processos Sistemas Distribuídos: Conceitos e Projeto Resiliência de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. Prof. André Y. Kusumoto Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Deadlocks Situação na qual um, ou mais processos, fica impedido de prosseguir sua execução devido ao fato de cada um estar aguardando

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Introdução aos Sistemas Distribuídos 1 Sumário Evolução Problema/Contexto O que é um Sistema Distribuído? Vantagens e Desvantagens

Leia mais

Capítulo 7: Impasse (Deadlocks( Deadlocks)

Capítulo 7: Impasse (Deadlocks( Deadlocks) Capítulo 7: Impasse (Deadlocks( Deadlocks) Capítulo 7: Impasse (Deadlocks( Deadlocks) O Problema do Impasse Modelo de Sistema Caracterização de Impasse Métodos para Manipular Impasses Prevenção de Impasse

Leia mais

Características de Sistemas Distribuídos

Características de Sistemas Distribuídos Tópicos O conceito de Características de Carlos Ferraz cagf@cin.ufpe.br Infra-estrutura básica Exemplos Vantagens e desvantagens Convergência digital Características 2002-2003 Carlos A. G. Ferraz 2 O Conceito

Leia mais

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos

Leia mais

Arquiteturas. Capítulo 2

Arquiteturas. Capítulo 2 Arquiteturas Capítulo 2 Agenda Estilos Arquitetônicos Arquiteturas de Sistemas Arquiteturas Centralizadas Arquiteturas Descentralizadas Arquiteturas Híbridas Arquiteturas e Middleware Sistemas Distribuídos

Leia mais

Introdução Tempo Lógico Relógios Lógicos de Lamport Relógios Lógicos Vetoriais. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Introdução Tempo Lógico Relógios Lógicos de Lamport Relógios Lógicos Vetoriais. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR n n n n Introdução Tempo Lógico Relógios Lógicos de Lamport Relógios Lógicos Vetoriais Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Princípios: Vistos de um processo, os eventos são

Leia mais

Eleição de Líder. Alysson Neves Bessani Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Eleição de Líder. Alysson Neves Bessani Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Eleição de Líder Alysson Neves Bessani Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Algoritmos de Eleição Muitos algoritmos distribuídos necessitam de seleccionar um processo

Leia mais

Sistemas Operacionais Aula 09: Deadlocks / Impasses. Ezequiel R. Zorzal

Sistemas Operacionais Aula 09: Deadlocks / Impasses. Ezequiel R. Zorzal Sistemas Operacionais Aula 09: Deadlocks / Impasses Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Desenvolver uma descrição de deadlocks, que impedem que grupos de processos simultâneos

Leia mais

(a) Maior ou igual ao WECT (b) Inferior ao WECT (c) Exatamente igual ao WECT (d) Mais seguro no entanto sem garantias

(a) Maior ou igual ao WECT (b) Inferior ao WECT (c) Exatamente igual ao WECT (d) Mais seguro no entanto sem garantias Universidade Federal de Santa Catarina (UFSC) Departamento de Automação e Sistemas (DAS) Pós-Graduação em Engenharia de Automação e Sistemas (PGEAS) Professor: Rômulo Silva de Oliveira (romulo.deoliveira@ufsc.br)

Leia mais

Sistemas Distribuídos e Redes de Sensores. abril de 2013

Sistemas Distribuídos e Redes de Sensores. abril de 2013 Aula 4: Comunicação: Coordenação e Sincronização abril de 2013 Comunicação entre Processos Distribuídos troca de mensagens exige coordenação receive?!?...... send............ Coordenação passos para execução

Leia mais

ROUTER. Alberto Felipe Friderichs Barros

ROUTER. Alberto Felipe Friderichs Barros ROUTER Alberto Felipe Friderichs Barros Router Um roteador é um dispositivo que provê a comunicação entre duas ou mais LAN s, gerencia o tráfego de uma rede local e controla o acesso aos seus dados, de

Leia mais