Aula 1 - Sistemas Distribuidos

download Aula 1 - Sistemas Distribuidos

of 11

Transcript of Aula 1 - Sistemas Distribuidos

19/05/2011

Sistemas DistribuidosProf. Wellington da Rocha Gouveia

Introduo

A prpria evoluo da tecnologia dos computadores explica a evoluo dos sistemas distribudos 1945 a 1985 tnhamos a presena de computadores grandes e de custo elevado que trabalhavam de maneira independente por no haver uma forma confivel de conect-los Mainframes imperavam e ainda imperam em muitas atividadescomerciais, tai

de 1985 (aproximadamente) em diante avano tecnolgico provocou mudanas importantes em dois pontos principais:

1. Desenvolvimento de microcomputadores com maior poder computacional (CPUs de 8,16, 32 e 64 bits, hoje com HyperThreading e as novas tecnologias de mltiplos ncleos) a um preo mais atraente. O que antes parecia fico passou a ser realidade. Voc vai a um supermercado e sai de l com um supercomputador (um computador de 4 ncleos vendido atualmente em redes de lojas de departamento e tambm supermercados)

2. Surgimento e evoluo muito rpida das redes de alta velocidade e, por conseqncia disso, dos SISTEMAS DISTRIBUDOS. Tanto LANs (redes locais) quanto WANs so infra-estruturas essenciais para que um Sistema Distribudo seja implementado.

1

19/05/2011

O que um Sistema Distribudo Para termos uma definio mais precisa de Sistema Distribudo, vamos recorrer s definies que Andrew Tanembaum e George Couloris usam

Definio

Segundo Coulouris, um Sistema Distribudo uma coleo de computadores autnomos interligados atravs de uma rede de computadores e equipados com software que permita o compartilhamento dos recursos do sistema: hardware, software e dados

J segundo Tanembaum, um Sistema Distribudo uma coleo de computadores independentes que se apresenta ao usurio como um sistema nico e consistente

Portanto, mesclando as duas diferentes abordagens, podemos definir um SD como uma coleo de computadores independentes (conectados entre si) que se apresentam aos usurios do sistema como se fosse um nico computador. Nesta definio devemos considerar dois aspectos:

Hardware: as mquinas so autnomas (independentes, ou seja, cada uma com seu processador, memria, interface de comunicao, cpia do Sistema Operacional) Software: os usurios vem o sistema como uma nica mquina.

2

19/05/2011

Sob uma tica puramente hardware, no fundo, um SD uma rede de computadores. Os computadores no compartilham memria nem horrio comum. Em vez disso, cada processador tem sua prpria memria local, seu horrio, os processadores devem se comunicar por meio de redes de interconexo e todas as decises so tomadas baseadas em informaes locais de cada mquina. A idia de transparncia (e essa nossa palavra-chave neste livro!) obtida atravs de software, e puramente software.

necessrio em um SD que exista um mecanismo de controle para gerenciar as atividades e administrar, de forma eficiente, os recursos disponveis no ambiente.

Caractersticas

Algumas caractersticas dos SDs que ora aproximam o SD de uma Rede de Computadores, ora criam a separao conceitual entre ambos. O mais importante ressaltar que um SD pode no ter todas estas caractersticas e o projetista de um SD muitas vezes deve optar por uma caracterstica em detrimento de outra. Para deixar uma idia geral, vamos s principais:

13

19/05/2011

Compartilhamento de recursos: impressoras, discos, banco de dados, arquivos, etc. Neste aspecto um SD muito prximo de uma Rede, pois aqui tratamos de compartilhamento de dispositivos e hardware.

2 3 44

Concorrncia e paralelismo: o acesso aos recursos deve ser sincronizado. Imagine um diretrio compartilhado sendo acessado por vrios processos ou ainda um banco de dados central, sendo acessado por vrias aplicaes.

Escalabilidade: Esta caracterstica muito interessante, principalmente quando pensamos em aumentar a oferta de processamento e o desempenho do sistema como um todo. Em um SD, idealmente, possvel adicionar mais mquinas medida que se necessita de mais desempenho (isso um aspecto bastante interessante que iremos discutir com maior detalhamento no prximo captulo)

19/05/2011

Tolerncia a Falhas: por termos um grande nmero de mquinas conectadas, as falhas individuais em cada mquina no podem (e no devem) afetar o sistema como um todo.

5 6

Alta Disponibilidade: a disponibilidade est intimamente associada s aplicaes ditas crticas misso (ou mais popularmente de misso crtica), pois, com o auxlio de vrios computadores, o sistema mantm-se no ar, mesmo com a falha ou a interrupo da execuo de alguma mquina (isso soa muito prximo ao item anterior, mas eles tem diferena, como veremos mais adiante)

Transparncia (palavra-chave) em relao a:

a. Localizao: no necessrio saber onde esto os recursos. O usurio do sistema no precisa saber em qual mquina sero gravados os dados que ele usa, ou se o comando que ele quer executar ser efetivamente executado em sua mquina ou em outra mquina.

5

19/05/2011

b. Replicao: os usurios do sistema no precisam saber se h cpias repetidas de um arquivo ou recurso. Uma base de dados replicada (para gerar maior segurana no acesso de dados) um exemplo. O usurio no precisa saber quantas cpias ou em quais mquinas esto estas rplicas.

