Buscar

Sistemas-distribuidos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas distribuídos 
Um sistema distribuído é um conjunto de computadores independentes entre si que se apresenta a 
seus usuários como um sistema único e coerente – Tanenbaum/Van Steen 
 
1) Quais são as mais importantes formas de transparência definidas em ambientes de Sistemas 
Distribuídos? Cite e explique cada uma delas. [3 pontos] 
Resposta: 
a) Transparência de acesso: oculta diferenças na representação de dados e no modo de acesso a 
um recurso. 
b) Transparência de localização: oculta o lugar em que um recurso está localizado. 
c) Transparência de migração: oculta que um recurso pode ser movido para outra localização. 
d) Transparência de relocação: oculta que um recurso pode ser movido para uma outra localização 
enquanto em uso. 
e) Transparência de replicação: oculta que um recurso é replicado. 
f) Transparência de concorrência: oculta que um recurso pode ser compartilhado por diversos 
usuários concorrentes. 
g) Transparência de falha: oculta a falha e a recuperação de um recurso. 
 
2) Quais são as duas grandes desvantagens do RMI e do RPC? Lembrando que ambos dizem respeito 
aos middlewares de comunicação. [2 pontos] 
Resposta: As duas principais desvantagens são: 
a) O chamador e o chamado precisam estar ligados e em funcionamento no momento da 
comunicação. 
b) Os componentes comunicantes devem saber exatamente como se referir um ao outro. 
 
3) Quais são as quatro implementações de arquitetura de sistemas distribuídos, comumente chamadas de 
estilos arquitetônicos para sistemas distribuídos? Cite e explique cada uma delas. [3 pontos] 
Resposta: 
a) Arquitetura em camadas: os componentes são organizados em camadas, e um componente na 
camada Li tem permissão de chamar componentes na camada subjacente Li-1, mas não o 
contrário. 
b) Arquiteturas baseadas em objetos: cada objeto corresponde ao que definimos como 
componente, e esses componentes são conectados por meio de uma chamada remota de 
procedimento. 
c) Arquiteturas centradas em dados: nessa arquitetura, os processos se comunicam por meio de 
um repositório comum (passivo ou ativo), o qual é acessível para todos os componentes. 
d) Arquiteturas baseadas em eventos: os processos se comunicam nessa arquitetura através da 
publicação de eventos, que opcionalmente também transportam dados. 
 
O que é uma operação idempotente? A operação de excluir (de um banco de dados) um registro de um 
aluno usando o seu identificador (ID) é uma operação idempotente? Justifique a sua resposta. [2 pontos] 
Resposta: a operação idempotente pode ser repetida várias vezes sem causar dano ao sistema. A 
operação de excluir um registro de aluno usando o seu ID é uma operação idempotente, visto que 
 
se o registro foi excluído na primeira tentativa, o sistema poderá tentar outras vezes sem causar 
danos. Isso porque o sistema não encontrará mais esse registro. 
Atividade Avaliativa II 
(3 pontos) É dito que as interfaces são escritas em uma linguagem específica como a IDL (Interface 
Definition Language) para simplificar o desenvolvimento de sistemas distribuídos. Explique em que 
sentido as IDLs facilitam (ou simplificam) o desenvolvimento de aplicações distribuídas. Dentro do assunto 
de interfaces, estabeleça a diferença entre a interface requerida e a provida. 
A IDL é uma linguagem específica e independente de qualquer linguagem para descrever a API de 
um determinado componente, ou seja, informa os serviços requeridos e os serviços fornecidos 
por um determinado componente. A IDL facilita o desenvolvimento de aplicações distribuídas, 
visto que se baseiam em uma linguagem independente das linguagens de programação, e assim, 
permite usar a mesma interface (com a mesma IDL) dos componentes escritos em C++ e Java. A 
interface requerida é a que descreve os serviços necessários para que um componente funcione, 
enquanto que a fornecida descreve os serviços que o componente oferece. 
(2 pontos) Qual a diferença fundamental entre a mobilidade fraca e a mobilidade forte? 
A diferença é que na mobilidade fraca o código a ser executado é transferido para a outra máquina 
antes da sua execução na máquina-destino, e a sua execução é iniciada desde o começo. Na 
mobilidade forte, o segmento da execução é migrado de uma máquina para a outra. 
Essencialmente, a execução de um código é iniciada na máquina original e depois a sua execução 
é migrada para a outra máquina. Na mobilidade forte, a execução de um processo pode ser parada, 
e na sequência, ser movida para a outra máquina; e então, a execução pode ser retomada a partir 
do ponto em que parou. Assim, a implementação da mobilidade forte é mais complexa e requer 
mais sofisticação. 
(3 pontos) Cite e explique os três modelos de comunicação remota entre processos amplamente 
utilizados e que foram estudados no âmbito de sistemas distribuídos. 
a) Chamada de procedimento remoto: nessa comunicação, um processo chama um procedimento 
localizado em outra máquina pertencente a um outro espaço de endereçamento. O RPC e o RMI 
são baseados nesse mecanismo de comunicação. 
b) Comunicação orientada à mensagem: é uma outra forma de comunicação entre processos 
remotos, onde as partes comunicantes (ou os componentes de software) enviam e recebem 
mensagens intercambiadas; as mensagens são as unidades básicas de dados transferidos entre 
os componentes comunicantes. 
 
