8
Sumário 1. Caracterização de Sistemas Distribuídos .................................................................... 2 1.1. Distribuição a Nível de Hardware e Software ........................................................ 3 1.2. Distribuição a Nível de Componentes de Software ................................................ 4 2. Aplicação de Sistemas distribuídos ............................................................................ 5 3. Exemplos de sistemas distribuídos ............................................................................. 6 4. Condicionantes da Evolução ....................................................................................... 7 4.1. Tecnológicos ........................................................................................................... 7 4.2. Requisitos................................................................................................................ 7 Página 1 de 8

Caracterizacao de sistemas distribuidos

Embed Size (px)

Citation preview

Page 1: Caracterizacao de sistemas distribuidos

Sumário 1. Caracterização de Sistemas Distribuídos .................................................................... 2 1.1. Distribuição a Nível de Hardware e Software ........................................................ 3 1.2. Distribuição a Nível de Componentes de Software ................................................ 4 2. Aplicação de Sistemas distribuídos ............................................................................ 5 3. Exemplos de sistemas distribuídos ............................................................................. 6 4. Condicionantes da Evolução....................................................................................... 7 4.1. Tecnológicos ........................................................................................................... 7 4.2. Requisitos................................................................................................................ 7

Página 1 de 8

Page 2: Caracterizacao de sistemas distribuidos

1. Caracterização de Sistemas Distribuídos

Sistemas de computação distribuída podem diferir bastante entre si, dependendo do modo

pelo qual seus processadores estão conectados. Dentre as várias arquitecturas que

utilizam múltiplos processadores tem-se, por exemplo:

1. Computadores vectoriais – desenvolvidos para lidar com cálculos científicos

complexos, como por exemplo, cálculos relacionados à previsão do tempo. Um

computador vectorial é caracterizado por poder realizar operações em vectores

completos através de uma simples instrução.

2. Multiprocessadores – compartilham memória (vide Fig. 2);

3. Multicomputadores – cada processador possui sua própria memória local (vide

Fig. 3); e

4. Sistemas compostos por várias estações de trabalho conectadas por uma rede local

ou por uma rede de longa distancia (vide Fig. 4).

Fig. 1: Multiprocessadores

Fig. 2: Multicomputador

Fig. 3: Sistema distribuído de longa distancia

Página 2 de 8

Page 3: Caracterizacao de sistemas distribuidos

1.1. Distribuição a Nível de Hardware e Software

No tocante ao Hardware, um sistema é distribuído quando não existe memória primária

compartilhada pelos elementos processadores, e não distribuído quando existe. Quanto ao

software, pode-se dizer, de modo geral, que um sistema é distribuído quando seus

processos se comunicam (cooperam) através de mecanismos baseados em troca de

mensagens, Isso porque supõe-se, a princípio, que o hardware hospedeiro é distribuído,

portanto, processos residentes em elementos processadores diferentes podem trocar

informações somente via rede de comunicação, por meio de emissão e recepção de

mensagens. Analogamente, um sistema é não distribuído quando seus processos se

comunicam através de dados compartilhados.

Ignorando, no momento, essas premissas, existem, então, quatro esquemas de

distribuição, decorrente da combinação de hardware e software distribuídos ou não, os

quais são:

a. Software distribuído sendo executado em um hardware distribuído: esse esquema

caracteriza um sistema no qual os processos estão sendo executados em

processadores separados e se comunicando através do uso de primitivas do tipo

"Envia e Recebe", as quais trocam mensagens sobre uma rede local ou uma rede

de longa distância;

b. Software distribuído sendo executado em um hardware não distribuído: aqui a

troca de mensagens entre os processos é simulada através do uso de memória

compartilhada;

Página 3 de 8

Page 4: Caracterizacao de sistemas distribuidos

c. Software não distribuído sendo executado em um hardware distribuído: aqui o

objectivo é esconder a distribuição física, fazendo com que o sistema aparente

possua memória compartilhada;

d. Software não distribuído sendo executado em um hardware não distribuído:

esquema que caracteriza os sistemas convencionais que são fortemente

acoplados1.

1.2. Distribuição a Nível de Componentes de Software Em geral, existem três aspectos de software que podem estar distribuídos: dados,

programas e controle.

No tocante a distribuição de dados, pode-se ter: sistemas de arquivos distribuídos e

sistemas de banco de dados distribuídos.

No que diz respeito a programas, pode-se ter: programas centralizados e programas

distribuídos. Um programa centralizado é aquele que é executado em uma arquitectura na

qual cada um dos processadores pode executar qualquer instrução desse programa. Já um

programa distribuído é aquele que se encontra espalhado por várias memórias primárias,

sendo que cada uma é acedida por um processador diferente, o qual executa a parte do

programa que se encontra na memória primária a ele associada.

A distribuição do controle está relacionada directamente com a distribuição do próprio

sistema operativo. O que distingue um sistema distribuído de um sistema de arquitectura

clássica é a distribuição do controle. O controle é centralizado quando a execução de um

programa, em qualquer instante, está sob os cuidados de um único elemento processador.

Já, quando o controle é distribuído, a execução de um programa está sob os cuidados de

mais que um elemento processador.

