Baixe o app para aproveitar ainda mais
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: ClienteServidor 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 clienteservidor é 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 "singlesystem 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 timeout 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 tornase 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 clienteservidor e RPC. O que pode ser feito para solucionar o problema da passagem por referência no modelo RPC? Pq o modelo clienteservidor 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 perdese 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.
Compartilhar