TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Sincronização De Relógios

Casos: Sincronização De Relógios. Pesquise 859.000+ trabalhos acadêmicos

Por:   •  18/11/2014  •  1.681 Palavras (7 Páginas)  •  409 Visualizações

Página 1 de 7

1 INTRODUÇÃO

Tanenbaum (2007) afirma que a sincronização em sistemas distribuídos em comparação com a sincronização em sistemas monoprocessadores ou multiprocessadores geralmente é muito mais difícil.

Em muitos casos é importante que um grupo de processos possa designar um processo como coordenador, através de algoritmos de eleição. Por exemplo, é importante que vários processos não acessem simultaneamente um recurso compartilhado como uma impressora ao invés disso cooperem a fim de garantir um ao outro acesso exclusivo de forma temporal (TANENBAUM, 2007).

Ao longo deste trabalho veremos como os processos podem sincronizar. É importante ressaltar que todo nosso trabalho está baseado no livro de Tanenbaum (2007) sobre sistemas distribuídos, pois acreditamos ser este o melhor autor nessa área.

2 SINCRONIZAÇÃO DE RELÓGIOS

Em sistemas centralizados, quando um processo quer saber a hora, ele faz uma chamada de sistema, e aguarda a resposta do núcleo. Segundo Tanenbaum (2007), se um processo A pergunta à hora e, mais tarde o processo B também perguntar, B obterá um valor mais alto ou igual ao valor que A recebeu, não havendo a possibilidade do valor de B ser mais baixo.

Tanenbaum (2007) cita como exemplo as implicações da falta de um horário global no programa make do Unix. No Unix, programas grandes geralmente são divididos em um arquivo-fonte, de tal forma que uma alteração em um arquivo fonte requer que somente um arquivo seja recompilado ao invés de todos. O funcionamento do make é muito simples. Após o programador terminar de alterar todos os arquivos-fonte, o make é executado, para que ele examine os horários em que todos os arquivos-fonte e arquivos-objeto foram modificados da última vez. Se o horário do arquivo-fonte input.c for 2151 e o horário do arquivo-objeto input.c for 2150, o make saberá que input.c sofreu alterações a partir do momento em que input.o foi criado e, assim que input.c deverá ser recompilado. Em contrapartida, se o horário de output.o for 2145, nenhuma compilação se faz necessária. Por isso que o make percorre todos os arquivos-fonte a fim de descobrir quais necessitam ser recompilados para posteriormente chamar o compilador para fazer isso.

Tanenbaum (2007) faz um comentário acerca do que poderia acontecer em um sistema distribuído que não tivesse nenhum acordo global sobre horários. Ele supõe que o horário de output.o seja 2144 e logo depois, output.c sofra uma modificação, porém recebeu o horário 2143 porque o relógio de sua máquina estava um pouco atrasado conforme mostra a figura 2.1. Nesse caso o Make não chamará o compilador. Nesse caso o programa binário executável resultante conterá uma mistura de arquivos-objeto dos fonte antigos e de fonte novos. Dessa forma ele provavelmente falhará, trazendo dor de cabeça ao programador que ficará confuso na tentativa de descobrir onde está o erro.

Figura 2.1: Sistema distribuído sem acordo global de horários

Fonte: Tanenbaum (2007)

A figura 2.1 mostra que quando cada máquina tem seu relógio próprio, um evento que ocorreu após o outro evento pode mesmo assim receber um horário anterior.

3 RELÓGIOS FÍSICOS

O circuito que os computadores utilizam para monitorar a passagem do tempo é chamado de relógios, mas na verdade a palavra correta seria temporizador (TANENBAUM, 2007).

Um Temporizador de computador é um cristal de quartzo. Quando mantidos sob tensão, esses cristais oscilam a uma frequência bem definida, dependente do tipo de cristal, e de como ele foi lapidado e da magnitude da tensão. Associados com cada cristal existem dois registradores, um registrador de retenção e um contador. Cada oscilação do cristal causa uma redução na unidade do controlador, e quando o contador chega a zero uma interrupção é gerada, e o contador é recarregado por meio do registrador de retenção. Dessa maneira, torna-se possível programar um temporizador capaz de gerar uma interrupção 60 vezes por segundo. Esta interrupção é chamada de ciclo de relógio (TANENBAUM, 2007).

Ao ser iniciado, o sistema solicita ao usuário que digite a data e a hora, que são automaticamente convertidas para o número de ciclos de relógios após alguma data inicial conhecida que esteja armazenada na memória. O relógio (de software) é mantido atualizado porque a cada ciclo de relógio, o procedimento do serviço de interrupção soma uma unidade à hora armazenada na memória (TANENBAUM, 2007).

Com um único relógio de um computador não há problema se o relógio estiver defasado, pois uma vez que todos os processos na máquina usam um único relógio, eles serão sempre consistentes (TANENBAUM, 2007).

Ocorre uma mudança radical ao serem introduzidas CPUs múltiplas, cada uma com seu próprio relógio. Pois embora a frequência que o oscilador de cristal funciona seja em geral razoavelmente estável, é muito difícil garantir que todos os cristais em computadores diferentes funcionem de forma igual. Isso quer dizer que quando um sistema tem n computadores, os cristais de todos eles funcionarão a taxas um pouco diferentes, fazendo com que os relógios (de softwares) siam de sincronia e informem valores diferentes. Essa diferença dos valores é chamada de defasagem de relógio, responsável por causar falhas em programas que esperam que o horário associado com o arquivo ou processo estejam corretos (TANENBAUM, 2007).

4 ALGORITMOS DE SINCRONIZAÇÃO DE RELÓGIOS

Quando uma máquina possui um receptor WWV, o objetivo é manter todas as outras máquinas sincronizadas com ela. Se nenhuma máquina possuir receptores WWV, cada uma monitora seu próprio relógio com o objetivo de manter todas as máquinas o mais juntas possível. Para isso muitos algoritmos foram feitos para fazer essa sincronização (TANENBAUM, 2007).

Todos os algoritmos possuem o mesmo modelo subjacente do sistema. E cada computador possui um temporizador que causa uma interrupção H vezes a cada segundo. Para Tanenbaum (2007), quando o temporizador esgota o tempo fixado, o manipulador de interrupção adiciona 1 a um relógio de software que observa as interrupções que ocorrem a partir do instante determinado com o qual todos concordaram anteriormente. Se chamarmos de C o valor desse relógio, quando a hora UTC é t, o valor do relógio na máquina p é Cp(t). Teríamos então Cp(t) = t para todo p e todo t. É importante saber que C’p(t) é a frequência do relógio de p’s no tempo t, e C’p(t) – 1 é a defasagem

...

Baixar como (para membros premium)  txt (10.5 Kb)  
Continuar por mais 6 páginas »
Disponível apenas no TrabalhosGratuitos.com