SISTEMAS DISTRIBUIDOS Aula 3 Eduardo Silvestri [email protected] www.eduardosilvestri.com.br Prof. Silvestri – todos os direitos reservados Desempenho de um S.D. Os elementos estação de trabalho, servidor e rede de comunicação são considerados os mais relevantes para análise de desempenho de um Sistema Distribuído. O desempenho individual de cada elemento é diretamente influenciado pelos demais, como pode ser observado nas seguintes situações: Prof. Silvestri – todos os direitos reservados Desempenho de um S.D. • Servidores com grande capacidade de processamento, meio de comunicação de alta velocidade de estações de trabalho com baixa capacidade de processamento: as estações de trabalho não conseguem processar as informações na mesma velocidade em que estas chegam e, com isso, o tempo de resposta observado pelos usuários não é satisfatório, considerando-se as características dos servidores e do meio de comunicação. Prof. Silvestri – todos os direitos reservados Desempenho de um S.D. • Estações de trabalho com grande capacidade de processamento, meio de comunicação de alta velocidade e servidores com baixa capacidade de Processamento em relação à carga de trabalho: as estações de trabalho precisam esperar as informações requisitadas aos servidores para continuar o processamento do job e, com isso, o tempo de resposta observado pelo usuário também não é satisfatório, considerando-se as características das estações de trabalho e do meio de comunicação. Prof. Silvestri – todos os direitos reservados Desempenho de um S.D. • Servidores e estações de trabalho com grande capacidade de processamento e meio de comunicação de baixa velocidade: o tempo gasto na transmissão das informações degrada o tempo de resposta, tornando-o pouco satisfatório considerando-se as características dos servidores e das estações de trabalho Prof. Silvestri – todos os direitos reservados Processamento Distribuído É um tipo de processamento descentralizado em que os computadores comunicam-se uns com os outros através de vários meios de comunicação tais como barramentos de alta velocidade ou linhas telefônicas. Eles não compartilham nem a memória principal e nem o processamento das informações. Prof. Silvestri – todos os direitos reservados Processamento Distribuído Os processadores em um sistema distribuído podem variar em tamanho e função. Podem incluir pequenos microcomputadores, estações de trabalho, minicomputadores e sistemas de computadores de uso geral. Esses processadores são chamados por diversos nomes tais como: nós, locais(sites) e computadores. Prof. Silvestri – todos os direitos reservados Software Distribuído Dos quatro elementos de um sistema que podem estar distribuído - hardware, dados, programas e controle -, os três últimos referem-se ao software. A distribuição de dados levou ao desenvolvimento de uma área bastante extensa, envolvendo sistemas de arquivos distribuídos, e sistemas de banco de dados distribuídos. A seguir, consideramos os aspectos de distribuição de controle, cuja influência no desenvolvimento de sistemas operacionais tem sido determinante. Prof. Silvestri – todos os direitos reservados Software Distribuído Para iniciarmos o estudo da distribuição de programas (algoritmos), é necessário que sejam abordados os seguintes tópicos: • um programa é dito distribuído se estiver espalhado por vários ambientes, ou seja, se alguns processadores (ambientes) não puderem executar alguns passos do programa, pelo fato de eles pertencerem a outros ambientes; Prof. Silvestri – todos os direitos reservados Software Distribuído • qualquer programa seqüencial ou paralelo pode ser um programa distribuído.Diante disso, um programa será distribuído se puder ser estruturado em partes, formadas por grupos de instrução e conhecidas como componentes do programa, colocadas de forma que cada parte só possa ser executada pelo processador a ela associado. Os componentes do programa separados pelo subsistema de comunicação são conhecidos como remotos uns aos outros. Prof. Silvestri – todos os direitos reservados Software Distribuído A troca de informações entre componentes remotos do sistema deverá ocorrer por transferência de mensagens,através do meio de comunicação. Como exemplo de programa distribuído pode-se citar o programa seqüencial formado por um programa principal e sua sub rotina, localizados de forma a serem remotos um ao outro. Prof. Silvestri – todos os direitos reservados Estruturação de S.D. Distribuição Física Dentre os vários modelos baseados da distribuição física, encontram-se o modelo hierárquico, o do cache de CPU, o usuário servidor e o modelo de conjunto de processadores. No modelo hierárquico, os computadores são dispostos em uma rede sob a forma de árvore, de maneira que quanto mais próximos estiverem da raiz, mais potentes deverão ser. O computador da raiz tratará, de forma geral, do sistema como um todo, enquanto que os computadores distantes da raiz tratarão de tarefas específicas e especializadas. Prof. Silvestri – todos os direitos reservados Estruturação de S.D. Distribuição Física O modelo de cachê de CPU consiste na utilização de computadores de menor porte como elementos que interligam terminais com uma grande CPU. Nesse caso, uma parte do processamento será executada no computador ligado ao terminal, e a outra parte no computador central. Prof. Silvestri – todos os direitos reservados Estruturação de S.D. Distribuição Física O modelo usuário-servidor surgiu na medida em que os computadores pequenos, crescendo em potência e tendo seus preços reduzidos, diminuíram gradativamente a importância do computador central do modelo cache de CPU. Prof. Silvestri – todos os direitos reservados Estruturação de S.D. Distribuição Lógica – Modelo de Processos Esses processos podem encapsular tanto elementos ativos com natureza, consistindo dos programas referentes às atividades do sistema e do usuário quanto elementos naturalmente passivos correspondendo aos recursos e suas respectivas operações,confinados em gerenciadores de recursos. A comunicação entre os processos, implementada pelo sistema operacional, pode ocorrer de duas formas: Prof. Silvestri – todos os direitos reservados Estruturação de S.D. Distribuição Lógica – Modelo de Processos • Chamada remota de procedimento: este tipo de comunicação entre processos é bastante dependente da linguagem usada para implementação do sistema, devendo satisfazer suas restrições com relação a chamada de procedimento e a passagem de parâmetros. Prof. Silvestri – todos os direitos reservados Estruturação de S.D. Distribuição Lógica – Modelo de Processos • Troca explícita de mensagem: este já é mais flexível do que o anterior, suas restrições estão relacionadas com a existência de ligações implícitas ou explícitas entre os processos e com a interpretação da mensagem. Prof. Silvestri – todos os direitos reservados Estruturação de S.D. Distribuição Lógica – Modelo de Objetos O modelo de objetos baseia-se no encapsulamento das várias partes de um sistema em elementos denominados objetos que são estruturados de forma a apresentarem um conjunto de operações responsáveis pelo seu comportamento. Para conseguir acessar um objeto, um processo deve ter capacidade de fazê-lo, usando o conhecimento do nome do objeto e a posse da autorização para cessar algumas ou todas as suas operações. Prof. Silvestri – todos os direitos reservados COMPARTILHAMENTO DE DADOS Permitir o compartilhamento de informações armazenadas em um sistema de arquivos distribuído. Prof. Silvestri – todos os direitos reservados COMPARTILHAMENTO DE DADOS ATRAVÉS DE REPLICAÇÃO Vantagens: - Desempenho Balanceamento da carga e do tráfego na rede. - Transparência de localização / replicação As informações poderão ser acessadas de diversas localidades. - Tolerância a falhas (backup’s de dados) Automaticamente existem backups das informações. Prof. Silvestri – todos os direitos reservados COMPARTILHAMENTO DE DADOS ATRAVÉS DE REPLICAÇÃO Prof. Silvestri – todos os direitos reservados COMPARTILHAMENTO DE DADOS ATRAVÉS DE REPLICAÇÃO Propagação da atualização Como manter as diversas cópias replicadas consistentes quando ocorre uma atualização dos dados em uma dessas cópias? Prof. Silvestri – todos os direitos reservados COMPARTILHAMENTO DE DADOS ATRAVÉS DE REPLICAÇÃO Método de replicação da cópia principal: Determina inicialmente qual das cópias replicadas irá ser a principal. O acesso de leitura poderá ser realizado em qualquer uma das cópias, porém o acesso para atualização somente será efetuada na cópia principal. Prof. Silvestri – todos os direitos reservados COMPARTILHAMENTO DE DADOS ATRAVÉS DE REPLICAÇÃO Método eletivo da cópia principal: Todas as cópias estão disponíveis para leitura. Ao necessitar um acesso para atualização, será escolhido uma das cópias para ser o Principal e permitir a gravação. Após esse acesso, as cópias passaram a serem todas secundárias. Prof. Silvestri – todos os direitos reservados COMPARTILHAMENTO DE DADOS ATRAVÉS DO CACHE Permitindo que acessos repetitivos a uma mesma informação sejam tratados localmente. Cache Área de armazenamento com acesso rápido p/ dados mais recentemente utilizados. Prof. Silvestri – todos os direitos reservados COMPARTILHAMENTO DE DADOS ATRAVÉS DO CACHE Prof. Silvestri – todos os direitos reservados COMPARTILHAMENTO DE DADOS ATRAVÉS DO CACHE Consistência dos dados localizados no cachê quando as informações são alteradas no arquivo original armazenado no servidor, todas as cópias desses dados armazenadas nos cachês ficam inconsistentes, isto é, se tornam uma "cópia suja" (dirty block) Prof. Silvestri – todos os direitos reservados COMPARTILHAMENTO DE DADOS ATRAVÉS DO CACHE Exemplo de geração de dados "sujos": 1ª etapa - cliente 1 processa o arquivo A deixando-o na sua memória cachê. 2ª etapa - cliente 2 processa o arquivo A atualizando-o no servidor. 3ª etapa - cliente 1 necessita acessar novamente o arquivo A. Prof. Silvestri – todos os direitos reservados COMPARTILHAMENTO DE DADOS ATRAVÉS DO CACHE questão: Como identificar que a versão do cachê que está no cliente 1 não está atualizada? solução: sempre que for acessar dados no cachê, verifica antes se a data/hora de atualização dos dados que estão no servidor é igual a dos dados que estão armazenadas no cachê. Prof. Silvestri – todos os direitos reservados Dúvidas ? Prof. Silvestri – todos os direitos reservados Publicação 1. Mapa Conceitual da Aula. Prof. Silvestri – todos os direitos reservados Perguntas ?????????? 1. Quais são os elementos que afetam o desempenho de um sistema distribuído ? Explique. 2. O que é Processamento Distribuído ? 3. O que é um software distribuído ? 4. Quando um programa é dito distribuído ? 5. O que é uma estruturação física de um sistema distribuído ? 6. O que é uma estruturação lógica de um sistema distribuído ? 7. O que é uma estruturação lógica pelo modelo de processos ? 8. O que é uma estruturação lógica pelo modelo de objetos ? 9. Como pode ser feito o compartilhamento de dados em sistemas distribuídos ? Prof. Silvestri – todos os direitos reservados