c) Comunicação orientada a fluxo: nesta modalidade, um processo envia ou recebe um fluxo 
contínuo de dados para/de uma máquina remota. Para entender a diferença, um SMS denotaria 
uma implementação de uma comunicação orientada à mensagem, enquanto que um telefonema 
induz a uma comunicação orientada a fluxo. 
(2 pontos) O que é o endereço Care of Address (COA)? Explique o motivo de um único endereço COA ser 
compartilhado com múltiplos nós móveis visitantes a uma rede IPv4 externa. 
O COA é um endereço que um nó móvel recebe, assim que ele visita uma rede externa (i.e. quando 
o nó móvel não está na sua rede nativa). Como há escassez de endereços IPv4, normalmente os 
nós móveis visitantes compartilham o mesmo endereço COA de uma rede externa. 
Atividade Avaliativa III 
(3 pontos) Descreva os três componentes chave do sistema de nomeação em sistemas distribuídos, a 
saber: o nome, o identificador e o endereço. 
Um nome em sistema distribuído é uma cadeia de bits ou caracteres, usada para referenciar uma 
entidade. Exemplos incluem o nome de um arquivo, impressora e discos. Um identificador é o 
elemento que é utilizado para identificar exclusivamente uma entidade. Diferente do nome, o 
identificador faz referência sempre à mesma entidade. Finalmente, o endereço é o ponto de acesso 
para acessar uma determinada entidade. Para exemplificar, um telefone pode ser visto como um 
ponto de acesso de uma pessoa, enquanto que o número de telefone corresponde ao endereço. 
(2 pontos) Qual a diferença fundamental entre a nomeação simples e estruturada? 
A nomeação simples faz uso dos identificadores únicos e normalmente não intuitivos para 
endereçar uma determinada entidade. O endereço IP e o MAC (Media Access Control) são 
exemplos de nomeação simples. A nomeação estruturada faz uso de nomes estruturados que são 
compostos por várias partes; tais nomes são fáceis de serem manuseados e lembrados por 
humanos. O exemplo de nomes estruturados inclui nomes de host da Internet (exemplo 
www.univesp.br). Concluindo, uma das diferenças fundamentais é que a nomeação simples é mais 
fácil de ser operada por máquinas, enquanto que a nomeação estruturada é fácil de ser 
manuseada pelos usuários. 
(2 pontos) Explique quais são as vantagens dos relógios lógicos sobre os relógios físicos. 
A sincronização usando relógios lógicos é muito mais simples do que o relógio físico, pois os 
relógios físicos dependem de que haja um relógio global (como o UTC) para sincronizar. Muitas 
 
vezes é suficiente para um sistema entrar em um acordo sobre a hora local, oque não precisa ser 
necessariamente a hora real. Ao usar relógios lógicos, não precisamos nos preocupar com a 
sincronização global dos relógios físicos, mas apenas sincronizar logicamente o relógio com os 
nós participantes. Para isso, podemos sincronizar uns com os outros, utilizando técnicas como o 
algoritmo de Lamport. Em resumo, o uso de um relógio físico em um sistema distribuído é muito 
mais difícil e não é mais preciso do que um lógico. 
(3 pontos) Cite uma vantagem e uma desvantagem dos algoritmos de exclusão mútua centralizados e 
distribuídos. 
Algoritmo de exclusão mútua centralizado: 
Vantagens: 
● Fácil de implementar; 
● Baixo overhead no envio de mensagens; 
● Eles tendem a ser justos, pois os pedidos de acesso são processados em ordem; 
● Normalmente, sem inanição e a exclusão mútua é garantida. 
 Desvantagens: 
