Serviços de Nomes e Sincronização em Sistemas Distribuídos
Classificado em Computação
Escrito em em português com um tamanho de 3,93 KB.
Serviços de Nomes em Sistemas Distribuídos
Em Sistemas Distribuídos, um serviço de nomes permite que um serviço efetue uma operação sobre um objeto ou recurso nomeado que gerencia. Os nomes são vinculados ao valor de um atributo associado a um objeto. Quando os valores das operações são convertidos em dados para invocar uma determinada ação no sistema, dizemos que o nome é resolvido, ou seja, houve uma interpretação inicial do nome quando apresentado no contexto.
Tipos de Identificadores Uniformes de Recursos (URIs)
- Uniform Resource Locators (URL): São URIs que fornecem informações para localização de um recurso.
- Uniform Resource Names (URN): São URIs utilizados como nomes de recursos puros, em vez de localizadores.
Vantagens dos Nomes Hierárquicos
- Isolamento de Falhas: Falhas locais não afetam o serviço como um todo.
- Alto Grau de Escalabilidade: O sistema pode manipular um grande número de objetos (ex: endereços de e-mail de todos os usuários de computador do mundo).
- Alto Grau de Disponibilidade: Outros sistemas dependem do serviço de nomes; ele precisa estar sempre disponível.
A principal vantagem dos nomes hierárquicos é que cada parte de um nome é resolvida em relação a um contexto separado, e o mesmo nome pode ser usado com diferentes significados em diferentes contextos.
Aliases e Transparência
A razão para se ter aliases é propiciar transparência. Em geral, o uso de alias possibilita a presença de ciclos no espaço de nomes, caso em que a resolução de nomes poderá nunca terminar.
Domínio de Atribuição
É um espaço de nomes para o qual existe uma única autoridade administrativa global para atribuir nomes dentro dele. Essa autoridade tem o controle geral de quais nomes podem ser vinculados dentro do domínio, mas está livre para delegar essa tarefa.
Sincronização de Relógios em Sistemas Distribuídos
O problema da sincronização de relógios é baseado em uma limitação em nossa capacidade de indicar o tempo de eventos, em diferentes nós, de modo suficientemente preciso para saber a ordem em que quaisquer dois eventos ocorreram, ou se eles ocorreram simultaneamente. Não existe um tempo global absoluto ao qual possamos recorrer.
Dois eventos são simultâneos se o tempo entre suas ocorrências é menor que a resolução do relógio.
Distorção e Derivação de Relógios
A diferença instantânea entre as leituras de quaisquer dois relógios é chamada de distorção (skew). Derivação do relógio (drift) significa que eles contam o tempo com velocidades diferentes e, portanto, divergem. Enquanto a sincronização externa sincroniza os relógios dos processos em um sistema distribuído com uma fonte externa de referência, na sincronização interna os relógios são sincronizados entre si, com um grau de precisão conhecido.
Cálculo do Tempo de Ajuste
Um processo envia o tempo t de seu relógio para outro processo em uma mensagem m.
Seja u a incerteza no tempo de transmissão de uma mensagem: u = Tmax - Tmin
O processo destino configura seu relógio como: t+((Tmax + Tmin)/2)
Algoritmo de Cristian
Cristian sugeriu o uso de um servidor de tempo conectado a um dispositivo que recebe sinais de uma fonte UTC para sincronizar computadores externamente. Ao receber uma requisição, o processo servidor S fornece o tempo de acordo com seu relógio.
Algoritmo de Berkeley
Um computador é selecionado como mestre (coordenador) e os demais são denominados escravos. O mestre recebe os valores dos relógios dos escravos e calcula a média. Envia para cada escravo seu desvio em relação à média.