Você está na página 1de 12

1.

Introduo

1.1 Definio Segundo A. Tanenbau [1995], um sistema distribudo uma coleo de computadores independentes que parecem ao usurio como um nico computador. A definio anterior implica em hardware formado por mquinas autnomas e software fornecendo a abstrao de uma nica mquina.

1.2.

Introduo

O algoritmo de Ricard e Agrawala requer que haja uma ordem total de todos os eventos no sistema. Ou seja, para qualquer par de eventos, como mensagens, no deve haver ambigidade na qual o primeiro acontece. O algoritmo de Lamport, um modo de alcanar esta ordenao e pode ser usada para fornecer time-stamp para a excluso mtua distribuda. Quando um processo entra na regio crtica, ele constri uma mensagem contendo o nome da regio crtica que est interessado, o nmero do processo, e o tempo corrente. Ele envia a mensagem para todos os outros processos, conceitualmente incluindo-o. Um grupo confivel de comunicao se disponvel, pode ser usado ao invs de mensagens individuais. Quando um processo recebe uma requisio de outro processo, a ao que toma depende do seu estado com relao a regio crtica nomeada na mensagem. Trs casos devem ser distinguidos: 1 - Se o receptor no a regio crtica e no quer entrar na regio crtica, ele retorna um OK para o transmissor.

2 - Se o receptor estiver na regio crtica, ele no responder. Ao invs, ele enfileira a requisio. 3 - Se o receptor quiser entrar na regio crtica, mas no o fez ainda, ele compara o timestamp da mensagem com o contendo na mensagem que ele enviou para todos. A menor ganha. Se a mensagem que chegar tiver menor prioridade, o receptor envia uma mensagem de OK. Se sua prpria mensagem tiver um timestamp inferior, o receptor enfileira a mensagem e no envia nada. Depois de enviar as requisies pedindo autorizao para entrar na regio crtica, um processo espera at que todos tenham dado permisso. Assim que todas as permisses cheguem, ele poder entrar na regio crtica. Quando ele sai da regio crtica, ele envia um OK para todos os processos da sua fila e deleta-os de sua fila. Se no h um conflito, ele funcionar corretamente.

1.2.1. Vantagens Econmica: aproveita maquinas potencialmente ociosas; mais barato ter vrios processadores interconectados do ter um supercomputador; Velocidade: a capacidade de interconectar processadores possibilita que se obtenha performances que apenas um sistema composto capaz de atingir; Distribuio inerente: algumas distribuies so distribudas por natureza. Ex.: aplicao para uma cadeia de supermercados, alguns tipos de jogos, etc.; Tolerncia falhas: quando uma mquina falha, o sistema como um todo pode continuar funcionando, apenas apresentando uma diminuio no seu desempenho.

Crescimento Incremental: pode-se aumentar o poder computacional atravs da incluso de novos equipamentos.

Flexibilidade: os sistemas distribudos so mais flexveis do que maquinas isoladas, por essa razo so muitas vezes utilizados at mesmo sem a necessidade de maior desempenho. Esta flexibilidade permite que vrios usurios compartilhem dados e perifricos.

1.2.2. Desvantagens Poucos softwares de auto nvel disponveis para sistemas distribudos Dificuldades para evitar acesso indevido - questes de segurana A rede de interconexo pode causar problemas ou no dar a vazo exigida pela demanda.

2. Tipos de Algoritmo 2.1. Algoritmo Token Ring Uma abordagem totalmente diferente para obter a excluso mtua em um sistema distribudo apresentar um barramento (por exemplo, Ethernet), sem ordenao dos processos. Por software, um anel circular construdo no qual cada processo associado a uma posio no anel. As posies no anel podem ser alocadas em uma ordem numrica dos endereos da rede ou de outra forma. No importa qual a ordem. O que importa que cada processo saiba que o prximo no anel.

Quando o anel inicializado, o processo recebe um token. O token circula pelo anel. Passa pelo processo K para o processo K + 1 em mensagens ponto-a-ponto. Quando um processo adquire o token do processo vizinho, ele checa para ver se precisa entrar na regio crtica. Se precisar, o processo entra na regio crtica, efetua o trabalho a ser feito, e libera a regio. Depois de sair, ele passa o token para o anel. No permitido entrar numa segunda regio crtica usando o mesmo token.