● O coordenador é um único ponto de falha; 
● O coordenado pode ser o gargalo de desempenho. 
 Algoritmo de exclusão mútua distribuído: 
Vantagens: 
● Não precisa de um coordenador com um único ponto de falha; 
● Exclusão mútua normalmente é garantida sem deadlock ou inanição. 
 Desvantagens: 
● Todos os processos estão envolvidos em todas as decisões (mecanismo lento e torna a 
execução lenta); 
● Grande número de mensagens necessárias; 
● Único ponto de falha substituído por n pontos de falha. 
 
 
Q1) Nas transações de sistemas distribuídos, há um conjunto de propriedades conhecido como 
ACID. Explique as quatro propriedades do ACID existentes nas transações distribuídas. 
Atomicidade 
A propriedade de atomicidade garante que as transações sejam atômicas (indivisíveis). A 
transação será executada totalmente ou não será executada. 
Consistência 
A propriedade de consistência garante que o banco de dados passará de uma forma consistente 
para outra forma consistente. 
Isolamento 
 
A propriedade de isolamento garante que a transação não será interferida por nenhuma outra 
transação concorrente. 
Durabilidade 
A propriedade de durabilidade garante que o que foi salvo, não será mais perdido. 
 
PROVA 
 
Q2) Nos dois itens abaixo indique V para verdadeiro ou F para falso: 
a) A linguagem IDL (Interface Definition Language) permite descrever interfaces de 
componentes independentes das linguagens de programação. Verdadeiro. 
b) O middleware é o software que geralmente tenta tirar a complexidade das camadas que se 
encontram entre o Sistema Operacional (SO) e a máquina, ou seja, ele tenta remover a 
complexidade das camadas abaixo do SO.FALSO 
 
Q3) O que diz a escalabilidade no contexto de sistemas distribuídos? No âmbito da escalabilidade, 
explique o que é a escalabilidade de tamanho. 
Capacidade do sistema permanecer operando de uma forma efetiva mesmo diante de um aumento 
significativo do número de usuários e/ou dos recursos disponíveis. 
 
A escalabilidade pode ser medida em três dimensões: 
1. Relação ao tamanho --> Podem-se acrescentar mais usuários e recursos ao sistema; 2. Relação 
à distância geográfica --> Acesso a distâncias maiores. 3. Relação à facilidade de administração --> 
Mesmo com inclusão muitas organizações independentes ainda continua fácil a administração. 
 
 
Q4) Nos dois itens abaixo, assinale V para verdadeiro ou F para falso: 
a) No sistema Publicar-Subscrever (Publish-Scribe) há um forte acoplamento entre os 
componentes que publicam eventos e os que subscrevem e recebem estes eventos. FALSO 
b) A virtualização é uma tecnologia nova que surgiu com a popularização de computadores PC. 
Isso porque os PCs geralmente demandam múltiplas plataformas e Sistemas Operacionais 
diversificados, como o Windows e Linux. Verdadeiro 
 
 
1) Qual é o papel do middleware em um sistema distribuído? O papel do middleware é esconder a 
complexidade existente nos hardwares distintos e nos sistemas operacionais que se encontram 
nas camadas abaixo. Uma outra resposta é dizer que o papel do middleware em um sistema 
distribuído é prover uma visão de sistema único, apesar de haverem SOs e hardwares diferentes 
nas camadas inferiores. 
 
2) Por que a identificação de erros e falhas em um Sistema Distribuído pode tornar-se uma tarefa 
difícil? Essa tarefa é um desafio porque geralmente é difícil afirmar que um servidor ou uma 
máquina encontram-se fora de operação ou estão lentos pela sobrecarga da rede. Isso torna 
desafiante dizer qual é o motivo da falta de resposta. Consequentemente, alguns sistemas podem 
 
informar que um serviço não está disponível, embora, de fato, o servidor esteja apenas 
sobrecarregado. 
 
