• Nenhum resultado encontrado

Sistemas de Informa¸c˜ao – Univ´as

N/A
N/A
Protected

Academic year: 2019

Share "Sistemas de Informa¸c˜ao – Univ´as"

Copied!
12
0
0

Texto

(1)

Sistemas de Informa¸c˜ao – Univ´as

Roberto Ribeiro Rocha

Abril de 2014

Sum´

ario

1 Objetivos 1

2 Motiva¸c˜ao 1

3 Introdu¸c˜ao 1

4 Tempo F´ısico 1

4.1 Rel´ogios f´ısicos . . . 1 4.2 Algoritmo de Cristian . . . 2

5 Rel´ogios L´ogicos 3

5.1 Eventos . . . 3 5.2 Tempo l´ogico - Causalidade . . . 3

6 Rel´ogio l´ogico de Lamport 4

7 Exclus˜ao m´utua em um sistema distribu´ıdo 8

7.1 Um algoritmo centralizado . . . 8 7.2 Um algoritmo distribu´ıdo . . . 9 7.3 Outros exemplos de uso de rel´ogio l´ogico . . . 10

8 Considera¸c˜oes Finais 11

(2)

1

Objetivos

• Apresentar a ideia que envolve Rel´ogios L´ogicos, suas caracter´ısticas e funciona-mento.

• Apresentar no¸c˜oes sobre Sincroniza¸c˜ao em Sistemas Distribu´ıdos.

2

Motiva¸c˜

ao

Entender o funcionamento e a utilidade dos Rel´ogios L´ogicos na sincroniza¸c˜ao de processos em sistemas distribu´ıdos.

3

Introdu¸c˜

ao

Em um ambiente distribu´ıdo, cada processo ´e executado em uma m´aquina, indepen-dentemente de outros processos, por´em eles se comunicam atrav´es de mensagens que s˜ao enviadas de um remetente at´e um destinat´ario.

Essas mensagens devem ser recebidas e processadas na ordem que foram enviadas, por´em atrasos no meio de comunica¸c˜ao podem afetar essa premissa, gerando resultados diferentes do esperado.

N´os temos a necessidade que o sistema distribu´ıdo como um todo tenha um com-portamento sincronizado, que ´e obtido atrav´es do uso de Rel´ogios L´ogicos.

Em sistemas com ´unica CPU, se resolve esse problema via sem´aforos e monitores. Por´em estes m´etodos n˜ao s˜ao adequados para sistemas distribu´ıdos, pois as partes envol-vidas n˜ao compartilham o mesmo espa¸co de endere¸camento.

4

Tempo F´ısico

