Você está na página 1de 4

1.

1 - Cite cinco tipos de recurso de hardware e cinco tipos de recursos de dados ou


de software que possam ser compartilhados com sucesso. Dê exemplos práticos de seu
compartilhamento em sistemas distribuídos.
R: Hardware: discos, impressora, memória ram, processador, switch.
Software: arquivos, banco de dados, protocolos de comunicação, funções do sistema
operacional, páginas web.
Exemplos: Compartilhamento de impressora entre vários computadores em um
escritório;
Memória principal de uma máquina que é compartilhada por todos os processadores
através de um barramento que os interliga;
Compartilhamento de documentos no google docs.

1.2 - Como os relógios de dois computadores ligados por uma rede local podem ser
sincronizados sem referência a uma fonte de hora externa? Quais fatores limitam a
precisão do procedimento que você descreveu? Como os relógios de um grande número
de computadores conectados pela Internet poderiam ser sincronizados? Discuta a
precisão desse procedimento.
R: Já que o relógio é síncrono, é possível saber os limites da taxa de derivação
dos relógios, o atraso máximo de transmissão de mensagens e o tempo que leva para
executar cada etapa de um processo, através da técnica de relógios lógicos. O
relógio lógico de Lamport é um contador de software que aumenta a contagem
monotonamente cujo valor não precisa ter nenhum relacionamento em particular com
qualquer relógio físico. Não existe a noção de relógio global em um sistema
distribuído; portanto, os relógios de diferentes computadores não fornecem
necessariamente a mesma hora. Toda comunicação entre processos é obtida por meio de
troca de mensagens. A comunicação por troca de mensagens em uma rede de
computadores pode ser afetada por atrasos, sofrer uma variedade de falhas e ser
vulnerável a ataques contra a segurança. É impossível fazer a sincronização através
de sistemas assíncronos

1.3 - Considere as estratégias de implementação de MMOG (massively multiplayer


online games) discutidas na Seção 1.2.2. Em particular, quais vantagens você vê em
adotar a estratégia de servidor único para representar o estado do jogo para vários
jogadores? Quais problemas você consegue identificar e como eles poderiam ser
resolvidos?
R: Um servidor único traz algumas vantagens como: economia de energia pelo fato da
centralização de um servidor; economia de mão de obra, pois não é necessário
configurar outros componentes como servidores; o fato de ter em apenas um servidor
os estados do mundo virtual criado para o game auxilia no gerenciamento, gerando
apenas uma cópia de segurança, isso diminui, também, a preocupação com a coerência
no universo que engloba o game. Um servidor único traz consigo, também, algumas
desvantagens: como o sistema não é distribuído se esse servidor único falhar ou
apresentar alguma inconsistência isso afetará todos os usuários, visto que não há
outro servidor para oferecer a aplicação transparência de falhas. A distância desse
servidor central de usuários também seria um agravante, a aplicação poderia se
tornar insuportavelmente lenta
1.4 - Um usuário chega a uma estação de trem que nunca havia visitado, portando
um PDA capaz de interligação em rede sem fio. Sugira como o usuário poderia receber
informações sobre serviços locais e comodidades dessa estação, sem digitar o nome
ou os atributos da estação. Quais desafios técnicos devem ser superados?
R: Este usuário pode ri a se conectar a uma WIFI, e receber informações sobre este
local de vido a o provedor desta WIFI inserir tais informações na rede. Aplicativos
de reconhecimento de localização também podem dar essas informações

1.5 - Compare e contraste a computação em nuvem com a computação cliente-servidor


mais tradicional. O que há de novo em relação à computação em nuvem como conceito?
R: A arquitetura cliente-servidor possui máquinas dedicadas, geralmente é usada com
configurações de armazenamento e processamento pré-defina adotadas por uma
determinada organização que tem autonomia sobre processos de backups e segurança.
A computação em nuvem usa o conceito de distribuição de aplicações que devem
trabalhar como se fossem uma. As aplicações podem estar distribuídas em diversos
lugares ao mesmo passo que é muito eficiente por usar tecnologias como a
virtualização. A vantagem da “nuvem” é a escalabilidade, muitas organizações podem
usar apenas o espaço necessário para o bom funcionamento de suas aplicações. EX:
Redes sociais, buscadores, ferramentas Saas