3) Por que nem sempre é uma boa ideia implementar o mais alto grau de transparência possível 
nos Sistemas Distribuídos? 
Visar o maior grau de transparência possível pode levar à uma perda considerável de 
desempenho, o que pode ser inaceitável para algumas aplicações distribuídas. 
 
4) Se um cliente e um servidor estiverem distantes, podemos ver a latência da rede dominando o 
desempenho geral. Diga uma das soluções pela qual podemos resolver isso. Resposta: Uma das 
soluções seria implementar a comunicação assíncrona. Através dessa modalidade de 
comunicação, uma mensagem de chegada pode ser enviada pelo cliente ao servidor (ou vice-
versa), assim que um pacote for recebido com sucesso. 
 
5) Qual a diferença entre uma distribuição horizontal e uma distribuição vertical, no contexto de 
Sistemas Distribuídos? Resposta: Na distribuição horizontal, um servidor ou cliente pode ser 
fisicamente dividido em partes logicamente equivalentes, mas cada um está operando em sua 
própria porção do conjunto completo de dados, o que equilibra a carga (replicação, por exemplo, 
servidor web replicado ou rede peer-to-peer). Na distribuição vertical, são colocados componentes 
logicamente diferentes em máquinas distintas. 
6) Quais são os três componentes da arquitetura de três divisões, ou em Inglês three-tiered 
architecture? Resposta: Os três componentes podem ser: (1) o cliente; (2) o servidor; e (3) monitor 
da transação. Alternativamente, podem ser também: (1) o cliente; (2) o servidor Web; e (3) servidor 
da aplicação (o servidor da aplicação é muitas vezes conhecido como servidor de banco de 
dados). 
7) Ter só um lightweight process (isto é, processo leve) por processo nem sempre é uma boa ideia. 
Por quê? 
Resposta: Nesse mecanismo, efetivamente temos apenas threads no nível do usuário, o que 
significa que qualquer chamada de sistema que causa bloqueio irá colocar todo o processo em 
estado de espera (i.e. em wait – irá bloquear todo o processo). 
8) Dê dois exemplos de aplicações cliente-servidor em que o uso de um cliente multi-threaded é 
mais vantajoso comparado com um cliente com uma única thread. Explique a sua resposta. 
Resposta: (a) Um exemplo seria nos navegadores; o fato de ter múltiplas threads para baixar 
imagens diferentes do servidor web e processá-las por cada thread separado permite que mais 
imagens sejam processadas concorrentemente. (b) Outro exemplo seria em uma aplicação de um 
jogo. Um cliente com múltiplas threads permitiria cada uma lidar com um segmento da imagem, 
enquanto outras recebam mais dados. 
9) Cite as vantagens e as desvantagens entre um servidor com múltiplas threads e outro servidor 
que cria múltiplos processos (em vez de múltiplas threads). 
Resposta: 
a) A criação de threads não requer uma mudança de contexto, enquanto que a criação de 
processos demanda mudança de contexto, o que torna caro criar processos. Criar threads tem 
menos sobrecarga para o sistema como um todo. 
 
b) Processos pais não são bloqueados por instruções de bloqueio de processos filhos, enquanto 
que as threads do usuário podem bloquear outras threads. 
c) Threads compartilham um espaço de endereço, enquanto que os processos não permitem isso; 
dependendo da aplicação é benéfico compartilhar o espaço de endereçamento. 
d) Os processos podem ser migrados mais facilmente do que threads (na migração de código).10) Quais são as principais diferenças entre chamadas de procedimento remoto (RPCs) e as 
invocações de método remoto (RMIs)? 
Resposta: Com o RPC, você faz chamadas para um servidor remoto solicitando a execução de 
uma função/procedimento. Com RMI, você pode ter referências a objetos remotos e invocar seus 
métodos. Além disso, no RMI, você pode passar as referências de objeto, incluindo referências de 
objetos locais e remotos. 
 