Se o processo recebe o token de seu vizinho e no est interessado em entrar na regio crtica, ele somente passa o token para frente. Como conseqncia, quando nenhum processo quer entrar em nenhuma regio crtica, o token somente circula em alta velocidade ao longo do anel. Deste modo somente um processo tem o token em qualquer instante, logo somente um processo pode estar na regio crtica. Visto que o token circula pelos processos em uma ordem bem-definida, starvation no poder ocorrer. Uma vez que um processo decide entrar na regio crtica, no pior caso ele ter que esperar que todos os outros processos entrem na regio crtica e liberem-na. Como sempre, este algoritmo tambm possui problemas. Se o token for perdido, ele deve ser gerado novamente. De fato, detectar que o token foi perdido difcil, visto que o tempo entre sucessivas aparies do token da rede no limitado. O fato de que o token no foi avistado por uma hora no significa que ele foi perdido; algum pode ainda estar utilizando-o. O algoritmo tambm tem problemas se um processo falha, mas a recuperao mais fcil do que os outros casos.Um processo ao passar o token para seu visinho pode perceber, se for o caso, que ele est fora do ar. Neste ponto, o processo fora do ar pode ser removido do grupo, e o processo que possui o token enviar para o prximo processo, no anel. Para isso, necessrio que todos mantenham a configurao atual do anel.

2.2. Algoritmo centralizado O objetivo deste algoritmo simular a excluso mtua num sistema distribudo, da mesma maneira como feita num sistema de um nico processador. 1. Um processo eleito o coordenador

2. Quando um processo quer entrar numa regio crtica (RC), ele envia uma mensagem de requisio para o coordenador dizendo qual a RC desejada e pedindo a permisso para acess-la. 3. Se no h outro processo na RC, o coordenador devolve uma mensagem concedendo a permisso. 4. Quando esta mensagem chega, o processo requerente entra na RC.

2.3. Comparao dos trs algoritmos O algoritmo centralizado o mais simples e tambm o mais eficiente. Ele necessita somente de trs mensagens para entrar e liberar a regio crtica: uma requisio e a autorizao, e a liberao para sair. O algoritmo distribudo requer n-1 requisies, uma para cada processo, e um adicional de n-1 autorizaes, para um total de 2(n-1). Com o algoritmo do anel de token, o nmero varivel. Se todos os processos quiserem entrar constantemente na regio crtica, ento cada token passado resultar em uma entrada e sada, para uma mdia de uma mensagem por entrada na regio crtica. Em outro extremo, o token poderia algumas vezes circular por horas sem ningum estar interessado nele. Neste caso, o nmero de mensagens por entrada na regio crtica no limitado. O tempo que o processo aguarda para entrar na regio crtica at a entrada varia nos trs algoritmos. Quando regies crticas so pequenas e raramente usadas, o fator dominante na espera o mecanismo corrente para entrar na regio crtica. Quando so longas e freqentemente usadas, o fator dominante esperar que todos tenham sua vez. Finalmente, todos os trs algoritmos reagem mal a eventos de quebra. Medidas especiais e complexidade adicional devem ser introduzidas para impedir que uma quebra faa com que todo o sistema saia do ar. um pouco irnico que os algoritmos distribudos

so mais sensveis a falhas do que os centralizados. Em um sistema tolerante a falhas, nenhum deles seria indicado, mas se as falhas no so muito freqentes, eles so aceitveis.

2.4. Algoritmo de Eleio Em muitos algoritmos de sistemas distribudos existe a necessidade de que um processo desempenhe funes especiais tais como coordenar, inicializar, seqenciar, etc. Semelhante ao j visto nos sistemas centralizados em algoritmos de excluso mtua. Em geral no importa qual o processo toma para si a responsabilidade, mas algum tem que desempenhar este papel. Nesta seo sero mostrados algoritmos para a eleio de um coordenador. Um pergunta que surge, mas que facilmente respondida, como distinguir um processo eleito dos outros j que nenhum dele possui uma caracterstica distinta? Para responder esta dvida [TANEMBAU-1995] foi adotado que cada processo possui uma identificao nica, por exemplo, o endereo de rede. Em geral, para eleger o coordenador procura-se pelo processo que tenha o nmero de rede mais alto. Existem diferentes maneiras para fazer esta localizao.

Alm disso, ser assumido que todo processo conhece o nmero dos outros processos e que os processos no sabem quais deles esto correntemente ativos ou no. A meta da eleio assegura que aps o incio da eleio os processos concordem entre si quem o novo coordenador. Abaixo sero mostrados alguns algoritmos que tratam este assunto.