1.6 - Use a World Wide Web como exemplo para ilustrar o conceito de
compartilhamento de recursos, cliente e servidor. Quais são as vantagens e
desvantagens das tecnologias básicas HTML, URLs e HTTP para navegação em
informações? Alguma dessas tecnologias é conveniente como base para a computação
cliente-servidor em geral?
R: Páginas da Web são exemplos de recursos que são compartilhados. Esses recursos
são gerenciados por servidores Web. Arquitetura cliente-servidor. O Navegador da
Web é um programa cliente (por exemplo, Firefox ou IE) executado no computador. O
servidor Web acessa os arquivos locais que contêm as páginas da Web e os fornece ao
cliente (processos do navegador). HTML é uma linguagem relativamente simples para
analisar e processar, mas confunde apresentação com os dados subjacentes que estão
sendo apresentados. Os URLs são localizadores de recursos eficientes, mas não são
suficientemente ricos como links de recursos. Por exemplo, eles podem apontar para
um recurso que foi realocado ou destruído; sua granularidade (como um recurso) é
muito grosseira para muitos propósitos. O HTTP é um protocolo simples que pode ser
implementado com uma pequena pegada e que pode ser usado em muitos tipos de
transferência de conteúdo e outros tipos de serviço. Sua verbosidade (mensagens
HTML tendem a conter muitas strings) torna ineficaz para passar pequenas
quantidades de dados. HTTP e URLs são aceitáveis como uma base para a computação
cliente-servidor, exceto que (a) não há forte typechecking (serviços web operam por
tipo de verificação de valor sem apoio do compilador), (b) há a ineficiência que
mencionamos.

1.7 - Um programa servidor escrito em uma linguagem (por exemplo, C++) fornece a
implementação de um objeto BLOB destinado a ser acessado por clientes que podem
estar escritos em outra linguagem (por exemplo, Java). Os computadores cliente e
servidor podem ter hardware diferente, mas todos eles estão ligados em uma rede.
Descreva os problemas devidos a cada um dos cinco aspectos da heterogeneidade que
precisam ser resolvidos para que seja possível um objeto cliente invocar um método
no objeto servidor.
R: À medida que os computadores estão ligados a uma internet, podemos supor que os
protocolos da Internet lidar com as diferenças de redes. Mas os computadores podem
ter um hardware diferente - portanto, temos de lidar com as diferenças de
representação de itens de dados de pedido e mensagens de resposta dos clientes aos
objetos. Um padrão comum será definido para cada tipo de item de dados que devem
ser transmitidos entre o objeto e seus clientes. Os computadores podem executar
sistemas operacionais diferentes, portanto, temos de lidar com diferentes operações
para enviar e receber mensagens ou para expressar invocações. Assim, no / C ++
nível Java uma operação comum faria ser usado que será traduzido para a operação
específica de acordo com o sistema operacional que ele é executado. Temos duas
diferentes linguagens de programação C ++ e Java, eles usam representações
diferentes para dados estruturas, tais como cordas, arrays, registros. Um padrão
comum será definido para cada tipo de estrutura de dados que devem ser transmitidos
entre o objeto e seus clientes e uma maneira de traduzir entre essa estrutura de
dados e cada um dos idiomas. Podemos ter diferentes implementadores, por exemplo,
um para C ++ e outra para Java. Eles terão de acordar sobre as normas comuns
mencionadas acima e para documentá-los

1.8 - Um sistema distribuído aberto permite que novos serviços de compartilhamento


de recursos (como o objeto BLOB do Exercício 1.7) sejam adicionados e acessados por
diversos programas clientes. Discuta, no contexto desse exemplo, até que ponto as
necessidades de abertura do sistema diferem das necessidades da heterogeneidade.
R: o sistema distribuído usa um conjunto comum de protocolos de comunicação
(provavelmente protocolos de internet). Usa um padrão definido para representar os
itens de dados (para lidar com a heterogeneidade de hardware). • Ele usa um padrão
comum para operações de passagem de mensagens (ou para invocações). • Ele usa um
padrão independente linguagem para representar estruturas de dados. Mas para o
sistema distribuído aberto as normas devem ter sido acordados e documentados antes
do BLOB objeto foi implementado. Os implementadores devem estar de acordo com essas
normas. Além disso, a interface para o BLOB objeto deve ser publicado para que
quando ele é adicionado ao sistema, atuais e novos clientes será capaz de acessá-
lo. A publicação dos padrões permite que partes do sistema a ser implementado por
diferentes fornecedores e trabalhar em conjunto

1.9 - Suponha que as operações do objeto BLOB sejam separadas em duas categorias –
operações públicas que estão disponíveis para todos os usuários e operações
protegidas, que estão disponíveis somente para certos usuários nomeados. Indique
todos os problemas envolvidos para se garantir que somente os usuários nomeados
possam usar uma operação protegida. Supondo que o acesso a uma operação protegida
forneça informações que não devem ser reveladas para todos os usuários, quais
outros problemas surgem?

1.10 - O serviço INFO gerencia um conjunto potencialmente muito grande de recursos,


