Buscar

Sistemas Distribuídos P1 Célio

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 6 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 6 páginas

Prévia do material em texto

PROVA I 
SISTEMAS DISTRIBUÍDOS ­ Turma C 
 
1 ­ (Peso 1) Os termos software fracamente acoplados e software fortemente acoplados são 
frequentemente usados para descrever sistemas distribuídos. Qual é a diferença entre eles? 
 
Um SD com software fracamente acoplado permite que as máquinas e usuários do sistema 
sejam independentes um dos outros, interagindo em grau limitado quando necessário. 
Já em um SD com software fortemente acoplado os diversos processadores do sistema 
constantemente interagindo entre si, cooperando  na execução de uma  mesma tarefa. 
(Rodolfo) ­ Um software fracamente acoplado é um software em que tarefas realizadas pelas 
diferentes máquinas sejam, basicamente, independentes uma da outra, cada uma fazendo sua 
própria tarefa, gerando seus resultados, e utilizando os recursos da máquina em que reside, se 
comunicando quando necessário. Já num software fortemente acoplado, as tarefas são 
divididas entre os diferentes processadores de forma a balancear a carga de tarefas sendo 
executadas, e a comunicação é mais intensa por causa disso. 
 
2 ­ (Peso 1) Faça uma comparação entre os Modelos: Cliente­Servidor e a Comunicação em 
Grupo. Por que a Chamada Remota de Procedimneot não pode ser usada como base para a 
Comunicação em Grupo? 
 
NO MCS a comunicação envolvia somente duas partes, já na comunicação em grupo uma 
coleção de processos agem juntos em um sistema de tal forma que quando uma mensagem é 
enviada para um dos processos todos no seu grupo o recebem. 
Porque a Chamada remota de procedimento não permite a comunicação de um processo com 
vários outros.. 
(Rodolfo) ­ O modelo cliente­servidor é um modelo no qual um programa de usuário (cliente) 
em execução necessita de uma outra função ou tarefa que só é realizada por outro processo, o 
chamado servidor. Para tal, a comunicação é estabelecida entre o cliente e servidor em 
questão, havendo troca de informações de 1 para 1. Já a Comunicação em grupo, diferentes 
máquinas com diferentes endereços são agrupadas de forma a trabalharem juntas. A 
comunicação, agora, é feita pelo grupo, ou seja, de maneira geral, a comunicação pode ocorrer 
de um cliente para vários servidores, simultaneamente, que fazem parte de um mesmo grupo. 
Novos processos podem entrar e antigos processos podem sair de um grupo. Além disso, um 
processo pode pertencer à mais de um grupo. A RPC não permite a comunicação em Grupo 
porque ela é feita, apenas, entre um cliente e um servidor correspondente, não conseguindo 
efetuar a comunicação entre um cliente e mais de um servidor.  
 
3 ­ (Peso 1) Qual é o problema da passagem de parâmetros por referência na Chamada 
REmota de Procedimento e de que forma pode ser resolvido? 
 
Não tenho certeza: O problema consiste no fato do servidor não ter acesso a memória do 
cliente. Logo é necessario copiar o arranjo apontado pelo ponteiro na mensagem, e depois das 
devidas alterações no servidor recopiar o mesmo na memória 
 
[resposta Flavio]  
Há problemas no uso de ponteiros, pois os endereços neles armazenados são referentes á 
uma determinada máquina. Ao passar esse endereço para outra máquina, como parâmetro, 
esse mesmo endereço enviado pode conter LIXO nessa outra máquina. 
(Rodolfo) ­ O problema é que, por estarmos enviando endereços como parâmetros, pode haver 
diferenciação entre o endereço enviado e usado pelo cliente e o endereço utilizado pelo 
servidor. Como o cliente e servidor podem estar em máquinas diferentes, os endereços 
utilizados pelo cliente são diferentes dos endereços utilizados pelo servidor. Dessa forma, a 
utilização de parâmetros por referência pode mandar lixo (informações incorretas de um 
mesmo endereço) e o programa recebedor pode gerar resultados totalmente errôeos. Uma 
solução seria o envio do arranjo que o ponteiro aponta para o servidor “stub” e este, então, irá 
colocar o arranjo em um novo endereço no servidor (o mesmo acontece na volta da resposta 
para o cliente) ­ passagem por copia/restaura ­ Poderiamos falar também dos parâmetros que 
são de entrada e saída para agilizar o processo de cópia, em que a cópia é feita apenas com 
os parâmetros de saída.  
 
 
4 ­ (Peso 1) A chmada "deregister" do binder tem um único identificador como um dos 
parâmetros. Isto é realmente necessário uma vez que os outros parâmetros (nome e versão) 
identificam o serviço? Explique. 
 