1 Em termos de hardware, fortemente acoplada, significa, baixo retardo na transmissão de mensagens, alta taxa de transmissão e, na vertente de software, fracamente acoplado, significa, máquinas e usuários funcionalmente independentes uns dos outros, podendo interagir num grau limitado quando necessário.

Página 4 de 8

Page 5: Caracterizacao de sistemas distribuidos

2. Aplicação de Sistemas distribuídos

As aplicações que podem ser implementadas como sistemas distribuídos são muitas.

Existem quatro vantagens básicas de se projectar uma aplicação para um sistema

distribuído, a saber:

• Diminuição do tempo de execução da aplicação;

• Aumento do grau de confiabilidade e disponibilidade da aplicação;

• O uso de partes do sistema para fornecer especialização funcional; e

• A inerente distribuição da aplicação.

A diminuição do tempo de execução da aplicação pode ser concluída através do uso do

paralelismo existente em um sistema distribuído. Alguns programas terão seus tempos de

execução diminuídos se partes desses programas forem executados em processadores

diferentes ao mesmo tempo.

Exemplo de aplicações é a compilação paralela de módulos de um dado programa em

máquinas diferentes, e a implementação de algoritmo de busca heurística (Algoritmos de

Busca são técnicas de Inteligência Artificial aplicadas a problemas de alta complexidade

teórica que não são resolvidos com técnicas de programação convencionais,

principalmente as de natureza puramente numérica).

Os sistemas distribuídos são potencialmente mais confiáveis, pois desde que os

processadores são autónomos, uma falha em um não afecta o funcionamento correcto dos

demais. Portanto, a confiabilidade do sistema pode ser aumentada ao se replicar funções

e/ou dados da aplicação nos vários processadores. Desse modo, se alguns elementos

processadores falharem, os demais poderão continuar o serviço. Exemplos clássicos de

aplicações tolerantes a faltas (falhas) são o controle de um avião e o controle de uma

fábrica automatizada.

Página 5 de 8

Page 6: Caracterizacao de sistemas distribuidos

A implementação de uma aplicação como um conjunto de serviços especializados

amolda-se no ambiente de um sistema distribuído. Um exemplo é um ambiente que

forneça um servidor de arquivos, um servidor de impressão, um servidor de processos,

um servidor de tempo, um servidor de carga e um servidor de "gateway".

Cada um desses serviços pode usar um ou mais processadores dedicados, garantindo bom

desempenho e alta confiabilidade. Os servidores podem trocar requisições entre si através

da rede. É fácil adicionar novos processadores para atender a novos serviços ou para

aumentar a capacidade computacional de serviços já existentes. Recursos especiais do

sistema são passíveis de serem compartilhados, pois os processadores se comunicam

através da rede.

Uma outra vantagem do uso de sistemas distribuídos é para a implementação de

aplicações que sejam inerentemente distribuídas. Um exemplo clássico é a

implementação de uma aplicação de automação de um departamento, onde cada sector

poderia ter sua estação de trabalho contendo os dados e funções afectas a ele e podendo

aceder dados de outros sectores executando funções remotas.

3. Exemplos de sistemas distribuídos

Os servidores do motor de busca Google encontram-se replicados em vários ponto do

globo, nomeadamente América, Europa, Ásia, África, …. Se pesquisa for feita em

Moçambique a informação é buscada no servidor que está bem África, por exemplo, aqui

ganha-se bastante no tempo de busca.

Numa organização em há servidores dedicados: Servidor de Impressora, Servidor de

Ficheiros, Servidor de Correio Electrónico, Servidor de Base de Dados,… Estes

servidores respondem às solicitações como entidade única, na media em que os clientes,

se não forem informados, não se apercebem que existem servidores dedicados para

realizarem tarefas específicas.

Página 6 de 8

Page 7: Caracterizacao de sistemas distribuidos

4. Condicionantes da Evolução

Destacam-se dois aspectos condicionantes a evolução de sistemas distribuídos: os

tecnológicos e os requisitos:

4.1. Tecnológicos a. Redes de computadores

b. Computadores pessoais

c. Sistemas abertos

d. Arquitectura de Computadores

i. Grande aumento da: potência de cálculo, memória, e disco

ii. Utilização de componentes de h/w standard

iii. Multiprocessamento económico e eficaz

iv. Alguma uniformização do s/w de sistema

1. SO: Windows, Unix, IBM MVS

2. BD’s: Oracle, Informix,Sybase, SQL-Server, DB2

4.2. Requisitos e. Utilizadores finais

i. Transparência

ii. Partilha de informação

iii. Melhoria de comunicação entre pessoas

iv. Segurança e protecção

v. Fiabilidade e disponibilidade

f. Programadores

i. Interfaces normalizadas

ii. Ambientes de programação independentes das características da

h/w e das redes

Página 7 de 8

Page 8: Caracterizacao de sistemas distribuidos

iii. Controlo sobre o desempenho, fiabilidade, disponibilidade,

segurança

g. Gestores

i. Investimento reduzido

ii. Modularidade e extensibilidade na evolução do sistema

iii. protecção do investimento anterior

iv. Adequação às equipas técnicas

v. Optimização da gestão dos recursos

vi. Desempenho, disponibilidade, fiabilidade, segurança

Página 8 de 8