c. Migrao: recursos podem ser movidos sem a alterao dos nomes. Por exemplo, um servidor de banco de dados (apesar de no termos formalmente definido servidor) pode ser migrado de uma mquina para outra, sem a necessidade de reconfigurao dos clientes (mesmo que no tenhamos tambm definido formalmente cliente)

d. Concorrncia: recursos podem ser disputados e ter seu acesso compartilhado sem que o usurio conhea os critrios de acesso ou os algoritmos de excluso mtua.

e. Paralelismo: atividades (processos) podem ser executadas em paralelo, em vrias mquinas, sem que o usurio saiba o que est executando e em qual maquina.

Agora que j sabemos (pelo menos superficialmente) quais so as caractersticas de um SD, vamos entender como us-las para criar aplicaes que faam uso destas caractersticas. Com isso podemos listar algumas vantagens dos SDs sobre os sistemas centralizados. E dentre elas, destacamos:

Aplicaes

6

19/05/2011

a. Compartilhamento de dados: bases de dados sendo acessadas por vrias aplicaes (isso pode parecer algo centralizador e efetivamente mas vamos discutir mais arquiteturas distribudas, mesmo com recursos centralizados);

b. Compartilhamento de dispositivos: acesso compartilhado a perifricos de alto custo ou que ficam muito tempo ociosos;

c. Comunicao: torna-se mais simples e mais rpida a comunicao entre pessoas. Alm disso, possvel: transferncia de arquivos entre mquinas, acesso remoto a recursos, entre outros.

d. Flexibilidade: possvel dividir a carga de trabalho entre os diversos computadores da rede e usar suas capacidades individuais de processamento para executar uma aplicao de forma mais rpida.

e. Confiabilidade: se um n do sistema (uma mquina) falha os demais podero continuar operando sem comprometer o sistema como um todo;

f. Velocidade de computao: maior poder computacional obtido atravs de aplicaes que executem de forma paralela nos vrios ns existentes no sistema.

7

19/05/2011

g. Desempenho a baixo custo: possvel criar um supercomputador com base nos conceitos de SD, usando PCs de baixo custo (o que os especialistas chamam de processadores of-the-shelf ou processadores de prateleira)

h. Escalabilidade sem limites: aumentar o nmero de ns na medida da necessidade, obviamente obedecendo as caractersticas da aplicao que ir executar.

Mas nem tudo so flores nos SD. Assim como h vantagens do uso, h desvantagens, que particularmente. Melhor usar o termo desafio para o termo desvantagens, pois de uma limitao podemos sempre encontrar uma oportunidade de estudo e criar uma soluo factvel. Dentre estes principais desafios, podemos classific-los em trs grandes categorias:

Vantagens e Desvantagens

Software

1

Existe a falta de experincia no projeto, implementao e uso de software distribudo. Alm disso, necessrio analisar se todas as aplicaes que sero desenvolvidas so efetivamente apropriadas para executarem em um ambiente distribudo.

8

19/05/2011

Quanto o usurio deve conhecer sobre a distribuio? Qual o grau de transparncia que se deve ter neste tipo de sistema? Quanto mais o usurio interferir no funcionamento do sistema, maior a probabilidade de erros.

Qual o trabalho que deve ser feito pelo sistema e pelo usurio? Novamente a questo do usurio x sistema. Sobrecarregar um sistema de funcionalidades para seu autogerenciamento pode tambm torn-lo ineficiente.

Redes de Comunicao

2

Perda de mensagens e corrupo dos pacotes que trafegam na rede. A pesar do alto grau de confiabilidade existente nas redes de comunicao, ainda enfrentamos problemas de perda e corrupo de mensagens que podem comprometer o funcionamento de nosso SD.

Sobrecarga na rede gerada pelas comunicaes entre ns. Um tpico que iremos discutir mais adiante e que est intimamente ligado a este a questo da escalabilidade. Muitos ns na rede geram maior congestionamento e pode comprometer o desempenho do SD.

Problema no dimensionamento da rede. Redes mal projetadas influenciam negativamente por serem a infraestrutura fundamental de um SD.

9

19/05/2011

Segurana

3

Apesar do compartilhamento de dados ser uma vantagem, devemos cuidar da segurana das informaes. Por integrarmos muitos usurios em um SD, devemos ter muito cuidado com o nvel de autorizao de acesso, proteo contra mensagens indesejadas e invases, manter o sistema prximo a 100% do tempo disponvel (manter informao disponvel tambm considerado, manter informao segura).

Bom, vimos um pouco (acredito que muito) sobre conceitos de Sistemas Distribudos e nosso foco no prximo captulo pensarmos em: j que conhecemos o que , vamos ento buscar projetar um sistema distribudo. Quais aspectos devemos considerar neste projeto?

Consideraes Finais

Um tpico bastante interessante para ser visto a lista dos 500 supercomputadores mais rpidos do mundo. A maior parte deles (seno quase a totalidade) desenvolvida levando em considerao as caractersticas de Sistemas Distribudos. http://www.top500.org

Estudos Complementares

10

19/05/2011

TANENBAUM, Andrew S.; STEEN, Maarten Van Sistemas Distribudos Ed. Prentice Hall Brasil 2007. TANENBAUM, Andrew S. - Sistemas Operacionais Modernos - Livros Tcnicos e Cientficos Ed. S.A 1999. COULOURIS, George; DOLLIMORE, Jean ; KINDBERG, Tim - Sistemas Distribudos - Conceitos e Projeto Ed. Bookman Companhia . 2007. MASSETO, F. I.; Material Didtico; UAB/UFSCar; 2009

Bibliografia

11