2.6. Algoritmo de Bully Este algoritmo, (Tanembaum apud Garcia-Molina (1982)), quando verifica que o coordenador est morto, inicia uma eleio da seguinte forma: 1. P envia uma mensagem de ELEIO para todos os processos. 2. Se nenhum processo responde ento ele se torna o coordenador 3. Se algum que responder tiver o nmero maior do que o de P ento P ser tomado sobre ele. Em qualquer momento um processo de menor nmero pode enviar uma mensagem de ELEIO. Quando isto acontece o processo coordenador de maior nmero responde ao sender com uma mensagem de OK indicando que ele est ativo e assim o processo sender se cala. Entretanto se o processo que enviou a mensagem de ELEIO for um nmero maior do que o coordenador. O processo sender ento ser eleito como o novo coordenador. Desta forma garante que se um processo de maior nmero ficar inativo ou crasher temporariamente ele poder voltar a ser o novo coordenador. Assim sempre ficar no topo o processo de maior nmero por isso chamado "Algoritmo do Valento".

2.7. Algoritmo do Anel Um outro modelo de eleio do coordenador utilizando um anel, mas sem a presena do token. Os processos esto ordenados logicamente ou fisicamente, desta forma cada processo sabe quem o seu sucessor. Quando um processo percebe que o seu coordenador est desativo ele constri uma mensagem ELEICO com o seu identificador e a passa para o seu sucessor, se o seu sucessor estiver inativo a mensagem passar para o prximo assim por diante at que a mensagem volte ao processo que enviou. Durante este processo cada processo coloca o nmero do seu identificador. Aps a mensagem circular por todos os processos, o processo que enviou a mensagem (isto porque ele verifica o seu prprio nmero na mensagem) altera a mensagem para o tipo COORDENADOR e coloca novamente para circular para que todos reconheam quem o coordenador e quais os novos membros do anel. Assim que a mensagem retornar novamente ao processo transmissor, ela retirada do anel e todos voltam a trabalho novamente.

2.8. Deadlock Um deadlock causado pela situao onde um conjunto de processos est bloqueado permanentemente, isto , no consegue prosseguir a execuo, esperando um evento que somente outro processo do conjunto pode causar. Condies necessrias para ocorrer o Deadlock no sistema: Excluso mtua; segura e espera; no preempo; espera circular.

Estratgias mais utilizadas para trabalhar o Deadlock: algoritmo do avestruz (ignorar o problema); deteco (permite que o deadlock ocorra, detecta e tenta recuperar); preveno (estaticamente faz com que o deadlock no ocorra); espera circular (evita deadlock alocando recursos cuidadosamente).

2.9. Algoritmo de deteco distribuda O algoritmo de deteco funciona da seguinte maneira: O algoritmo executado quando um processo tem que esperar por algum recurso em funo de um outro processo esta utilizando o mesmo. Quando esta situao ocorre, uma mensagem especial enviada (probe message) e enviada para o processo que esta utilizando o recurso, sendo composta de trs partes: informaes sobre o nmero do processo que est bloqueando, o nmero do processo que esta enviando a mensagem e o nmero do processo para quem a mensagem est sendo enviada. Quando a mensagem chega a um processo, o processo verifica se est esperando por algum recurso que esta em uso por outro processo. Se estiver, ento a mensagem atualizada, mantendo-se o primeiro campo, mas trocando o segundo campo por seu nmero de processo e o terceiro pelo nmero do processo que est esperando desbloqueamento do recurso. Se est bloqueado devido a diversos processos, ento a mensagem enviada para todos os processos que detm o recurso que o processo necessita. Se a mensagem d toda a volta e chega no processo que iniciou a mensagem, isto o processo cujo identificado est no primeiro campo da mensagem, existe um ciclo, logo o sistema est em deadlock.

3. Resumo Ao trmino desta pesquisa, conclumos que s Sistemas Distribudos tm, por seu maior objetivo, melhorar a comunicao entre os computadores, ou melhor, propiciar a integrao destes num sentido amplo que pode envolver facilidade de mudanas futuras, rapidez nas trocas de informaes e confiabilidade na execuo dos processos.

4. Bibliografia TANENBAUM, Andrew S et al. Distributed Systems . Upper Saddle River: Prentice- Hall, 2002. 803p. RISSINO, Silvia. Universidade Federal de Rondnia [online]. Disponvel na internet via WWW. URL: http://www.unir.br/~rissino/sd/sd-parte1.pdf. Arquivo capturado em 12 de Setembro de 2003.