Baixe o app para aproveitar ainda mais
Prévia do material em texto
Respostas P1 Outra turma (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). Um Sistema Distribuído é uma coleção de computadores independentes que aparenta aos usuários do sistema como se fosse um único computador. Características: • Um único mecanismo de comunicação interprocesso (global qualquer processo pode se comunicar com qualquer outro) • Esquema global de proteção • Gerenciamento de processos precisa ser o mesmo no sistema todo (criação, destruição, iniciação, interrupção de processos) • Único conjunto de chamadas do sistema (e que tenha sentido em um SD) • Sistema de arquivo também precisa ter as mesmas características • Cópias idênticas do kernel executam em todas as CPUs do sistema (escalonamento, swapping, paginação, etc) (Peso 1) O que significa transparência no paralelismo? Transparente ao paralelismo: a aparência que um sistema distribuído deve ter para seus usuários tem de ser a mesma de um sistema tradicional, fazendo uso de um único processador com tempo compartilhado. Atividades podem acontecer em paralelo sem que o usuário perceba. (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? Problema do Modelo ClienteServidor O paradigma básico que envolve toda comunicação é construído como Entrada e Saída > perda da transparência. Idéia Básica da RPC Programas (ou processos) podem chamar procedimentos localizados em outras máquinas. CARACTERÍSTICAS: Idéia simples e elegante, fazer a chamada remota se parecer o máximo possível com a chamada local. Problemas: quando as máquinas são diferentes (espaço de endereçamento, parâmetros) e quando há falha em uma delas. Para solucionar o problema da passagem por referência no modelo RPC, temos as seguintes opções: Solução 1 Proibir o uso de ponteiros e passagem de parâmetros por referência. Solução 2 Copiar o arranjo apontado pelo ponteiro na mensagem e enviálo para o servidor. O servidor “stub” pode então chamar o servidor com um ponteiro para este arranjo. Mudanças que o servidor faz nas posições apontadas pelo ponteiro afetam o buffer de mensagem do servidor “stub”. Quando o servidor termina, o arranjo é enviado de volta para o Cliente “stub”, que o copia de volta para o Cliente. Efeito: A chamada por referência foi substituida pela chamada copia/restaura. O modelo clienteservidor não possui esse problema pois ele não altera os valores, apenas lê, logo não precisa de passagem de parâmetros. (Peso 1) Para que servem os "stubs"? Como eles podem ser implementados? Os stubs são responsáveis por empacotar/desempacotar os parâmetros do procedimento e enviar/recebêlos do cliente/servidor. Servindo para garantir a transparencia do sistema. Eles tem a função de deixar a chamada remota transparente, ou seja, faz com que a chamada no servidor pareça uma chamada local ao cliente. ● Stub cliente serve para interceptar as chamadas de procedimento do cliente empacotando os parâmetros e enviando ao servidor. Após a chegada da resposta do servidor ele desempacota o resultado e encaminha para o cliente. ● Stub servidor recebe a requisição do cliente, desempacota os parâmetros, chama o procedimento passando os parâmetros e quando obtém o resultado ele empacota e encaminha de volta ao cliente. Possível implementação: Componentes: cliente, servidor e seus respectivos stubs e a rede pela qual os dados serão transmitidos: Interrelações: Cliente > stub > rede > stub serv > servidor ● Execução: 1. Cliente requisita algum procedimento do servidor ● Execução: 2. o clientestub intercepta a chamada, empacota os parâmetros (marshalling) e envia mensagem de request ao servidor pela rede; ● Execução: 3. chegando lá o servstub desempacota os parâmetros (unmarshalling), chama o procedimento passando os parâmetros, empacota o resultado e envia a mensagem de reply ao cliente pela rede; ● Execução: 4. clientestub recebe mensagem, desempacota o resultado e encaminha para o cliente; (Peso 1) Qual a principal diferença entre SO de rede e SO distribuído? A principal diferença entre os sistemas centralizados e os distribuídos está na forma de comunicação e de sincronização entre os processos. Enquanto nos sistemas centralizados a sincronização é realizada por áreas compartilhadas de memória nos sistemas distribuídos a sincronização é obtida através da troca de mensagens. (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? 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