You are on page 1of 8

Sistemas Distribudos Aula 1 Introduo

35T34 3B2 Programa Introduo. Conceitos de sistemas distribudos. Comunicao em sistemas distribudos. Sincronizao em sistemas distribudos. Processos e processadores em sistemas distribudos. Sistemas de arquivos distribudos. Memria compartilhada distribuda. Segurana em sistemas distribudos. Outros tpicos. Referncias Tanenbaum, A.S. Distributed Operating Systems. Prentice-Hall International, 1995. Tanenbaum, A.S. Distributed Systems: Principals and Practice. Prentice-Hall International, 2002. Avaliaes 2 provas (3/5 e 9/6). 1 apresentao. Aulas Maro 29, 31 Abril 5, 7, 12, 14, 19, 26, 28 Maio 3, 5, 10, 12, 17, 19, 24, 31 Junho 2, 7, 9, 14, 16, 21, 23, 28, 30 Julho 5, 7, 12, 19 Introduo O que um sistema distribudo? uma coleo de computadores independentes que aparenta ser um nico computador aos seus usurios. Conceitos relacionados a hardware e software, respectivamente. Exemplos: Rede com estaes de trabalho e processadores stand-alone alocados por demanda com um sistema de arquivos unificado. Sistema bancrio com terminais espalhados geograficamente e um nico banco de dados.

Como se tornou possvel o surgimento desses sistemas? Computadores mais rpidos e baratos e o surgimento de redes de computadores de altavelocidade Objetivos Vantagens de sistemas distribudos sobre sistemas centralizados. Lei de Grosch O poder de computao de um computador proporcional ao quadrado do seu preo. (Aplicvel a mainframes). No caso de microprocessadores, mais barato se comprar vrios processadores e montlos em um sistema multi-processador. (preo) Em alguns casos, teoricamente impossvel de se construir um computador centralizado que possa ser comparado a um sistema distribudo com uma grande quantidade de processadores. (velocidade) Algumas aplicaes so inerentemente distribudas - sistema de uma cadeia de lojas, jogos ou outras aplicaes cooperativas. (distributividade inerente) Maior confiabilidade, til em aplicaes de alto risco. (confiabilidade) Crescimento incremental acaba com necessidade da compra de mainframes cada vez maiores, agora o sistema pode ser trocado aos poucos. (crescimento incremental) Vantagens de sistemas distribudos sobre micros independentes: Compartilhamento de dados. (colaborao e preo) Compartilhamento de dispositivos. (preo) Comunicao. Mistura de computadores pessoais e compartilhados pode permitir uma distribuio de tarefas mais eficiente. (flexibilidade) Desvantagens de sistemas distribudos: Software sistemas operacionais, linguagens de programao e aplicaes. Comunicao tratamento e recuperao de mensagens. Melhoria da rede pode acarretar em custos altos. Segurana Compartilhamento de dados implica em esquemas especiais para proteo de dados sigilosos. Ideal Pessoas trabalhando juntas e compartilhando informaes sem se preocupar com distribuio fsica dos dados, mquinas e outros usurios.

Conceitos de Hardware
Tanenbaum prope a diviso de mquinas MIMD (mltiplas instrues e mltiplos dados) em multiprocessadores, que usam memria compartilhada e multicomputadores que possuem somente memria prpria. Exemplos de multiprocessadores e

multicomputadores. Outra subdiviso dessa classificao em sistemas com barramento ou switches (ligaes ponto-a-ponto). Outro ponto da taxonomia de Tanenbaum a caracterizao dos sistemas pelo grau de ligao entre as mquinas, que podem ser fortemente acopladas ou fracamente acopladas. Mquinas fortemente acopladas possuem um baixo retardo no envio de mensagens e uma alta taxa de transmisso, o oposto de mquinas fracamente acopladas. Geralmente, sistemas fortemente acoplados so usados como sistemas paralelos, trabalhando em um nico problema enquanto que sistemas fracamente acoplados so utilizados como um sistema distribudo, trabalhando em diversos problemas. Geralmente multiprocessadores so sistemas fortemente acoplados enquanto que multicomputadores so sistemas fracamente acoplados.

Multiprocessadores baseados em barramento. Consiste em um nmero de CPUs (que pode ter alguma memria local - cache) ligadas atravs de um barramento. Sem caches locais, o barramento tende a ser sobrecarregado rapidamente. Soluo: adicionar caches locais. Novo problema: A coerncia dos dados que esto armazenados em cada cache fundamental. Cache write-trough: Toda escrita na cache acarreta em escrita na memria. Escritas sempre geram trfego no barramento, enquanto que leituras s geram trfego quando a palavra no est na cache (cache miss). Para manter a consistncia, as outras caches escutam o barramento e invalidam as posies que so escritas por outras caches na memria (snoopy caches). Um design deste tipo coerente e invisvel ao programador. um esquema difcil de funcionar com um grande nmero de processadores.