11) Dê dois exemplos de aplicações que geralmente fazem uso da comunicação persistente e 
assíncrona. Explique sua resposta. 
Resposta: As aplicações de transferência de arquivos e de e-mails, por exemplo. Elas 
normalmente requerem a comunicação persistente e assíncrona. A razão é que um usuário envia a 
solicitação de envio para o middleware e o middleware garantirá enviar a mensagem (ou o arquivo 
– no contexto da transferência do arquivo) para o servidor. Isso, visto que o middleware do 
emissor armazenará a mensagem (ou o arquivo) antes de enviar (persistente). O middleware 
também não bloqueia o receptor até que a sua requisição seja aceita. Consequentemente, o 
middleware permite que o usuário receptor possa retornar imediatamente à sua tarefa, sem que ele 
fique bloqueado (assíncrona). 
12) Quais são as vantagens e as desvantagens da utilização de protocolos epidêmicos para 
disseminação de informações? 
Resposta: Vantagens: boa escalabilidade devido ao número de sincronizações entre processos 
ser relativamente pequena. O referido protocolo é adequado para disseminar as atualizações. 
Desvantagens: O protocolo pressupõe que todos os nós na rede conheçam um ao outro. Além 
disso, disseminar a exclusão de um item torna-se trabalhoso. 
 13) Você consideraria que um URL como http://www.johnson.org/index.html é independente de 
localização? 
Sim. O endereço é genérico e independe da localização física. O endereço físico do servidor web 
poderá ser alterado sem que haja uma mudança no nome da URL. 
14) Explique por que o DNS não é a melhor escolha para fornecer informações de localização de 
dispositivos móveis. 
O DNS não é a melhor escolha para fornecer a localização porque ele não incorpora a informação 
de localização geográfica nele. Note que os endereços IP normalmente não representam uma 
localização geográfica específica, mas os endereços hierárquicos que são distribuídos para uma 
determinada organização. 
 15) Dê alguns exemplos de identificadores verdadeiros. 
Os exemplos incluem os números de ISBN para livros, números de identificação (série) de 
produtos de software e hardware, números de funcionários dentro de uma única organização e o 
número DOI (Document Object Identifier) para documentos científicos. 
 
 
 
 
 
O que são Sistemas Distribuídos? 
Um Sistema Distribuído-SD é uma coleção de computadores independentes que aparenta a seus usuários ser um 
sistema único e coerente. 
 
Um sistema distribuído é aquele que as informações em fase de processamento são distribuídas para vários 
computadores, em vez de ficarem confinadas a uma única máquina [Sommervillle, 2003]. 
 
Dois aspectos: 
● Computadores independentes 
● Um único sistema middleware 
 
Exemplos de SDs:
● Amazon Marketplace 
● Google 
● Yahoo 
● Facebook 
● Twitter 
● Youtube
 
O que é um middleware? 
Middleware é o software que conecta programas separados e já existentes. Normalmente fica entre a aplicação e o 
SO. 
 
Note a existência da interface padrão e da específica. 
O middlew. tira a complexidade das camadas mais baixas. 
 
Para suportar computadores e redes simultaneamente, oferecendo uma visão de um sistema único, os sistemas 
distribuídos são organizados por meio de uma camada de software. 
 
Sistemas Distribuídos vs. Computação Paralela 
● Sistemas forte e fracamente acoplados (único SO?). 
● Compartilhamento de memória; comunicação frequente. 
 
Nos sistemas distribuídos o software de sistema é executado em um grupo de processadores fracamente 
integrados, que cooperam entre si conectados por uma rede. 
 
Características dos sistemas distribuídos [Coulouris et al, 1994] 
 
● Compartilhamento de recursos: Inclui recursos de hardware e software. 
 
● Abertura: Sistemas podem ser ampliados utilizando recursos não proprietários a eles. 
● Concorrência: Vários processos podem operar ao mesmo tempo em diferentes computadores na rede. 
● Escalabilidade: São escalonáveis que significa que a capacidade do sistema pode ser aumentada por 
acréscimo de novos recursos. 
● Tolerância a defeitos: Podem ser tolerantes a algumas falhas de hardware e software. 
● Transparência: Usuário não precisa saber da natureza distribuída do sistema. 
 
Desvantagens dos sistemas distribuídos [Coulouris et al, 1994] 
 
● Complexidade: São mais complexos do que os sistemas centralizados. 
● Proteção: É mais difícil gerenciar a proteção de um sistema distribuído. 
● Dificuldade de gerenciamento: Maior esforço para gerenciamento. 
● Imprevisibilidade: Podem ser imprevisíveis em suas respostas. 
 
O desafio para os projetistas de sistemas distribuídos está em projetar software e hardware para que eles forneçam 
as características desejáveis dos sistemas distribuídos e ao mesmo tempo minimizem os problemas inerentes a 
esses sistemas. Questões relevantes de projetos de sistemas distribuídos são a identificação de recursos, 
comunicação, qualidade do serviço e a arquitetura do software. 
 