Aqui precisamos esclarecer a maneira como ´e tratado o tempo. A no¸c˜ao de tempo f´ısico ´e relativamente problem´atica em sistemas distribu´ıdos, devido `a sincroniza¸c˜ao f´ısica dos clocks.

4.1

Rel´

ogios f´ısicos

S˜ao dispositivos que geram interrup¸c˜oes continuamente, utilizando frequˆencia de hardware. Cada interrup¸c˜ao pode ser interpretada por um software, gerando um n´umero (timestamp), usados para marcar qualquer evento dos processos.

Por´em o hardware ´e sujeito a atrasos, devido a fenˆomenos naturais. Assim existem certas dificuldades de sincroniza¸c˜ao f´ısica:

(3)

• Definir o tempo de propaga¸c˜ao de uma mensagem na rede;

• Possibilidade de falhas nos processadores ou meios de comunica¸c˜ao.

Para sincronizar um rel´ogio f´ısico, normalmente existe uma referˆencia: UTC (Uni-versal Coordinated Time), que usa o rel´ogio atˆomico (de C´esio 133). Existem v´arios transmissores de r´adio no mundo enviando regularmente um pulso no in´ıcio de cada se-gundo UTC. Por´em existe o tempo gasto para a mensagem ser transmitida e recebida. Ent˜ao se perde de 1 a 10 ms. E mais ainda, cada receptor pode ter diferentes tempos de recebimento. Assim o problema de sincroniza¸c˜ao ainda persiste.

4.2

Algoritmo de Cristian

Esse algoritmo foi proposto para fazer a sincroniza¸c˜ao de rel´ogios f´ısicos, onde pe-riodicamente uma m´aquina cliente envia uma mensagem para um servidor de rel´ogio pedindo o valor da hora corrente. Otime server responde o mais r´apido que puder, com uma mensagem contendo seu tempo corrente, conforme mostrado na Figura 1.

Figura 1: Algoritmo de Cristian

Assim, quando o emissor recebe a resposta, ele atualiza seu clock.

Por´em ainda existem 2 problemas:

• a diferen¸ca entre os rel´ogios do cliente e servidor e

(4)

5

Rel´

ogios L´

ogicos

V´arias aplica¸c˜oes interessam na ordem em que os eventos ocorreram, n˜ao se impor-tando muito com o tempo real da ocorrˆencia.

Um rel´ogio l´ogico mede o tempo discreto, ou seja, um contador que acumula o n´umero de eventos ocorridos entre um evento de referˆencia e um outro evento.

5.1

Eventos

´

E a ocorrˆencia de uma a¸c˜ao executada por um processo, e mesmo se a mesma a¸c˜ao for executada v´arias vezes, cada execu¸c˜ao dela ´e um evento.

Um processo ´e composto por uma sequˆencia de eventos: e1,e2,. . .,en. Esses eventos podem ser dos seguintes tipos: internos, envio e recebimento de mensagens.

Figura 2: Um processo e seus eventos

Figura 3: Dois processos e seus eventos

Figura 4: Trˆes processos e seus eventos

Aten¸c˜ao: Nem sempre ´e necess´ario o rel´ogio ser sincronizado, mas sim estabelecer uma ordem dos eventos.

5.2

Tempo l´

ogico - Causalidade

(5)

“N˜ao conseguimos sincronizar os rel´ogios f´ısicos perfeitamente logo n˜ao podemos utiliz´a-los para determinar a ordem de ocorrˆencia de dois eventos quaisquer num Sistema Distribu´ıdo” (Lamport, 78)

Solu¸c˜ao:

Ao inv´es de sincronizarmos os rel´ogios f´ısicos podemos ordenar os eventos num Sistema Distribu´ıdo.

A sincroniza¸c˜ao dos rel´ogios l´ogicos ocorre seguindo a rela¸c˜ao deprecedˆencia cau-sal entre os eventos.

Precedˆencia Causal ou ordem causal ou causalidade ou rela¸c˜ao de ordem

ourela¸c˜ao happens before (hb)

Essa rela¸c˜ao ´e representada por: →

A express˜ao ab ´e lida como “a precede b” e significa que todos os processos concordam com o fato de primeiro acontecer o evento a e depois ocorrer o eventob.

A rela¸c˜ao de causa e efeito ´e regida por 3 regras:

1. Se a e b s˜ao eventos no mesmo processo nessa ordem, ent˜ao ab;

2. Sea´e o evento do envio de uma mensagem por um processo eb´e o evento da mesma mensagem sendo recebida pelo processo de destino, ent˜ao ab;

3. Se ab e bc, ent˜ao ac. Rela¸c˜ao transitiva.

Eventos concorrentes s˜ao representados da seguinte forma: a||b

onde percebemos que ¬(ab) ∨ ¬(ba), ou seja, n˜ao ´e poss´ıvel determinar qual evento ocorreu antes ou depois.

Exerc´ıcio 1 –

Utilizando as imagens das Figuras 3 e 4, fazer:

1. Ordenar os eventos de acordo com suas ocorrˆencias, ou seja escrever a sequˆencia de ocorrˆencia dos eventos para o sistema como um todo.

2. Indicar qual a rela¸c˜ao de causalidade entre os eventos abaixo, para cada figura:

a c a d a e a f b c b d

b e b f c e c f d e d f

Tabela 1: Rela¸c˜ao entre os eventos

Exerc´ıcio 2 –

Ordenar os eventos da imagem a seguir.

6

Rel´

ogio l´

ogico de Lamport

´

(6)

Figura 5: Exerc´ıcio 2.

Ele mede o tempo interno, ou seja, um contador (L) que acumula o n´umero de eventos ocorridos entre um evento de referˆencia e um outro evento interno do processo.

A rela¸c˜ao entre → e Lamporttimestamps ´e:

e1→e2 =⇒L(e1)< L(e2) (1)

Cada processo P item seu rel´ogio l´ogico designado por Li.

Lamport definiu 3 regras de atualiza¸c˜ao do rel´ogio, onde ostimestampss˜ao colocados nos eventos de acordo com as regras abaixo (Li ´e o rel´ogio do processoi):

1. Evento local: Li ´e incrementado antes de coloc´a-lo como timestamp num evento local;

2. Send: quando P i envia uma mensagemm,P i copia em m o valor do seu Li;

3. Receive: quando P j recebe uma mensagem m com timestamp t, P j faz Lj =

max(Lj, t) + 1.

Exemplo:

L1, L2 e L3 s˜ao inicializados com zero

• No envio de m1,P1 envia L1 = 2 junto na mensagem

P2 recebe m1 e faz L2 = max(0,2) + 1

• No envio de m2,P2 envia L2 = 4 junto na mensagem

P3 recebe m2 e faz L3 = max(1,4) + 1

Importante:

(7)

Figura 6: Trˆes processos e seus eventos enumerados

• Por´em o contr´ario n˜ao ´e verdadeiro: L(e1)< L(e2) n˜ao implica e1→e2

Exemplo: na imagem anterior L(e)< L(b) por´em n˜ao h´a a garantia que o evento e

sempre ocorrer´a antes de b, pois e||b.

Assim o Rel´ogio L´ogico de Lamport define uma ordem parcial de eventos que satisfaz a rela¸c˜ao causal (HB) entre eventos, mas n˜ao completamente.

(8)

Exerc´ıcio 3 –

Enumerar corretamente os eventos das imagens a seguir

utilizando o rel´ogio l´ogico de Lamport.

Figura 7: Exerc´ıcio 3.1.

Figura 8: Exerc´ıcio 3.2.

(9)

7

Exclus˜

ao m´

utua em um sistema distribu´ıdo

Sistemas envolvendo m´ultiplos processos s˜ao frequentemente mais facilmente progra-mados utilizando regi˜oes cr´ıticas. Quando um processo deve ler ou atualizar estruturas de dados compartilhadas, ele primeiro tenta garantir exclus˜ao m´utua para o acesso a regi˜ao cr´ıtica.

Em um ambiente centralizado a tarefa de impor a exclus˜ao m´utua ´e facilitada pelo uso de sem´aforos ou monitores. Em ambientes distribu´ıdos impor a exclus˜ao m´utua exige cuidado maior.

7.1

Um algoritmo centralizado

A maneira mais direta de implementar exclus˜ao m´utua em um sistema distribu´ıdo ´e simular o comportamento de um sistema com um ´unico processador. Um processo ´e eleito coordenador, geralmente executando em uma m´aquina com o endere¸co de rede mais alto.

Quando um processo deseja entrar na regi˜ao cr´ıtica, ele envia uma mensagem para o coordenador, solicitando e informando a regi˜ao cr´ıtica que ele deseja entrar.

Se nenhum outro processo estiver na regi˜ao cr´ıtica, o processo coordenador envia uma mensagem de resposta (reply) garantindo permiss˜ao ao processo. Quando a mensa-gem chega, o processo entra na regi˜ao cr´ıtica.

Se existir um outro processo na regi˜ao cr´ıtica, o processo coordenador pode tomar duas atitudes (dependendo da implementa¸c˜ao do sistema):

1. Enviar uma mensagem reply com o conte´udo permission denied.

2. N˜ao enviar resposta enquanto a regi˜ao cr´ıtica n˜ao estiver dispon´ıvel.

Quando um processo sai da regi˜ao cr´ıtica ele envia uma mensagem avisando o pro-cesso coordenador. Se houver propro-cesso aguardando, o coordenador retira o primeiro da fila e envia uma mensagem liberando o processo.

´

(10)

7.2

Um algoritmo distribu´ıdo

Um algoritmo distribu´ıdo pode ser alcan¸cado com a ordena¸c˜ao total dos eventos proposta por Lamport (1978).

A seguir ser´a descrito o algoritmo apresentado por Ricart e Agrawala (1981).

Quando um processo quer entrar na regi˜ao cr´ıtica, ele constr´oi uma mensagem con-tendo o nome da regi˜ao cr´ıtica que ele deseja utilizar, o n´umero de identifica¸c˜ao do pro-cesso, e o tempo corrente. Essa mensagem ´e enviada para os outros processos, inclusive ele pr´oprio. O envio da mensagem ´e assumido como confi´avel, ou seja, toda mensagem ter´a confirma¸c˜ao.

Quando um processo recebe uma mensagem de requisi¸c˜aorequest de outro processo, a sua a¸c˜ao depende de seu estado com respeito `a regi˜ao cr´ıtica descrita na mensagem. Trˆes casos devem ser distinguidos:

