Algoritmo lamport

2,774 views
2,619 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,774
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
41
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Algoritmo lamport

  1. 1. http://informaticaentretenimento.blogspot.com/CEP- CENTRO DE EDUCAÇÃO PROFISSIONAL DE ITAJUBÁ TÉCNICO DE INFORMÁTICA Turma: V2I Verônica Veiga. Nº: 17 Sistema Operacional Algoritmo de Lamport Trabalho apresentado na disciplina: Sistema Operacional. Do professor Mário. No curso técnico em informá- tica. Do CEP- Centro de Educação Profissional de Itajubá. 21 de setembro de 2011 ITAJUBÁ-MG
  2. 2. Algoritmo de lamport Introdução:Lamport formou-se em matemática pelo Massachusetts Institute of Technology em 1960,com mestrado e doutorado em matemática pela Universidade Brandeis, concluídosrespectivamente em 1963 e 1972. O tema de sua tese de doutorado foram singularidadesem equações diferenciais parciais analíticas.Após a graduação, ele começou sua carreira como cientista computacionalnoMassachusetts Computer Associates, SRI International, Digital, e Compaq. Em 2001, elese juntou à Microsoft Research em Mountain View, na California. Suas pesquisascontribuíram com a fundação da teoria de sistemas distribuídos. Alguns dos seus maisnotáveis papers nesta área são os seguintes: "Time, Clocks, and the Ordering of Events in a Distributed System" "Distributed snapshots: determining global states of distributed systems" "The Byzantine Generals Problem" "The Part-time Parliament"Esses artigos introduziram novos conceitos na ciência computacional, tais como relógioslógicos (logical clocks) e a relação antes-depois, bem como as falhas Bizantinas. Estes sãoalguns dos artigos mais citados no campo de sistemas distribuídos, e descrevemalgoritmos para a resolução de muitos problemas fundamentais em sistemas distribuídos,incluindo: O algoritmo de Paxos para consenso the Paxos O algoritmo da padaria para exclusão mútua de múltiplos threads em um sistema de computadores que requerem as mesmas fontes ao mesmo tempo. O algoritmo Snapshot para determinação dos estados globais consistentes.Dr. Lamport recebeu quatro títulos do Doutor Honoris Causa por universidades europeias:Universidade de Rennes e Universidade Christian Albrechtsde Kiel em 2003, EPFL em 2004, University of Lugano em 2006. Em 2004 ele tambémrecebeu o IEEE Piore Award por causa de suas expressivas contribuições no campo doprocessamento de informação, em relação à ciência computacional, contribuídosignificativamente ao avanço e ao melhoramento da sociedade. http://informaticaentretenimento.blogspot.com/
  3. 3. Fora da ciência computacional, o Dr. Lamport é melhor conhecido como sendo odesenvolvedor inicial do sistema de preparação de documentos, o LaTeX. Relógios de LamportRelógios lógicos de Lamport são mecanismos usados em algoritmos de sincronização derelógio baseados na relação happens-before definida por Lamport.Marcas temporaisNesses algoritmos cada processo do sistema distribuído mantém um contador crescente emonotônico C (relógio lógico) e cada evento a possui uma marca temporal C(a) na qualtodos os processos concordam. Dessa forma, os eventos estão sujeitos às seguintespropriedades derivadas da relação happens-before: 1. Se a acontece antes de b no mesmo processo, então C(a) < C(b). 2. Se a e b representam, respectivamente, o envio e o recebimento de uma mensagem, então C(a) < C(b). 3. Sejam a e b eventos quaisquer, então C(a) ≠ C(b) http://informaticaentretenimento.blogspot.com/
  4. 4. Ordenação parcial ou totalOrdenação total dos eventos se dá quando é possível definir a ordem de quaisquer doiseventos. De acordo com as propriedades dos contadores (timers) Lamport nenhum par deeventos terá uma mesma marcação temporal, pois basta ordenar os eventos de acordocom o tempo que eles ocorrem em seus processos e desfazer empates comparando umapropriedade arbitrária dos processos, como por exemplo, seu identificador. Quando esteempate não é desfeito, uma ordenação parcial é obtida.Como em vários algoritmos distribuídos a ordenação total é necessária para evitarambiguidades, o algoritmo de Lamport é bastante citado na literatura. Nos algoritmos dedisputa a recursos compartilhados, apenas um processo pode usar um recurso por vez,então os processos devem sincronizar para evitar conflitos, dessa forma ordenação total éum requisito para esse algoritmo.RegrasOs relógios de Lamport obedecem as seguintes regras: 1. Um processo incrementa seu contador antes de cada evento daquele processo; 2. Quando um processo envia uma mensagem, esse inclui o valor de seu contador junto da mensagem; 3. No recebimento de uma mensagem, o processo atualiza seu contador para um valor maior que o máximo entre seu próprio valor e o valor de contador recebido na mensagem.Algoritmos distribuídosAlguns algoritmos distribuídos podem fazer uso dos relógios de Lamport, tais quais:Exclusão mútuaEm sistemas distribuídos onde há disputa de recursos normalmente há a implementaçãode regiões críticas. Quando um processo precisa acessar uma certa informaçãocompartilhada, este primeiramente precisa acessar a região crítica e todos os processosdevem concordar que este processo está nesta região, a fim de garantir que nenhum outroprocesso acessará o mesmo dado ao mesmo tempoUma solução centralizada para o problema seria adotar um processo coordenador queseria responsável por receber solicitações para a região crítica e dar permissões deentrada para o processo solicitante quando possível.É fácil perceber que a solução garante exclusão mútua e é justa, porém o processocoordenador se torna um possível gargalo de performance e um ponto único de falha. http://informaticaentretenimento.blogspot.com/
  5. 5. Para contornar as desvantagens da versão centralizada do algoritmo, versõesdescentralizadas foram apresentadas. Lamport em 1978 apresentou uma primeira versãodo algoritmo, e em 1981, Ricart e Agrawala o tornaram mais eficiente.O algoritmo de Ricart e Agrawala faz uso da ordenação total dos eventos, portanto faz usodos relógios de Lamport e funciona da seguinte forma: • Quando um processo quer entrar na região crítica, ele cria uma mensagem contendo o nome da região crítica, o número de seu processo e valor de seu contador. E então envia essa mensagem para todos os outros processos participantes do sistema. Para isso assume-se que o envio das mensagens é confiável. • Quando um processo recebe uma mensagem de requisição de entrada na região crítica, três ações podem ser tomadas de acordo com o estado da região crítica: o Se ele não está na região crítica nomeada na mensagem e também não que entrar na mesma, responde a mensagem com um OK. o Se ele ja está na região crítica, ele não responde a mensagem. Ao invés disso, ele enfileira a requisição. o Se ele quer entrar na região crítica mas ainda não o fez, ele compara a marca temporal da mensagem recebida com a marca temporal da mensagem que ele enviou para todos. Se a mensagem recebida tiver a menor marca temporal, o processo responde com um OK, caso contrário, ele enfileira a requisição. • Após enviar as requisições de entrada na região crítica para todos os outros processos, o processo espera as repostas dessas requisições. Uma vez que todas as permissões foram recebidas, o processo entra na região crítica. • Ao sair da região crítica o processo envia OK para todos os processos que estão na sua fila de requisições e apaga esta fila.Da mesma forma que o algoritmo centralizado citado acima, com o algoritmodescentralizado a exclusão mútua é garantida sem deadlock ou starvation. O número demensagens trocadas por entrada na região crítica é 2(n-1), onde n é o número deprocessos no sistema. Além disso, não há ponto único de falha nessa solução.Porém, o ponto único de falha agora foi substituído por n pontos de falha. Quando algumprocesso falha, ele pára de responder às requisições. Essa falta de resposta pode serinterpretada como uma negação de permissão, bloqueando as entradas na região críticapor outros processos. Esse problema pode ser contornando adicionando respostas,inclusive de negação de permissão, a cada mensagem de requisição. Uma falha de entregaagora pode ser detectada por timeout.Outro problema que acaba existindo com o uso do algoritmo distribuído é a necessidadede uma primitiva de comunicação em grupo. Cada processo agora precisa manter umalista dos membros do grupo, percebendo entradas, saídas e falhas desses membros.Dessa forma, na versão distribuída do algoritmo, todos os processos estão envolvidos emtodas as decisões de entrada na região crítica. Comparando com o algoritmo centralizadoe a suposição de gargalo, se um dos nós não suporta a carga é pouco provável queforçando a paralelização, fazendo com que todos os nós façam a mesma coisa, venha aexistir a solução para esse gargalo. http://informaticaentretenimento.blogspot.com/
  6. 6. Multicast totalmente ordenadoO algoritmo de multicast totalmente ordenado também faz uso dos relógios de Lamport eda ordenação total. Ele se faz necessário quando precisamos garantir a mesma sequênciade eventos em todos os processos do sistema, como por exemplo, em uma atualização debanco de dados replicado em diversas máquinas.O algoritmo funciona da seguinte forma: 1. Um processo cria uma mensagem contendo sua marca temporal atual e então faz multicast para todos os outros processos do grupo. 2. Os contadores são atualizados no envio e recebimento das mensagens. 3. Quando uma mensagem é recebida o processo o coloca em sua fila local de acordo com sua marca temporal e aguarda pela confirmação das mensagens enviadas.Uma mensagem então só é de fato entregue à aplicação quando está na cabeça da fila etodas confirmações daquela mensagem foram recebidas. Ou seja, o processo garante quea marca temporal da mensagem entregue é menor que os contadores de outros processos.Além disso, desempates de marcas temporais de mensagens são feitos através deidentificadores arbitrários dos processos, permitindo a ordenação total dos eventos. Conclusão:Lamport ordering (ordenação) são algoritmos de sistemas distribuídos.Através de observações de como os processos distribuídos deveríam se comportarem,verificou-se que não importa que um processo que não tem interação com outro, estejamsincronizados, pois o desempenho de um deles não irá afetar o resultado de outro.Também não é necessário que todos tenham o clock perfeitamente sincronizados, desdeque todos eles concordem com a ordem que os eventos devem acontecer. Este clock échamado de clock lógico.Exemplo: um processo é encarregado de realizar a compilação de um determinadoarquivo-fonte, outro é responsável por executá-lo, não importa o tempo que o primeiro irácompilar o arquivo, desde que o segundo processo só execute depois que o arquivo jáesteja compilado.Algoritmo de Lamport
  7. 7. Usa-se o nome clocks lógicos, ao invés de clocks físicos, usados em sistemas onde senecessita do tempo correto de ocorrência de cada evento;Lamport define a relação acontecimento-anterioridade: (a b) que indica que todos osprocessos concordam que o evento a acontece primeiro e depois o b.– Se a e b são eventos no mesmo processo, e a acontece antes de b então a b é verdade.– Se a é o evento de uma mensagem sendo enviada por um processo e b é o evento deoutro processo recebendo aquela mensagem então a b é verdade. Algoritmo de LamportSe dois eventos acontecem em processos diferentes que não se comunicam, esseseventos são ditos concorrentes.• Mensagens são enviadas juntamente com clock da máquina do processo emissor.• Máquina que recebe mensagem ajusta seu próprio clock caso seja necessário, isto é,quando seu clock tem um valor igual ou inferior ao da mensagem.• Pode-se usar número do processo para se resolver empates e implementar um clockglobal, isto é, cada evento tem um tempo associado e os tempos associados de todos oseventos são diferentes.Fonte:http://pt.wikipedia.org/wiki/Rel%C3%B3gios_de_Lamporthttp://pt.wikipedia.org/wiki/Leslie_Lamport Acesse o blog abaixo: E seja bem vindo! Temos curso online http://informaticaentretenimento.blogspot.com/
  8. 8. http://informaticaentretenimento.blogspot.com/

×