Multiprocessadores com switch. Podem ser usados com barras cruzadas ou com pontos de cruzamento. Memrias so localizadas de um lado e os processadores do outro. Caminho em uma comunicao switched e a memria em questo tem o acesso bloqueado para os outros processadores. Nmero de switches pode tornar custo do sistema proibitivo. Rede mega diminui nmero de switches necessrios de n2 para n log2n. O retardo em redes megas com muitos nveis pode se tornar considervel, ou o seu custo caso switches ultra-rpidos sejam utilizados. Soluo: contruir um sistema que use uma hierarquia de memrias. Um design deste tipo o NonUniform Memory Access (NUMA) onde cada CPU tem uma memria local alm

de memrias que servem a vrias CPUs. O retardo diminui, mas a localizao de software se torna crucial para o bom funcionamento do sistema. Concluso: construir um grande sistema de multiprocessadores fortemente acoplados com memria compartilhada possvel, mas muito caro e complicado.

Multicomputadores baseados em barramento. Conjunto de CPUs com memria local trocando mensagens atravs de um barramento. Rede local ou CPUs conectadas com um barramento rpido. Multicomputadores com switch. CPUs tem um certo nmero de conexes para outras CPUs e mensagens so trocadas atravs de CPUs que intermediam a comunicao quando necessrio. Abaixo esto as topologias de grid e hipercubo. No grid, nmero de conexes e nmero mximo de passos em uma comunicao cresce com a raiz quadrada do nmero de CPUs enquanto que no hipercubo esse nmero cresce com o logaritmo do tamanho. Atualmente j so usados grids com dezenas de milhares CPUs. A Teragrid conecta milhares de computadores usando uma rede de 40 Gb/s.

Conceitos de Software

A imagem que o sistema apresenta aos usurios quase que completamente determinada pelo sistema operacional. Software fracamente acoplado (loosely-coupled) permite que mquinas e usurios sejam fundamentalmente independentes dos outros. Exemplo: LAN. Software fortemente acoplado (tightly-coupled) funciona como uma nica mquina. Exemplo: Computador multiprocessador que executa um programa de xadrez em paralelo. Existem 8 possveis combinaes de hardware e software, entretanto somente quatro so distinguveis pelos usurios j que os mesmos no tem a noo de qual tecnologia de interconexo est sendo utilizada (com barramento ou switches). Das 4 opes restantes, a combinao hardware fortemente acoplado (tightly-coupled) e software fracamente acoplado (loosely-coupled) no faz sentido, j que se estaria indo de encontro ao objetivo principal da construo de um SD. Sistemas operacionais de rede Loosely coupled comunicao explicitamente solicitada pelo usurio e se d atravs de troca de mensagens. A distribuio do sistema clara para o usurio. rlogin (ssh), rcp (scp). Servidores de arquivos fornecem arquivos a mquinas clientes. Usurios diferentes tem vises diferentes do sistema, devido a diferenas em como os sistemas de arquivo locais esto organizados, quais dispositivos locais as mquinas possuem, etc. Mquinas podem rodar diferentes verses de um mesmo SO ou at diferentes SOs desde que os protocolos de comunicao e servios sejam usados por todas as mquinas. A coordenao (mnima) de servios entre as mquinas feita atravs a aderncia aos protocolos. Sistemas distribudos verdadeiros As vezes so chamados de sistemas operacionais distribudos. Software fortemente acoplado (tightly-coupled) em um hardware fracamente acoplado (loosely-coupled). O objetivo a criao de uma iluso para os usurios que o sistema de multicomputadores funciona como uma grande mquina de tempo compartilhado. As vezes so referenciados como sistemas de imagem nica ou uniprocessador virtual. Caractersticas de SDs: Sistema de comunicao interprocessos nico, independente se os dois processos esto localizados na mesma mquina ou no. Esquema de proteo global. Gerenciamento de processos nico, isto , como eles so criados, destrudos, iniciados ou parados. A idia usada nos sistemas operacionais de rede de se estabelecer protocolos para a comunicao cliente-servidor no suficiente. Deve haver um nico conjunto de chamadas de sistema em todas as mquinas e as chamadas devem ser projetadas levando em conta o ambiente distribudo. Sistema de arquivos deve ter a mesma viso e regras em todas as mquinas. Segurana deve ser implementada em relao aos usurios e no as mquinas. Geralmente, o mesmo ncleo (kernel) roda em todas as mquinas, j que os mesmos implementam as mesmas funes e chamadas. Entretanto cada ncleo pode ter um