1. Se o receptor n˜ao est´a na regi˜ao cr´ıtica e n˜ao deseja entrar nela, ele envia de volta uma mensagem de OK para o emissor.

2. Se o receptor est´a na regi˜ao cr´ıtica, ele n˜ao responde a mensagem, ao contr´ario, ele coloca a requisi¸c˜ao em um fila de espera.

3. Se o receptor quer entrar na regi˜ao cr´ıtica, mas ainda n˜ao conseguiu, ele compara o timestamp da mensagem que chegou com otimestamp da mensagem que ele enviou. A menor vence. Se a mensagem que chegou ´e menor, o receptor envia uma mensa-gem de OK para o processo emissor. Se a sua mensagem ´e a que possui o menor timestamp, o receptor coloca na fila a mensagem de requisi¸c˜ao e n˜ao responde ao emissor.

Ap´os enviar todas as mensagens de requisi¸c˜ao da regi˜ao cr´ıtica, o processo fica bloqueado aguardando a resposta de todos os outros processos. Assim que todas as mensagens de permiss˜ao chegarem, ele pode entrar na regi˜ao cr´ıtica.

(11)

Exerc´ıcio 4 –

Baseado na situa¸c˜ao da Figura 10, fa¸ca:

1. desenhar os eventos de envio e recebimento das mensagens, indicando as informa¸c˜oes necess´arias para que o processo P1 entre e saia da regi˜ao cr´ıtica, utilizando o al-goritmo distribu´ıdo. Enumere os eventos utilizando as regras do rel´ogio l´ogico de Lamport. Escreva, abreviadamente em cada mensagem, qual ´e seu conte´udo: req ou ok.

