Sistemas Distribuídos. Aleardo Manacero Jr. - PDF Free Download
Download "Sistemas Distribuídos. Aleardo Manacero Jr."
Afonso Diegues Ribeiro
1 Sistemas Distribuídos Aleardo Manacero Jr.
2 Conteúdo Conceitos fundamentais Estratégias de controle: relógios e algoritmos de sincronismo Serviços: arquivos e memória Corba Processamento distribuído
3 Sistemas Distribuídos: o que são? São sistemas caracterizados pelo acesso simplificado a recursos distribuídos numa rede de computadores Isso implica em compartilhamento de recursos, concorrência e necessidade de mecanismos de comunicação
4 Qual a diferença para redes? Uma rede de computadores é a base para o funcionamento de um sistema distribuído (SD daqui por diante) A diferença está no conceito de transparência
5 Transparência O conceito de transparência é essencial num SD Na prática ele assume diferentes formas, como transparência de: Acesso Localidade Execução
6 Transparência de acesso Um SD deve proporcionar aos seus usuários a mesma facilidade de acesso, independentemente do ponto do sistema em que isso ocorre Isso deve ser feito independentemente do SO nativo na máquina em que o usuário fizer o acesso
7 Transparência de Localidade Os arquivos num SD estão espalhados entre vários (senão todos) os nós da rede Devem, entretanto, ser acessados pelos usuários da mesma forma, independentemente do local em que o usuário ou o arquivo está
8 Transparência de execução A execução de processos num SD deve ocorrer de forma a maximizar o uso dos recursos e, se possível, a velocidade do sistema Isso implica em executar o processo no local mais adequado, independentemente do ponto em que foi requisitado e do ponto em que os arquivos estão
9 Paralelismo Uma conseqüência da transparência de execução é o paralelismo de processos Num SD, sempre que possível, os processos são executados em paralelo para aproveitar melhor os recursos do sistema
10 A base É formada pelas redes de comunicação de computadores Isso nos reforça a necessidade de entender bem o funcionamento dos protocolos de comunicação, tal como o TCP/IP, por exemplo
11 A base O uso de redes de computadores é a base para a obtenção de transparência Ela permite a realização de operações de migração (dados, código ou processos), para a atender aos requisitos de mobilidade necessários para a transparência
12 O que é migração? É o ato de transportar arquivos entre máquinas do SD, o que implica em: Trazer dados de sua residência para o local em que são necessários, ou Levar o código para o local em que estão os dados a serem manipulados, ou Mudar a execução de um processo (dados e código) para melhor aproveitar os recursos do sistema
13 Relógios e sincronismo Num SD cada máquina possui seu próprio relógio Isso impede o uso desse mecanismo, em sua forma natural, como elemento para a coordenação entre processos executando em máquinas distintas
14 Diferenças entre relógios Podem surgir por deslocamento (clock drift) ou o ato de adiantar/atrasar ao longo do tempo Ou por instantâneos (clock skew) ou a diferença entre relógios num dado instante
15 Tratamento de relógios Do ponto de vista de hardware, a sincronização entre relógios pode ser obtida através da coordenação com um tempo universal Esse é o conceito por trás do relógio UTC, Tempo Universal Coordenado, que estabelece um padrão mundial para tempo
16 Sincronismo externo Ocorre quando todos os relógios do SD estão sincronizados com um relógio UTC, dentro de um limite de precisão δ É importante para o relacionamento entre o SD e o restante dos sistemas na internet
17 Sincronismo interno Ocorre quando todos os relógios do SD estão sincronizados entre si, dentro de um limite de precisão δ É importante para o relacionamento entre as máquinas do SD, sem a necessidade de informações externas
18 Método de Cristian Método sugerido por F. Cristian, em 1989, baseado mo tempo obtido por servidor de UTC Usa conceito probabilístico para corrigir o valor de tempo recebido do servidor (atraso criado pelo intervalo consumido na transmissão da informação de tempo)
19 Algoritmo de Berkeley Parte do ponto oposto do sistema, ou seja, é o servidor de tempo quem busca pelas informações de tempo O tempo é ajustado internamente, pela média corrigida (atrasos) dos valores de tempo recebidos Clientes recebem qual o skew entre eles e a média
20 NTP Cuida do ajuste de relógios através da internet Usa uma estrutura hierárquica em árvore, em que o servidor na raiz recebe ajuste por servidor de UTC Demais servidores, nos níveis inferiores, se ajustam através do tempo informado por seus pais na árvore
21 Relógios lógicos Parte do princípio de que é virtualmente sincronizar perfeitamente os relógios num SD Trabalha então com o conceito de um relógio baseado na ordem de ocorrência de eventos em cada máquina do sistema
22 Relógios lógicos Relação de precedência de eventos para relógios lógicos implica em: e e se e visto antes pelo processo que as disparou send(m) receive(m) Se e e e e e, então e e
23 Relógios lógicos (Lamport) Implementação é feita considerando: L i é incrementado antes da ocorrência de cada evento no processo P i Sempre que P i envia uma mensagem, o valor de L i é acrescentado a ela Sempre que P i recebe uma mensagem (m,t), seu relógio é ajustado de forma a que L i = max(l i, t)
24 Relógios lógicos (Mattern) Implementação é feita considerando: Usa um vetor de timestamps V i [i] é incrementado antes da ocorrência de cada evento no processo P i Sempre que P i envia uma mensagem, o vetor V i é acrescentado a ela Sempre que P i recebe uma mensagem (m, V j, t), seu vetor é ajustado de forma a que V i [j]= max(v i [j], t[j])
25 Coordenação e acordos Envolve um conjunto de algoritmos para tratar de problemas relacionados a: Compartilhamento de recursos distribuídos Possibilidade de falhas em servidores de serviços
26 Exclusão mútua Em um SD também existe o problema de tratar o acesso exclusivo a determinados recursos compartilhados Em máquinas de memória compartilhada isso é resolvido facilmente através de semáforos e alguns outros mecanismos Isso não é verdade para um SD
27 Exclusão mútua Em SDs não existe a possibilidade do uso de uma única variável para esse controle Várias soluções foram propostas para esse problema, usando critérios diferentes para a ordenação dos pedidos
28 Servidor centralizado Aqui o princípio é deixar um servidor responsável pelo acesso à região crítica Ele recebe as requisições dos demais processos e as serializa O acesso é garantido a um processo por vez, na ordem em que ele aparece na fila do servidor
29 Algoritmo em anel Aqui é criado um anel lógico entre os processos A concessão (token) de acesso à região crítica é passado, então, através desse anel
30 Algoritmo de Ricart/Agrawala Envolve o envio de mensagem de requisição por multicast A entrada na RC é obtida após receber resposta de todos os demais processos Cada processo responde ao pedido a partir dos valores dos relógios lógicos envolvidos (local e requisitantes)
31 Algoritmo de Maekawa Envolve o envio de mensagem de requisição por multicast A entrada na RC é obtida após receber resposta de parte dos demais processos Condições de corrida são resolvidas pela intersecção entre alguns dos processos que recebem as requisições
32 O problema da eleição Em determinadas situações é necessário que uma certa funcionalidade (ou serviço) seja exercido por apenas um processo Nesses casos é necessária a realização de uma eleição para a escolha de quem exercerá essa função
33 Algoritmo em anel Um processo dispara a eleição através de uma mensagem com sua identificação Os demais processos continuam a transmissão da mensagem original ou trocando a identificação do processo eleito, até fechar a volta no anel
34 Algoritmo bully Trabalha com três tipos de mensagens: Eleição Resposta Coordenação Exige o conhecimento dos identificadores dos processos e usa isso como regra de ação
35 O problema da eleição Em determinadas situações é necessário que uma certa funcionalidade (ou serviço) seja exercido por apenas um processo Nesses casos é necessária a realização de uma eleição para a escolha de quem exercerá essa função