Um sistema distribuído exige normalmente um software que gerencie as diversas partes e garanta que elas se 
comuniquem e troquem dados. Os sistemas distribuídos podem ser implementados com diferentes linguagens de 
programação, executados em processadores diferentes e podem utilizar diferentes protocolos de comunicação. O 
software de gerenciamento , conhecido por middleware, é uma espécie de intermediário dos diferentes 
componentes distribuídos do sistema. 
 
Objetivos de um SD
● Fazer o link entre usuários e recursos; 
● Compartilhamento de recursos; 
● Segurança; 
● Reduzir a comunicação indesejada; 
● Transparência; 
● Flexibilidade; 
● Escalabilidade.
 
Transparência 
Formas de ocultação para os usuários e desenvolvedores de aplicação. Por quê? 
Porque deseja-se que o sistema seja percebido como único, ao invés de uma coleção de partes independentes 
● Objetivo: ocultar que os processos e recursos estão fisicamente distribuídos por vários computadores. 
● Um sistema distribuído apresenta aos usuários e aplicações como um único sistema de computador 
denominado transparente. 
● É uma das métricas de sucesso de um SD. 
 
Sete formas de transparência: 
 
Transparência Descrição 
Acesso 
Oculta diferenças na representação de dados e no modo de acesso a 
um recurso. 
Localização Oculta o lugar em que um recurso está localizado. 
Migração Oculta que um recurso pode ser movido para outra localização. 
Relocação 
Oculta que um recurso pode ser movido para outra localização 
enquanto em uso. 
Replicação Oculta que um recurso é replicado. 
Concorrência 
Oculta que um recurso pode ser compartilhado por diversos usuários 
concorrentes. 
Falha Oculta a falha e a recuperação de um recurso. 
Tabela 1.1: Diferentes formas de transparência em um sistema distribuído (ISO, 1995). 
 
Escalabilidade 
Propriedade que mede a capacidade do sistema em lidar facilmente com uma quantidade crescente de trabalho. 
Três medidas para medir a escalabilidade: 
Número de processos e/ou usuários (escalabilidade de tamanho) 
Distância máxima entre os nós (escalabilidade geográfica) 
Número de domínios administrativos (escalabilidade administrativa) 
 
Motivos de possíveis gargalos em SDs 
Conceito Exemplo 
Serviços centralizados Um único servidor para todos os usuários. 
Dados centralizados Uma única lista telefônica on-line. 
Algoritmos centralizados Fazer roteamento com base em informações completas. 
Tabela 1.2 Exemplos de limitações de escalabilidade. 
 
Características dos algoritmos descentralizados● Nenhuma máquina tem informação completa do estado do sistema (se uma máquina sair do ar, o restante 
do sistema distribuído vai continuar funcionando); 
● As máquinas tomam decisões com as informações locais; 
● A falha no algoritmo não “quebra” todo o sistema; 
 
● Não existe uma suposição de um relógio global. 
 
 
Técnica de escalabilidade (1) 
● Aumenta a disponibilidade dos recursos 
● Balanceamento de carga 
● Oculta a latência de comunicação caso haja grande dispersão geográfica 
 
 
Técnica de escalabilidade (2) 
● Sistema DNS é distribuído em várias máquinas por zonas 
● O endereço nl.vu.cs.fruits passa por Z1, Z2 e Z3, apenas 
 
 
 
 
Tipos de Sistemas Distribuídos: 
● Computação em Cluster (Cluster Computing) 
● Computação em Grade (Grid Computing) 
● Computação em Nuvem (Cloud Computing) 
● Sistemas de Informação Distribuídos 
● Sistemas Distribuídos Pervasivos 
 
Computação em Cluster 
● Característica homogênea 
● Hardware: conjunto de PCs ou estações de trabalho semelhantes 
● Conexão entre os hardwares: rede local (LAN) 
● Software: 
● É normal ter o mesmo SO entre as máquinas 
● Geralmente, um único programa executado em paralelo 
● Normalmente usada para computação paralela 
● Forte acoplamento entre os nós 
 
 
Computação em Cluster usando Linux 
 
Nó mestre: 
Alocar tarefas aos nós, organizar a fila de tarefas e interface com usuários 
Provê transparência de localização e migração

Continue navegando