controle razovel sobre os recursos locais, por exemplo, no gerenciamento de memria, swapping, ou at escalonamento de processos, no caso de uma CPU possuir mais de um processo sendo executado. Sistemas multiprocessadores de tempo compartilhado Software fortemente acoplado (tightly-coupled) em um sistema fortemente acoplado (tightly-coupled). Exemplo: multiprocessadores rodando Unix. Implementao mais simples que um verdadeiro sistema distribudo devido ao projeto do SO poder ser centralizado. nico sistema de arquivos, e fila de execuo, que mantida em um espao de memria compartilhada. Somente uma cpia do SO executada, ao contrrio dos outros dois tipos de sistema. Como nenhuma CPU possui memria local e todos os programas so armazenados em memria global compartilhada. Teoricamente um processo que seja executado por um longo perodo passaria aproximadamente o mesmo tempo sendo executado em cada CPU do sistema, entretanto prefervel a execuo contnua na mesma CPU (caso esteja disponvel) devido a pater do espao de endereamento do processo permanecer na cache da CPU. Processos bloqueados esperando por E/S podem ser suspensos ou marcados como esperando (busy waiting), dependendo da carga total do sistema. Implementa um sistema de arquivos tradicional. Questes de Projeto 1- Transparncia. O objetivo final passar a impresso de um sistema nico aos usurios, logo a transparncia o aspecto mais importante em SOD. Transparncia pode ser atingida em dois nveis: Escondendo-se a distribuio dos usurios e escondendo-se a distribuio dos programas (muito mais difcil). Qual o significado de tranparncia? Transparncia de Acesso Esconde as diferenas de representao de dados e como os recursos so acessados. Transparncia de localizao Os usurios no sabem onde os recursos esto localizados. Transparncia de migrao Recursos podem ser movidos dentro do sistema sem que os usurios percebam. Transparncia de relocao Mudana de local de um recurso transparente aos usurios. Transparncia de replicao Usurios no sabem quantas cpias de um programa ou arquivo existem. Transparncia de concorrncia Vrios usurios dividem recursos sem saber. Transparncia de paralelismo Atividades ocorrem em paralelo ser que os usurios saibam. Muito complicado. Geralmente o usurio tem que programar sua aplicao para que ela tome vantagem do paralelismo do sistema. 2- Flexibilidade.

Utilizao de ncleos monolticos ou de micro-ncleos associados com servidores a nvel de usurio. O ncleo monoltico basicamente um SO com aplicaes de conexo via rede e a integrao de servios remotos. Sistemas adaptados do Unix utilizam essa abordagem, pois o Unix usa um ncleo monoltico. Os micro-ncleos so mais flexveis e implementam quatro servios: 1. Um mecanismo de comunicao inter-processo. 2. Algum gerenciamento de memria. 3. Um pouco de gerenciamento de baixo-nvel de processos e escalonamento. 4. Entrada e sada de baixo-nvel. A vantagem do micro-ncleo que altamente modular: existem interfaces bem definidas para cada servio e cada servio igualmente acessvel para cada usurio independente da localizao. Tambm facilita a implementao, instalao e depurao de novos servios - flexibilidade. O teste de um novo servio no acarreta em uma recompilao e reinicializao do ncleo. Usurios que no esto satisfeitos com os servios podem implementar os seus prprios servios.

Pode-se ter mais de um servidor de arquivos, com cada um funcionando com um formato. As nicas vantagens em potencial dos ncleos monolticos so a performance e o custo inicial, no entanto um estudo experimental comparando o Sprite com o Amoeba no mostrou diferenas significativas em performance e o vantagem de custo inicial do ncleo monoltico tende a desaparecer a medida que servios vo sendo implementados e/ou atualizados. 3- Confiabilidade. Um dos objetivos originais em se construir SODs era o de se obter um sistema mais confivel que sistemas com um nico processador. A idia e que se uma mquina quebra, outra mquina do sistema pode assumir as suas funes. Teoricamente, a confiabilidade total do sistema seria um OU das confiabilidades dos componentes. Um sistema distribudo um sistema onde eu no consigo trabalhar porque alguma mquina na qual eu nunca ouvi falar no est funcionando Leslie Lamport. Aspectos de confiabilidade: 1. Disponibilidade (availability). Replicao de dados pode melhorar disponibilidade.

2. Segurana. Mais problemtico do que em sistemas uniprocessador. 3. Tolerncia a falhas. desejvel que a ocorrncia de falhas seja transparente aos usurios. Servidores cooperativos podem ser usados para este fim. 4- Performance. Problema: comunicao entre CPUs (essencial em um SD) bem mais lenta que execuo nas CPUs, devido ao overhead de protocolos. Reduzir o nmero de mensagens? Seria bom se isso no afetasse a execuo paralela de processos, alm da confiabilidade. Uso de granularidade de paralelismo na alocao de processos. Processos com paralelismo fine-grained, isto , com um grande nmero de pequenas computaes devem ser executados localmente enquanto que os coarse-grained, com grandes computaes e pouca interao e dados so mais adequados a execuo em paralelo. 5- Capacidade de expanso (scalability). A maioria dos SDs so projetados para trabalhar com algumas centenas de CPUs. Solues viveis para sistemas com 200 mquinas podem falhar bisonhamente para um sistema com 200.000.000 mquinas. Arquiteto do sistema deve evitar tabelas (catlogo telefnico), componentes (servidor de correio eletrnico) e algoritmos (que necessitem de um servidor centralizado) centralizados. Algoritmos descentralizados tem as seguintes caractersticas: 1. Nenhuma mquina tem informao completa sobre o estado do sistema. 2. Mquinas tomam decises baseadas somente em informaes locais. 3. A quebra de uma mquina no faz com que o algoritmo falhe. 4. No trabalham com nenhuma suposio de que existe um clock global.

You might also like