2. desenhar os eventos de envio e recebimento das mensagens indicando as informa¸c˜oes necess´arias para que o processo P1 entre e saia da regi˜ao cr´ıtica, por´em agora utilizando o algoritmo centralizado. Sugest˜ao: desenhar um processo extra para fazer o papel do processo coordenador.

Figura 10: Exerc´ıcio 4.

7.3

Outros exemplos de uso de rel´

ogio l´

ogico

• Exclus˜ao M´utua em sistemas distribu´ıdos;

• Depura¸c˜ao (debugging);

• Algoritmos para elei¸c˜ao;

• Detec¸c˜ao de termina¸c˜ao;

Deadlock (Deadlock S˜ao Jo˜ao-Ipiranga);

• Coleta de lixo (recursos n˜ao mais usados);

• Monitoramento em geral (Deadlock S˜ao Jo˜ao-Ipiranga, Editora, Bancos);

(12)

Exerc´ıcio 5 –

Dada a Figura 11, complete o desenho com as mensagens

e o n´

umero de cada evento at´e que o processo

P

1 consiga entrar na regi˜ao

cr´ıtica.

Figura 11: Exerc´ıcio 5.

8

Considera¸c˜

oes Finais

A ordena¸c˜ao de eventos em um sistema distribu´ıdo ´e um assunto importante pois afetam diretamente nos resultados esperados da execu¸c˜ao. O uso do Rel´ogio L´ogico de Lamport permite que eventos dependentes sejam executados em sua pr´opria ordem, inde-pendente do rel´ogio f´ısico, por´em n˜ao impondo uma ordem total dos eventos. Com o uso de rel´ogios l´ogicos podemos implementar certos algoritmos que ajudam a resolver v´arios problemas em um ambiente distribu´ıdo.

9

Bibliografia

Sincroniza¸c˜ao em Sistemas Distribu´ıdos - Edmilson Marmo Moreira - UNIFEI

LAMPORT, L. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, v. 21, n. 7, p. 558–565, July 1978.

COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T. Distributed Systems - Con-cepts and Design. 2. ed., 1994

TANENBAUM, A. S. Distributed Operating Systems. Prentice Hall, 1995.

Imagem

Figura 1: Algoritmo de Cristian
Figura 3: Dois processos e seus eventos
Figura 5: Exerc´ıcio 2.
Figura 6: Trˆes processos e seus eventos enumerados
+4

Referências

Documentos relacionados

El objetivo de este artículo es analizar el accionar público de la jerarquía de la Iglesia católica argentina en relación con el aborto en el período en que fue conducida por

.LADE .on#resso Latino'Americano de E;an#ei:a()o .oMIn .onse9o Mission&gt;rio

O Plano Real foi sancionado pela Lei nº 9.069, de 29 de junho de 1995 que dispunha sobre o Sistema Monetário Nacional e adotou o Plano Real que se constituiu em

Sementes provenientes de lotes com potencial fisiológico elevado originam plantas vigorosas, com desenvolvimento inicial rápido e uniforme, que se estabelece mesmo

Para responder a esse questionamento, esta pesquisa tem como objetivo geral entender como as mulheres brasileiras que empreendem na área de tecnologia lidam com os

De acordo com os resultados gerados numericamente, pode-se dizer que: - as janelas de ´oleo obtidas confirmam o potencial petrol´ıfero da Bacia do Solim˜oes, inclusive em regi˜oes

O FUNDO pagará ao Administrador, percentagem de até 0,30% (zero virgula trinta por cento) ao ano, sobre o valor do patrimônio líquido, como somatório das

ESTE FORMULÁRIO FOI PREPARADO COM AS INFORMAÇÕES NECESSÁRIAS AO ATENDIMENTO DAS DISPOSIÇÕES DO CÓDIGO ANBIMA DE REGULAÇÃO E MELHORES PRÁTICAS PARA OS FUNDOS