cada um dos quais podendo ser acessado por usuários de toda a Internet por
intermédio de uma chave (um nome de string). Discuta uma estratégia para o projeto
dos nomes dos recursos que cause a mínima perda de desempenho à medida que o número
de recursos no serviço aumenta. Sugira como o serviço INFO pode ser implementado de
modo a evitar gargalos de desempenho quando o número de usuários se torna muito
grande.
R: Algoritmos que usam estruturas hierárquicas dimensionar melhor do que aqueles
que usam estruturas lineares. Por conseguinte, a solução deve sugerir um esquema de
nomenclatura hierárquica. por exemplo. que cada recurso tem um nome do formulário
'ABC' etc em que o tempo necessário é O (log n), onde n existem recursos do
sistema. Para permitir que um grande número de usuários, os recursos são divididos
entre vários servidores, por exemplo, nomes começando com A a um servidor, com B no
servidor 2 e assim por diante. Pode haver mais do que um nível de particionamento
como no DNS. Para evitar gargalos de desempenho do algoritmo para procurar um nome
deve ser descentralizada. Esse é, ao mesmo servidor não deve ser envolvido em olhar
acima de todo nome. (Uma solução centralizada usaria um único servidor raiz que
mantém um banco de dados local que mapeia partes da informação para servidores
específicos). Alguns replicação é necessária para evitar tal centralização. Por
exemplo: i) o banco de dados de localização pode ser replicado em vários servidores
raiz ou ii) o banco de dados de localização pode ser replicado em todos os
servidores. Em ambos os casos, diferente os clientes devem acessar servidores
diferentes (por exemplo, os locais ou aleatoriamente).
1.11 - Liste os três principais componentes de software que podem falhar quando um
processo cliente chama um método em um objeto servidor, dando um exemplo de falha
em cada caso. Sugira como os componentes podem ser feitos de modo a tolerar as
falhas uns dos outros.
R: Reatividade: Os sistemas devem ter poucas camadas de software e minimizar
transferências de dados entre o cliente-servidor.
Taxa de rendimento: Implantar computadores que consigam dar conta das requisições e
ter uma boa infraestrutura de rede.
Balanceamento de carga: deve-se evitar disputar do mesmo recurso e explorar as
capacidades computacionais disponíveis, pode-se também usar migração de tarefas
parcialmente concluídas.

1.12 Um processo servidor mantém um objeto de informação compartilhada, como o


objeto BLOB do Exercício 1.7. Dê argumentos contra permitir que os pedidos do
cliente sejam executados de forma concorrente pelo servidor e a favor disso. No
caso de serem executados de forma concorrente, dê um exemplo de uma possível
“interferência” que pode ocorrer entre as operações de diferentes clientes. Sugira
como essa interferência pode ser evitada.
R: Para execuções concorrentes - mais taxa de transferência no servidor
(particularmente se o servidor tem que acessar um disco ou outro serviço) Contra -
problemas de interferência entre operações simultâneas exemplo: Um segmento do
cliente de lê valor da variável X
Segmento do cliente do B lê o valor da variável X
Cliente Um fio de adiciona 1 para o seu valor e armazena o resultado em X
Cliente fio de B subtrai 1 do seu valor e armazena o resultado em X
Resultado: x: = X-1; imaginar que X é o saldo de uma conta bancária, e os
clientes A e B são de crédito de execução e operações de débito, e você pode
ver imediatamente que o resultado é incorreto. Para superar uso interferência
alguma forma de controle de concorrência. Por exemplo, para uma
utilização de servidor Java operações sincronizadas, como crédito e débito.

1.13 - Um serviço é implementado por vários servidores. Explique por que recursos
poderiam ser transferidos entre eles. Seria satisfatório para os clientes fazer
multicast (difusão seletiva) de todos os pedidos para o grupo de servidores, como
uma maneira de proporcionar transparência de mobilidade para os clientes?
R: As mensagens multicast fornecem uma infraestrutura útil para a construção de
SDs com as seguintes características: Tolerância a falhas baseadas na replicação de
serviços. Localização de objetos em serviços distribuídos. Melhor desempenho via
replicação de dados. Múltipla atualização.
1.14 - Os recursos na World Wide Web e outros serviços são nomeados por URLs. O que
denotam as iniciais URL? Dê exemplos de três diferentes tipos de recursos da Web
que podem ser nomeados por URLs.
R: URL significa Unifor Resource Locator(localizador de recurso uniforme).Três
exemplos de recursos que podem usar URLs: um arquivo ou u ma
imagem, filme, som, qualquer coisa que pode ser processado, uma
consulta a um banco de dados ou a um mecanismo de busca.
1.15 - Cite um exemplo de URL HTTP. Liste os principais componentes de um URL HTTP,
dizendo como seus limites são denotados e ilustrando cada um, a partir de seu
exemplo. Até que ponto um URL HTTP tem transparência de localização?
R: Exemplo de URL HTTP: http:/ifapa.edu.br/index.php
Principais componentes: Antes do “:” define o protocolo: ex: http (“Hyper Text
Transport Protocol). A parte entre // e / é o nome do domínio no servidor web. Ex:
ifpa.edu.br; O resto refere-se à informação solicitada ao servidor (recurso) que
está dentro de um diretório usado no servidor web. Ex: o recurso “index.php” está
localizado no diretório raiz do servidor ifpa.edu.br; quanto à transparência: O
nome do host “www” é independente da localização, por isso temos a transparência do
local em que o endereço de um determinado computador não está incluído. Portanto, a
organização pode mover o serviço da Web para outro computador. Porém, se a
responsabilidade de fornecer um serviço de informações baseado em WWW se deslocar
para outra organização, a URL precisaria ser alterada.

Você também pode gostar