1 de 9 Sistemas Distribuídos O que é um sistema distribuído? Um conjunto de computadores autonomos a) interligados por rede b) usando um software para produzir uma facilidade de computação integrada. Qual é o tamanho de um sistema distribuído? LAN - Local Area Network (10's de hosts) MAN - Metropolitan Area Networks (100's de hosts) WAN - Wide Area Networks (internet) (1000's or 1,000,000's of hosts) Um Sistema Distribuído Simples Quais aplicações são atualmente distribuídas? Por que elas são distribuídas? Exemplos Sistema UNIX distribuído Aplicações em redes de longa distância - WAN email - correio eletrônico bbs - bulletin board systems netnews - grupo de discussões de um assunto específico gopher - serviço de recupera ção de textos WWW - world wide web multimidia/teleconferencia usando a rede
2 de 9 Exemplo Automação Bancária Características principais de sistemas distribuídos 1. Compartilhamento de Recursos 2. Sistema Open 3. Concorrencia 4. Escalabilidade 5. Tolerancia a Falha 6. Transparencia Compartilhamento de Recursos Recursos: hardware - discos e impressoras software - arquivos, janelas, e objetos de dados Compartilhamento de Hardware para: conveniencia redução de custo Compartilhamneto de dados para: consistencia - compiladores e bibliotecas trocas de informaçõ es - base de dados trabalho cooperativo - groupware Gerenciamento de Recursos Modulo de Software que gerencia um conjunto de recursos
3 de 9 Cada Recursos requer suas politicas e seus metodos de gerenciamento. Modelo Cliente Servidor - O processo servidor atua como um gerenciador de recursos para um conjunto de recursos e um conjunto de clientes Modelo Baseado em Objetos - recursos são objetos que podem ser passados O gerenciador do objeto pode ser movel. A solicitação para uma fun ção ser executada em um objeto é enviada para o gerenciador do objeto. O gerenciador precisa ser colocado junto com o Objeto. Exemplos: ARGUS, Amoeba, Mach, Melhorias com facilidades de migra ção - Arjuna, Clouds, Emerald Sistemas Abertos Como pode ser a abrang ência. Aberto ou Fechado com respeito ao hardware ou software Aberto - Especificaçõ es e interfaces públicos - Padronização de Interfaces UNIX é um sistema operacional relativamente aberto Linguagem C facilmente disponivel Chamadas de Sistema documentadas Novos drivers de hardware são faceis de serem adicionados Aplicações são independentes do hardware A comunicação entre processos permite extensões de serviços e recursos Sistemas Distribuídos Abertos Especificações são publicadas Provê uma comunicação uniforme interprocessos e as interfaces de acesso são publicas. É necessario testar e certificar estes padrões publicados pelos fornecedores se queremos ter certeza que os usuários não terão problemas com integração dos sistemas. Concorrencia Multi -programação Multi -processamento Execução Paralela en sistemas distribu ídos 1. Muitos usuários usando o mesmo recurso, interação entre as aplicações 2. Muitos servidores respondendo as requisições de clientes. Escalabilidade Como o sistema trata crescimento Sistema pequeno - Dois computadores e um servidor de arquivos em uma unica rede. Sistema grande - A internet atual Escalabilidade
4 de 9 - O software não necessita ser alterado para suportar crescimento - Area de pesquisa - Para redes de alta performance e grandes Evitar a centralização para suportar e escalabilidade Escolha seu esquema de nome e numera ção cuidadosamente Tratamento de problemas de tempo com cache e replicação de dados Tolerancia a Falhas Computadores falham e então necessitamos: redundancia de hardware recupera ção de software Aumento na disponibilidade dos serviços. A rede normalmente n ão é redundante Recuperação de programa via grupo processo Transparencia transparencia de acesso localização concorrencia replicação falhas migração performance escalonamento Principais características dos Sistemas Distribuídos 1. Compartilhamento de Recursos 2. Sistema Aberto 3. Concorrencia 4. Escalabilidade 5. Tolerante a falhas 6. Transparencia Objetivos principais do projeto Alta Performance Confiabilidade Escalabilidade Consistencia Segurança Especificações basicas do projeto Controle de nomes comunicação estrutura de software alocação da carga de trabalho manutenção da consistencia
5 de 9 Controle de Nomes Identificador da Comunicação Serviço de nomes Resolução de nomes contextual Mapeamento de nomes Nomes puros versus nomes com significados Communicação Razões para a comunicação: transferencia de dados sincronização Metodos de comunicação passagem de mensagens - primitivas de send e receive sincrono ou assincrono. bloqueando ou não bloqueando mecanismos de passagem de mensagem - canais, sockets, portas modelo de comunicação cliente-servidor modelo de comunicação em grupo multicast Comunicação Cliente- Servidor Grupo Multicast
6 de 9 Estrutura de Software Alocação de Carga de Trabalho Modelo servidor Workstation Modelo pool de Processador Multiprocessador com memória compartilhada. Modelo servidor Workstation
7 de 9 Modelo pool de Processador Multiprocessador com memória compartilhada
8 de 9 Manutenção da Consistencia Consistencia na Atualização - altera ções precisam ser atomicas Consistencia na Replicação - dados precisam ser consistentes Consistencia de Cache (cache coherency) - Retenção de recursos parciais para uso local pelo cliente - Sem utilidade dependendo do principio de localização Consistencia de Falha - recupera ção via operação rollback Consistencia de Clock - uso de timestamping and relogios l ógicos Consistencia de Interface do Usuario - Ação versus demora no processamento, demora < 0.1 segundo requerida Requisitos exigidos pelo Usuário Funcionalidade Reconfigurabilidade Qualidade de Serviço Funcionalidade Como um mínimo: Sistemas Distribuídos precisam no m ínimo prover as funçõ es de um único computador Melhorias: - Compartilhamento de recursos - hardware - Ultilização de recursos distribuidos para processamento paralelo e tolerancia a falha Ambiente de Trabalho Cooperativo Caminhos da migração de computador único para sistemas distribuídos 1. Adaptar o sistema operacional existente 2. Mudança para um novo sistema projetado para sistemas distribu ídos 3. Emulação de sistemas antigos em novos sistemas (mais pratico) Reconfigurabilidade
9 de 9 Mudanças de curto-termo Falha em processos ou componentes Carga computacional alterada Caching e migração de processos (redução da carga da rede) Evolução de medio para longo termo Novas Maquinas Novos Serviços Alteraçõ es nos parâmetros das maquinas Alteraçõ es nos recursos das maquinas existentes Qualidade de Serviço (QOS) Usuarios necessitam garantias Performance Confiabilidade Disponibilidade Segurança