[Marco]Sim, o ID único é um parâmetro necessário. Vamos supor que dois clientes tenham 
conhecimento de um serviço que seja identificado pelo id1, nome1 e versão1, e em algum 
momento esse serviço seja atualizado para um nome diferente de nome1 e sua versão também 
mude, a única maneira de identificar que esse "novo" serviço ainda é o serviço de nome1 com 
o respectivo nome e versão alterados é através de seu ID único, caso contrário parece para o 
cliente que o serviço de nome1 não existe mais e há um novo serviço disponível. 
(Rodolfo) Sim, é necessário. O ID serve para identificar um serviço dentre várias cópias de um 
mesmo serviço, por exemplo. O nome e a versão identificam um tipo de serviço. Mas, para um 
mesmo tipo de serviço, podem haver diferentes cópias. O id é o número da porta do serviço, 
podendo identificar o local do serviço para serviços de mesmo nome e versão. 
 
5 ­ (Peso 1) O que significa "single­system image" (imagem única do sistema?) 
Imagem de um sistema único ocorrem quando temos Software fortemente acoplados em 
hardware fracamente aclopados. Objetivo do sistema é criar a ilusão para os usuários de que a 
rede de computadores é um único sistema timesharing 
[Marco]imagem única de sistema é a ideologia do sistemas distribuídos onde varias maquinas 
independentes trabalham de forma a Aparentar ao usuário como se fosse uma única maquina. 
(Rodolfo) ­ Imagem única de sistema é usada em Sistemas Distribuidos (onde o software é 
fortemente acoplado e o hardware é fracamente acoplado). Isso quer dizer que cada máquina 
independente utilizada no sistema deve ter uma cópia do estado da máquina uma da outra, ou 
seja, cada máquina sabe o estado dos registradores, periféricos e outros componentes das 
máquinas, de forma a simularem um único CPU trabalhando, quando, na verdade, há vários 
trabalhando de forma independente. 
 
 
6 ­ (Peso 1) Qual a principal função do cliente e servidor "Stub"? 
A principal função do cliente Stub é requisitar ao Kernel que envie uma mensagem com 
os parâmetros ao cliente stub. 
Não tenho certeza: O servidor Stub deve disponibilizar os parâmetros para que o 
servidor possa realizar o procedimento como uma chamada local.  
 
 
[Marco]A principal função do cliente e servidor stub é fazer com que uma chamada remota do 
sistema se pareça local. O cliente stub pega os parâmetros, colocá­los na mensagem e envia 
para o servidor stub. O servidor stub pega essa mensagem, faz as operações necessárias e 
devolve na mensagem um resultado para o cliente. 
(Rodolfo) ­ A principal função do cliente e servidor stub() é dar transparência à chamada remota 
de procedimento, ou seja, o usuário não deve se preocupar mais com detalhes de 
implementação para realizar um procedimento que não está localizado em sua máquina: o 
proprio software é responsável por lidar com as necessidades e dificuldades geradas na 
comunicação. 
 
7 ­ (Peso 1) Descreva as vantagens e desvatagens da passagem de mensagem bloqueante e 
não bloqueante. 
Passagem de mensagem bloqueante: send e receive, bloqueia o processo até que uma 
mensagem seja recebida (servidor) e bloqueia o processo até que uma mensagem seja 
enviada (cliente). Desvantagem: Se um servidor falhar e o cliente não tiver um time­out 
implementado, o cliente pode nunca receber a resposta. Se o cliente receber uma mensagem 
enquanto está enviando uma mensagem, quando ele retornar ao processo não há garantias 
que ele receba a mensagem, pois estava bloqueado. 
Passagem de mensagem não bloqueante: o cliente/servidorcontinua a executar enquanto está 
esperando um send/receive. O processo que executa o sender não pode alterar o buffer 
enquanto a mensagem não for enviada (requer implementação de verificação de envio) 
 
8 ­ (Peso 3) Descreva um Servidor de Nomes, um Servidor de Arquivos e um Cliente fazendo a 
chamada para um dos seus serviços. 
 
[Flavio]  Servidor de Nome: Envia : Endereço do Serviço(Servidor)  requisitado. Recebe : 
Mensagem Broadcast do Cliente com a requisição de onde fica um Serviço. Mensagem 
broadcast do Serviço  ( antes dele começar a executar o loop ) para cadastrar. 
 
Cliente: Envia: Mensagem broadcast para o Servidor de Nomes requisitando onde fica 
determinado serviço. Mensagem para o Serviço ( utilizar o serviço ). Recebe: Mensagem do 
servidor de nomes com o endereço do serviço desejado. 
 
