Escolar Documentos
Profissional Documentos
Cultura Documentos
SISTEMAS DISTRIBUIDOS
Cliente Servidor
Plano de Aula
2
Clientes e Servidores
Processos no modo Usurio
Reply
Servidor
recv(enderecoCliente, Buffer, sizeof (Buffer),0 ); printf(MSG de request do cliente: %s, Buffer); strcpy(Buffer, Servidor Responde...); send(enderecoCliente,Buffer, sizeof(Buffer),0);
Endereamento
Endereo de Mquina Monitorado pelo Kernel local No identifica qual processo deve receber a mensagem
Mltiplos processos na mquina destino
10
No um esquema transparente
O usurio conhece a localizao do servidor
11
12
13
14
Caches de endereos podem ser usadas Requer um componente centralizado Servidor de nomes pode ser replicado
Cuidados devem ser tomados para manter a consistncia entre servidores
15
Replicao
Vrios servidores de nomes
16
17
strcpy(msg, teste de envio com send); send(porta, msg, sizeof(msg), 0) strcpy(msg, lixo); Bloqueia o remetente at que a mensagem seja entregue ao destinatrio Aps liberao a rea de memria de msg est livre para ser manipulado
A linha 3 s ser executada aps o trmino do send da linha 2. O receptor receber teste de envio com send
18
RECEIVE sncrono
Bloqueia o processo at a mensagem ser colocada na rea de memria de msg A linha 3 s executa aps o recv ter colocado a mensagem na varivel msg. Se nada foi enviado, fica bloqueado aguardando.
19
Retorna o controle ao emissor imediatamente, antes da mensagem ser enviada Paralelismo entre o processo emissor e a transmisso da mensagem
20
A rea de memria com a mensagem (vetor[0].buf) no deve ser modificado at que a mensagem chegue ao destino. O Kernel deve fazer uma cpia da mensagem ou interromper o remetente para avisar que o rea de memria com a mensagem est livre novamente.
21
Informa ao Kernel onde a rea de memria onde ser colocada a mensagem recebida (vetor[0].buf) est localizado Se ao executar a linha 2 no houver mensagem na caixa postal, a linha 3 imprime lixo. Caso contrrio, imprime a mensagem da caixa.
22
Permite que o receptor continue sua execuo O receptor pode utilizar uma primitiva para interrogar o ncleo sobre o estado da operao Receive condicional com timeout
23
Se o modelo sncrono utilizasse THREADS a escalabilidade seria a mesma, mas o consumo de recursos do SO seria maior.
24
25
Cliente Executando
Cliente Executando
Cliente bloqueado
Send()
Envio da mensagem
Retorno do Kernel
26
Simples
27
Cliente Suspenso
WSASend()
Retorno do Kernel
28
Retorno do SEND significa que a rea de memria da mensagem est Livre Emissor no sabe que a mensagem ainda no foi entregue Desvantagem
Overhaed da cpia para memria da Interface de rede
29
Cliente Suspenso
WSASend()
Retorno do Kernel
30