Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Exercícios – Sistemas Distribuídos – Capítulo 1
1. Cite cinco tipos de recursos de hardware e cinco tipos de recursos de software
ou dados que podem ser compartilhados. Exemplifique como esse
compartilhamento ocorre em Sds.
Hardware: Discos, impressoras;
Software: arquivos, bases de dados,objetos;
Exemplo: compartilhamento de arquivos do google drive através da internet ou o
compartilhamento de impressoras entre vários computadores de uma mesma rede.
2. Como sincronizar o relógio de dois computadores ligados por uma rede local
sem referência a uma fonte externa de tempo? Quais fatores limitam a precisão do
procedimento descrito por você? Como poderia um grande número de
computadores conectados à Internet serem sincronizados? Discuta a precisão do
procedimento. 
Dois relógios ligados por uma rede local podem ser sincronizados sem uma fonte de hora
externa, pois , sendo 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 e a técnica que torna isso real chama-se relógios
lógicos.
Um processo envia o tempo t de seu relógio local para o outro em uma mensagem m,
pois o receptor se programaria para configurar o seu com o tempo t + Tmin, onde Tmin é
o tempo necessário para levar a mensagem m de um para o outro, ocorrendo sincronia
perfeita entre eles.
Entretanto Tmin pode sofrer uma variação desconhecida devido às variáveis que podem
influenciar na queda do desempenho da rede(concorrência pelo canal de comunicação,
por exemplo), mesmo assim, Tmin pode ser estimado considerando o canal sempre
acessível, ou seja, livre de congestionamentos.
Além do Tmin, também existe um limite máximo de tempo para a transmissão da
mensagem. Sendo a incerteza igual a Tmax – Tmin, o receptor pode configurar o seu
relógio no ponto médio da incerteza, ou seja, somar o tempo t que demorou com o Tmax
e o Tmin, sendo o desvio de no máximo a incerteza dividida por dois.
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?
Vantagem: Utilizar uma arquitetura cliente-servidor a qual uma única cópia do estado do
mundo é mantida em um servidor centralizado e acessada por programas clientes em
execução, nos consoles ou em outros equipamentos dos jogadores. A arquitetura
centralizada ajuda significativamente no gerenciamento do mundo virtual e a cópia única
também diminui as preocupações com a concorrência. Assim, o objetivo é garantir
respostas rápida por meio, da otimização de protocolos de rede e também para eventos
recebidos.
Desvantagem: Se o servidor central cair não teria outro para substituí-lo.
4. Considere um viajante em uma estação de trem que nunca visitou antes,
portando seu PDA com dispositivos para conexão sem fio. Sugira como o usuário
poderia descobrir os serviços oferecidos pela estação e enumere os desafios
técnicos para alcançar tal objetivo.
Este usuário poderia se conectar a uma wifi, e receber informações sobre este local
devido ao provedor desta wifi, inserir tais informações na rede. Aplicativos
reconhecimento de localização também podem dar essas informações.
Desafios: O usuário deve executar um programa em seu dispositivo que executa estas
URLs, dando controle suficiente, sem que elas estejam inundadas por URLs indesejadas.
Os meios de propagar a URL(por exemplo, infravermelho ou uma LAN sem fio 802.11)
devem ter um alcance que correspondem à propagação física do próprio local.
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?
O modelo básico de funcionamento da internet é o chamado cliente-servidor, onde existe
uma máquina central que tem armazenado os documentos que os usuários desejam ver e
estes, por sua vez, são chamados clientes.
A computação em nuvem é a distribuição de serviços de computação – servidores,
armazenamento, banco de dados, redes, software, análise, inteligência e muito mais pela
internet(“a nuvem”), proporcionando inovações mais rápidas, recursos flexíveis e
economia na escala. Você normalmente paga apenas pelos serviços de nuvem que
utiliza, ajudando a reduzir os custos operacionais, a executar sua infraestrutura com mais
eficiência e a dimensionar conforme as necessidades de sua empresa.
6. Utilize a WWW como um exemplo para ilustrar os conceitos de compartilhamento
de recurso, cliente e servidor. Quais são as vantagens e desvantagens de HTML,
URL e HTTP como as tecnologias base para navegação em informação? Alguma
dessas tecnologias é conveniente como base para a computação cliente/servidor
em geral?
Uma página web é qualquer documento que faça parte de um sítio web e que costuma
conter ligações (igualmente chamadas hiperligações ou links) para facilitar a navegação
entre os conteúdos.
HTML: É uma linguagem relativamente simples para analisar e processar, está disponível
em diversas plataformas e sua performance é ótima em PC`s, dispositivos móveis e
tablets, mas confunde apresentação com os dados subjacentes que estão sendo
apresentados.
URL: O objetivo de um URL é identificar um recurso. Os navegadores examinam os
URL`s para acessar os recursos correspondentes. O usuário digita um url no navegador,
mais comumente, o navegador pesquisa o url correspondente quando o usuário clica em
um link, quando seleciona um url de sua lista de bookmarks ou quando o navegador
busca um recurso incorporado em uma página web como imagem. A desvantagem é que
não são suficientemente ricos como links de recursos.
HTTP: São protocolos simples de serem implementados, mas apesar de serem sensíveis,
eles são tratados de forma textual, já que o HTTP é um protocolo baseado em texto.
Dessa forma, dados que são enviados podem ser acessados no meio do tráfego,
prejudicando muito a segurança de informação.
HTTP e URLs são convenientes como uma base para a computação cliente-servidor.
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.
À 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 usamrepresentações diferentes para dados estruturas,
tais como 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.
8. Um sistema distribuído aberto permite que novos serviços de compartilhamento
de recursos (como o objeto BLOB do Exercício anterior) 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.
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 acordado e documentado
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, actuais e novos clientes será capaz de acessá-los. A
publicação dos padrões permite que partes do sistema a ser implementado por diferentes
fornecedores e trabalhar em conjunto.
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 par todos os
usuários, quais outros problemas surgem?
10. O serviço INFO gerencia uma grande quantidade de recursos, cada um dos
quais podem ser acessados por usuários através da Internet por meio de uma
chave (uma string, por exemplo). Discuta uma abordagem para projetar os nomes
dos recursos que resulte a mínima perda de desempenho quando o número de
recursos no serviço aumenta. Sugira como o serviço INFO pode ser implementado
para evitar gargalos de desempenho quando o número de usuários torna-se muito
grande. 
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
descentralizadas. Esse é, ao mesmo servidor não deve ser envolvido em olhar acima de
todo nome. (Uma solução centralizada usaria uma única 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).
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.
Os três principais componentes de software que podem falhar são:
- O processo de cliente, por exemplo, ele pode falhar
- O processo do servidor, por exemplo, o processo pode falhar
- O software de comunicação, por exemplo, uma mensagem pode não chegar
As falhas são geralmente causados independentemente um do outro. Exemplos de falhas
dependentes:
- Se a perda de uma mensagem faz com que o processo do cliente ou servidor deixe de
funcionar. (A queda de um servidor causaria um cliente a perceber que uma mensagem
de resposta está faltando e pode indiretamente causar falha).
- Se os clientes quebrando servidores causar problemas.
- Se a queda de um processo provoca uma falha no software de comunicação. Ambos os
processos devem ser capazes de tolerar as mensagens em falta. O cliente deve tolerar
uma mensagem de resposta faltando depois de ter enviado uma mensagem de solicitação
de chamada. Em vez de fazer o usuário esperar para sempre para a resposta, um cliente
processo poderia usar um tempo limite e, em seguida, informar ao usuário que não tem
sido capaz de entrar em contato com o servidor. Um servidor simples, apenas espera por
mensagens de pedido, executa invocações e envia respostas. Deveria ser absolutamente
imune a mensagens perdidas. Mas, se um servidor armazena informações sobre seus
clientes que eventualmente pode falhar se os clientes falhar sem informar o servidor (de
modo que ele pode remover informações redundantes). O software de comunicação deve
ser concebido para tolerar falhas nos processos de comunicação. Por exemplo, a falha de
um processo não deve causar problemas na comunicação entre os sobreviventes
processos.
12. Um processo servidor mantém um objeto de informação compartilhada, como o
objeto BLOB do Exercício 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.
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.
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?
A migração de recursos (objetos de informação) é realizado: para reduzir os atrasos de
comunicação (colocar objetos em um servidor que está na mesma rede local que seus
usuários mais freqüentes); para equilibrar a carga de processamento e ou a utilização do
armazenamento entre diferentes servidores. Se todos os servidoresde receber todos os
pedidos, a carga de comunicação na rede está muito aumentada e servidores devem
fazer trabalho desnecessário filtrando os pedidos de objetos que eles não possuem.
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.
URL significa Unifor Resource Locator(localizador de recurso uniforme).
Três exemplos de recursos que podem usar URLs: um arquivo ou uma imagem, filme,
som, qualquer coisa que pode ser processado, uma consulta a um banco de dados ou a
um mecanismo de busca.
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?
Exemplo de URL HTTP: http://utfpr.edu.br
Principais componentes:
- Antes do “:” define o protocolo; ex: http(HyperText Transport Protocol).
- A parte entre // e / é o nome do domínio no servidor web. Ex: utfpr.edu.br
- O resto (depois de /) refere-se à informação solicitada ao servidor (o 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 utfpr.edu.br.
Quanto a transparência: O nome de 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ção
baseado em www se deslocar para outra organização, a url precisaria ser alterada.

Mais conteúdos dessa disciplina