Serviço: Envia: Mensagem Broadcast para o servidor de nomes para o cadastro do seviço. 
Mensagem com o resultado após o serviço ser utilizado. Recebe : Mensagem do Cliente 
recebendo a solicitação do serviço. 
(Rodolfo) ­  
Servidor de Nomes: armazena os endereços e portas dos servidores disponíveis. Pode ser 
implementado de diferentes formas, mas, usualmente, ao iniciar um servidor, o mesmo envia 
essa sua “inicialização” para o servidor de nomes para que este armazene os endereços do 
servidor inicializado. Quando um cliente precisa de um serviço, ele verifica se o mesmo está 
disponível pelo servidor de nomes. Se estiver, o SN retorna o endereço e porta do serviço para 
o cliente e, então, o cliente requisita o serviço para o servidor. Quando um servidor torna­se 
indisponível, o mesmo é excluído do servidor de nomes. 
Servidor de Arquivos: Pode ser chamado quando um programa deseja criar, excluir, ler ou 
escrever informações dos arquivos presentes em alguma máquina. Para ter acesso aos 
arquivos de uma máquina, é necessário acessar o servidor de Arquivos e este será o 
responsável por fazer as tarefas necessárias. 
Cliente: é aquele que deseja realizar algum serviço mas que é incapaz, requisitando o serviço 
para um servidor. Também chamado de programa do usuário. 
 
 
 
 
=================================================================== 
 
 
(Peso 3) Esquematizar (podia ser desenho, pseudocógico, etc) um servidor e o cliente 
solicitando um dos serviços (essa questão era baseada nas práticas do lab, mais precisamente 
no primeiro exercício). 
 
 
 
 
(Peso 1) Quais as características dos sistemas distribuídos? (def. genérica e mais alguma coisa 
pra complementar). 
Máquinas autônomas e um software que transparece ao usuário a idéia de que o 
sistema inteiro está em apenas uma máquina são as principais caracteristicas de um sistema 
distribuído. 
É uma coleção de computadores independentes que aparenta aos usuários do sistema 
como se fosse um único só computador. 
Sistemas sistribuidos são sistemas com softwares fortemente acoplados, ou seja, toda tarefa 
realizada no sistema pode ser distribuída em diferentes máquinas, em diferentes 
processadores, de forma a balancear a carga de trabalho, e com hardware fracamente 
acoplados. Sendo assim, são várias máquinas, ou cpus, interligadas, mas realizando tarefas de 
forma independente, dando a ilusão ao usuário de que há apenas uma máquina, uma cpu, 
totalmente independente uma das outras. Todo o processo de comunicação entre processos, 
que deve ser único, e interligação das máquinas é feito de forma transparente ao usuário. 
 
(Peso 1) O que significa transparência no paralelismo? 
 
Transparência no paralelismo é quando uma ou mais atividades estão acontecendo em 
paralelo (daí o nome ) sem o conhecimento dos usuários. 
 
(Peso 2) Fazer uma comparação entre os modelos cliente­servidor e RPC. O que pode ser feito 
para solucionar o problema da passagem por referência no modelo RPC? Pq o modelo 
cliente­servidor n possui esse problema? 
No modelo CS a idéia é estruturar o SO como um grupo de processos cooperativos de 
processos e servidores. Desse jeito não ha necessidade de estabelecer uma conexão. Porém 
como toda comunicação é construída como Entrada­>Saida perde­se transparencia. 
Já na CRP programas podem chamar procedimentos localizados em outras máquinas. 
 
(Peso 1) Para que servem os "stubs"? Como eles podem ser implementados? 
Stubs servem para converter parâmetros durante uma chamada remota de 
procedimento. 
São implementados de modo que são chamados quando uma chamada é remota. No 
lado do cliente, quando uma requisição de chamada remota acontece o client stub entra em 
ação enviando uma mensagem com os parâmetros para o servidor, atravéz do Kernel. Quando 
o servidor recebe uma mensagem com pedido de execução remota, o pedido é transferido ao 
servidor stub. Os parametros são disponibilizados e o procedimento ocorre no sevidor como se 
a chamada fosse local. 
 
(Peso 1) Qual a principal diferença entre SO de rede e SO distribuído? 
O SO de rede possui software fracamente acoplado e o SO distribuido fortemente 
acoplado. No SO de rede cada estação tem seu proprio SO e comandos são normalmente 
executados localmente. Em contrapartida no SO distribuido o objetivo do sistema é criar a 
ilusão para os usuários de um sistema único, um Uniprocessador virtual. Qualquer processo 
pode se comunicar com qualquer processo. 
  
(Peso 1) A transparência na concorrência é uma característica desejável nos sist. distribuídos. 
Os sistemas centralizados possuem essa característica automaticamente? 
Transparência na concorrência =  Múltiplos usuários podem compartilhar recursos 
automaticamente ( só para lembrar )  
           Transparente à concorrência: os usuários não devem notar a presença de outros 
usuários. Os usuários são independentes. 
Transparência de concorrência: múltiplos usuários podem partilhar recursos 
automaticamente. 
  Isso já existe nos sistemas centralizados porque possuem apenas o próprio usuário que 
está utilizando a máquina, por isso já possui essa característica automaticamente.

Continue navegando