Você está na página 1de 62

Informática

UFRGS

Mo d e lo s d e S is te m a s
D is tribu íd o s

O Mo d e lo Clie n te -S e rv id o r

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 1


Informática Autoria
UFRGS

Au to r 1ª v e rs ã o
Cristiano A. Costa

Lo c a l
II - UFRGS

Re v is õ e s
V8
2009-2
C. Geyer

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 2


Informática Roteiro
UFRGS

Ro te iro
Co m p a ra ç ã o e n tre o Mo d e lo OS I e o Clie n te -Servidor
Clientes e Servidores
Ex e m p lo d e Clie n te e S e rv id o r
Endereçamento
Outros modelos e questões de sw
P rim itiv a s blo qu e a n te s e n ã o -bloqueantes
Bufferização
Confiabilidade
Qu e s tõ e s d e Im p le m e n ta ç ã o

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 3


Informática Roteiro
UFRGS

Mo d e lo s d e S D s
Ou m o d e lo s d e a rqu ite tu ra d e S D s
D e fin e a s p a rte s (m ó d u lo s , c o m p o n e n te s , ...)
Caracteriza cada parte de forma abstrata
Posicionamento das partes
Interação entre elas
Exemplos de modelos
Cliente / servidor
P 2P
Variações
Uso de replicação
Uso de mobilidade de código e/ou dados
Uso de cache
Dinamicidade: inclusão e exclusão de partes

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 4


Informática Comparação com o Modelo OSI
UFRGS

O Mo d e lo OS I n ã o é p e rfe ito p a ra S is te m a s
D is tribu íd o s
Overhead causado por vários protocolos

N ã o d iz c o m o u m S .O. D is tribu íd o d e v e s e r
estruturado

Observação
Modelo OSI:
Modelo padrão para redes de computadores
Define as camadas dos protocolos de redes
[TAN 1992]: 2o ca p. de SD
Tópico de disciplinas do setor de redes

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 5


Informática Comparação com o Modelo OSI
UFRGS

O Mo d e lo OS I n ã o é p e rfe ito p a ra S is te m a s
D is tribu íd o s

Overhead causado por vários protocolos

N o rm a lm e n te S .O.D . u s a m p a rte d a s
camadas

N ã o d iz c o m o u m S .O. D is tribu íd o d e v e s e r
estruturado

Modelo Cliente-Servidor

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 6


Informática Modelo Cliente/Servidor
UFRGS

Mo d e lo Clie n te /S e rv id o r
Um dos modelos mais citados e usados
Prós
Simplicidade
Eficiência (em muitos casos)
Contras
Perde em escalabilidade
Perde em TF
Obs.: conforme caso

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 7


Informática Modelo Cliente/Servidor
UFRGS

Mo d e lo Clie n te /S e rv id o r
Partes
Clientes
Ciclo de vida próprio individual
Usualmente não permanente
Disparado por usuários quando necessário
Eventualmente necessitam um serviço de um
servidor
Usualmente um programa sequencial
Conhece o servidor
Con h ece o ser viço ofer ecido (oper a ções)
Frequentemente em grande número
Indeterminado, variável

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 8


Informática Modelo Cliente/Servidor
UFRGS

Mo d e lo Clie n te /S e rv id o r
Partes
Servidor
Ciclo de vida “permanente”
Frequentemente um programa concorrente
Multithreaded
Oferece várias operações aos clientes
Uma interface pública
Nome ou código da operação
Argumentos
Resultados
Usualmente não conhece clientes

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 9


Informática Modelo Cliente/Servidor
UFRGS
Mo d e lo Clie n te /S e rv id o r
Interação
Clien t e fa z u m a r equ isiçã o a o ser vidor pa ssa n do
Operação
Argumentos de entrada
Pode ser void
Por exemplo, via um send
Cliente fica esperando resposta
Por exemplo, via um receive
Pode ser void

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 10


Informática Modelo Cliente/Servidor
UFRGS

Mo d e lo Clie n te /S e rv id o r
Interação (cont.)
Ser vidor est á esper a n do u m a r equ isiçã o de a lgu m
cliente
Por exemplo, via um receive
Servidor
Verifica a operação
Tr a t a (execu t a ) a oper a çã o com os a r gu m en t os
Prepara uma resposta (resultado)
Servidor
Envia a resposta
Por exemplo, via um send

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 11


Informática Modelo Cliente/Servidor
UFRGS

Mo d e lo Clie n te /S e rv id o r
Variações
Um servidor pode ser cliente de outros servidores
Um cliente pode acessar vários servidores

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 12


Informática Clientes e Servidores
UFRGS

Mo d e lo Clie n te /S e rv id o r
Gru p o d e p ro c e s s o s qu e c o o p e ra m e n tre s i:
(Servidores) oferecem serviços para usuários (Clientes)
Protocolo normalmente utilizado:
Request/Reply
Sem Conexão Exemplo: UDP
Simples
Request
Cliente Servidor

Reply
Kernel Kernel

Rede
Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 13
Informática Clientes e Servidores
UFRGS

Mo d e lo Clie n te /S e rv id o r
Clientes e Servidores rodam o mesmo microkernel
A m e n s a g e m d e re s p o s ta (n ív e l d a a p lic a ç ã o ) p o d e
servir como ack (do protocolo de rede)
P o r s e r u m p ro to c o lo s im p le s , é ta m bé m e fic ie n te

Request
Cliente Servidor

Reply
Kernel Kernel

Rede
Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 14
Informática Clientes e Servidores
UFRGS

Mo d e lo Clie n te /S e rv id o r
A p ilh a d e p ro to c o lo s é m e n o r
S ã o n e c e s s á rio s trê s n ív e is d e p ro to c o lo
(em máquinas idênticas) Camada

5 Request/Reply

2 Enlace de dados

1 Física

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 15


Informática Clientes e Servidores
UFRGS

Mo d e lo Clie n te /S e rv id o r
A p ilh a d e p ro to c o lo s é m e n o r
S ã o n e c e s s á rio s trê s n ív e is d e p ro to c o lo
(em máquinas idênticas) Camada

implementada em software 5 Request/Reply

2 Enlace de dados
implementadas em hardware
1 Física

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 16


Informática Clientes e Servidores
UFRGS

Mo d e lo Clie n te /S e rv id o r
As camadas física e de enlace de dados são
responsáveis por enviar e receber pacotes entre
cliente e servidor (redes) Camada
A camada 5 define um
7
conjunto de respostas e
requisições permitidas 6
Os s e rv iç o s d e c o m u n ic a ç ã o
5 Request/Reply
são implementados através
de chamadas do sistema 4
(system calls)
3

2 Enlace de dados

1 Física

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 17


Informática Clientes e Servidores
UFRGS

Em s is te m a s la rg a m e n te d is tribu íd o s (S LD )
Ex e m p lo s d e S LD : In te rn e t, P 2P, Grade, ...
As fa lh a s d e re d e s ã o (m a is ) fre qü e n te s
É re c o m e n d á v e l u s a r p ro to c o lo s m a is c o n fiá v e is
Por exemplo, com conexão
Ou usar procotolos menos confiáveis mas implementar
em nível de aplicação certos controles mínimos
Essa recomendação é dependente do tipo de aplicação
(ou comunicação)
P or exem plo, com u n ica ções de in for m a çã o,
periódicas, podem fazer uso de protocolos não
confiáveis

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 18


Informática Clientes e Servidores
UFRGS

S is te m a s C/S c o m a c e s s o a ba s e s d e d a d o s
Mu ito s (m a io ria ?) d o s s is te m a s (a p lic a ç õ e s ) a tu a is
acessam bases de dados no lado servidor
Bases de dados:
sist em a s de a r qu ivos, SGBD, LDAPs, bancos de dados
de objet os (r epr esen t a ções, im a gen s, á u dio, vídeos, ...)

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 19


Informática Clientes e Servidores
UFRGS

S is te m a s C/S c o m a c e s s o a ba s e s d e d a d o s
Mo d e lo C/S é e s te n d id o p a ra m o d e lo d e s is te m a
multi-camadas
S e g u n d o [TAN , S D , 2002]: sistemas em 3 camadas
Cliente
Interface com usuário (user interface)
Servidor de aplicações
Camada de processamento
Servidor da base de dados
Camada de dados

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 20


Informática Exemplo de Cliente e Servidor
UFRGS

Ex e m p lo d e Clie n te e S e rv id o r
S e rá a p re s e n ta d o u m e s bo ç o d e
um cliente e
um servidor de arquivos em C.
Composto de três programas
header.h:
arquivo utilizado pelo cliente e pelo servidor para
com pa r t ilh a r a lgu m a s defin ições
sample.c:
exemplo de servidor
procedure.c:
exemplo de procedimento (cliente) que utiliza o
servidor para copiar um arquivo

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 21


Informática Exemplo de Cliente e Servidor
UFRGS

Ex e m p lo d e Clie n te e S e rv id o r
S e rv id o r: qu a tro o p e ra ç õ e s d e fin id a s
CREATE: cria um novo arquivo
READ: lê pedaço de arquivo
WRITE: escreve pedaço de arquivo
DELETE: apaga arquivo existente
Cliente:
Copia arquivo 1 para arquivo 2
Usando
uma lógica interna
e mais um conjunto de chamadas às
operações

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 22


Informática Exemplo de Cliente e Servidor
UFRGS

Ex e m p lo d e Clie n te e S e rv id o r
Uso de Primitivas de send/receive
bloqueantes e
tamanho de mensagens constante
Send
Primeiro argumento: destino
Segundo argumento: mensagem
Receive
1º arg: próprio (recebedor ou destino)
2º arg: mensagem
Mensagem
Pode ser uma estrutura
Diversos tipos de dados combinados

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 23


Informática Exemplo de Cliente e Servidor
UFRGS

Arqu iv o s
Header.c
Define formatos (dados, ...) e constantes comuns ao
programa servidor e aos programas clientes
Por exemplo:
Endereço na rede do servidor
Tamanho máximo de 1 mensagem
...

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 24


Informática Exemplo de Cliente e Servidor
UFRGS

Arqu iv o s (c o n t.)
Sample.c
Código do servidor
Loop infinito
Recebe m en sa gem (pedido) do clien t e
Identifica tipo do pedido
Processa pedido
Responde ao cliente
Procedure.c
Código do cliente
Loop até que leitura retorne nada
Le pedaço do arquivo 1
Limitado pelo tamanho da mensagem
Grava pedaço no arquivo 2

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 25


Informática Exemplo de Cliente e Servidor
UFRGS

h ea d er .h

/*Definições necessárias pelos clientes e servidores */


#define MAX_PATH 255 /*tamanho maximo de
nome_arq*/
#define BUF_SIZE 1024 /*dados transferidos*/
#define FILE_SERVER 243 /* endereço do servidor*/

/*Definições de operações permitidas*/


#define CREATE 1 /*cria um novo arquivo*/
#define READ 2 /*lê pedaço de arquivo*/
#define WRITE 3 /*escreve pedaço de arquivo*/
#define DELETE 4 /*apaga arquivo existente*/

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 26


Informática Exemplo de Cliente e Servidor
UFRGS

h ea d er .h (c o n tin u a ç ã o )

/*Códigos de erro*/
#define OK 0 /*operação feita corretamente*/
#define E_BAD_OPCODE -1 /*operação inexistente*/
#define E_BAD_PARAM -2 /*erro em algum parâmentro*/
#define E_IO -3 /*erro de E/S*/

/*Definição do formato da mensagem*/


struct message {
long source; /*identificador da origem*/
long dest; /*identificador do destino*/

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 27


Informática Exemplo de Cliente e Servidor
UFRGS

h ea d er .h (c o n tin u a ç ã o )

long opcoe; /*qual operação*/


long count; /*quantidade de bytes*/
long offset; /*onde no arq. começa a oper.*/
long extra1; /*campo extra*/
long extra2; /*campo extra*/
long result; /*resultado da operação*/
/* valor depende da op. */
char name[MAX_PATH]; /*nome do arquivo*/
char data[BUF_SIZE]; /*dados lidos ou p/ escrever*/
};

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 28


Informática Exemplo de Cliente e Servidor
UFRGS

sa m p l e.c (ser v i d or )

#include <header.h>
void main(void)
{
struct message m1,m2; /* áreas p/mensagens */
int r; /* área p/respostas */

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 29


Informática Exemplo de Cliente e Servidor
UFRGS
sa m p l e.c (c o n tin u a ç ã o )
while (1){
receive(FILE_SERVER,&m1); /* recebe requisição */
/* processa conforme tipo da requisição */
/* código dos procedimentos internos omitidos */
switch(m1.opcode) {
case CREATE: r = do_create(&m1,&m2); break;
case READ: r = do_read(&m1,&m2); break;
case WRITE: r = do_write(&m1,&m2); break;
case DELETE: r = do_delete(&m1,&m2); break;
default: r = E_BAD_OPCODE;
}
m2.result = r; /* conforme operação */
send(m1.source, &m2);
} }

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 30


Informática Exemplo de Cliente e Servidor
UFRGS

p r oced u r e.c (cl i en t e)

#include <header.h>
int copy(char *src, char *dst)
{
struct message m1; /* mensagem ao/de servidor */
long position; /* posição de leitura */
long client = 110; /* quem envia */

initialize();
position = 0; /* inicia leitura no 1o byte */

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 31


Informática Exemplo de Cliente e Servidor
UFRGS

p r oced u r e.c (c o n tin u a ç ã o )

do {
/*Lê um bloco de dados do arquivo origem*/
m1.opcode = READ; /* prepara mensagem */
m1.offset = position; /* 1o byte:
ajustado por read */
m1.count = BUf_SIZE; /* quantos bytes */
strcpy (&m1.name, src); /* nome arq. */
send(FILE_SERVER, &m1); /* envia req. */
receive(client, &m1); /* recebe resp. */

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 32


Informática Exemplo de Cliente e Servidor
UFRGS
p r oced u r e.c (c o n tin u a ç ã o )
/*grava um bloco de dados no arquivo destino*/
m1.opcode = WRITE;
m1.offset = position;
m1.count = m1.result; /* result = # bytes */
strcpy (&m1.name, dst);
send(FILE_SERVER, &m1);
receive(client, &m1);
position += m1.result; /* result = # bytes */
}while (m1.result > 0); /* zero: nada foi lido */
/* retorna “ok” ou erro */
return(m1.result >= 0 ? OK : m1.result);
}

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 33


Informática Endereçamento
UFRGS

En d e re ç a m e n to d e s e rv id o re s
U m c lie n te p a ra m a n d a r u m a m e n s a g e m a u m
servidor precisa saber o endereço
Ou nomeação
Ex is te m v á ria s fo rm a s d e e n d e re ç a m e n to
Principais destacados:
E n der eça m en t o por n ú m er o de m á qu in a
Endereçamento por processo
E n der eça m en t o por n om es ASCII obt idos de u m
name server

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 34


Informática Endereçamento por número de máquina
UFRGS

En d e re ç a m e n to p o r n ú m e ro d e m á qu in a
U tiliza o n ú m e ro d a m á qu in a p a ra e n d e re ç a m e n to
um processo por máquina
não é transparente
simplicidade
Viável em sistemas simples
1
Cliente Servidor

2
Kernel Kernel
1. Request para 243
2. Reply para 199
Rede

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 35


Informática Endereçamento por número de máquina
UFRGS

P o d e -s e u tiliza r u m a c o m bin a ç ã o e n tre n ú m e ro


d a m á qu in a e n ú m e ro d o p ro c e s s o
não é transparente Exemplo: TCP/IP

simplicidade
mais de um processo por máquina
não precisa de coordenação global
(n ã o h á a m big ü id a d e e n tre p ro c e s s o s )
1
Cliente Servidor

2
1. Request para 243.0 Kernel Kernel

2. Replay para 199.4

Rede

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 36


Informática Endereçamento por processo
UFRGS

En d e re ç a m e n to p o r p ro c e s s o
As s o c ia r a c a d a p ro c e s s o u m e n d e re ç o ú n ic o qu e n ã o
c o n té m o n ú m e ro d a m á qu in a
D u a s a lte rn a tiv a s p a ra e s c o lh a d o n ú m e ro d o
processo:
Garantir números distintos
A1: P r ocesso cen t r a liza do r espon sá vel pela a loca çã o de
endereços (contador incrementado a cada requisição)
Transparência
Escalabilidade
A2: Cada processo pega seu próprio endereço
aleatóriamente de um grande espaço de dados
Transparência
Escalabilidade
Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 37
Informática Endereçamento por processo
UFRGS

En d e re ç a m e n to p o r p ro c e s s o
o cliente pode fazer broadcast de um pacote especial
para localização (locate packet)
o k e rn e l qu e c o n té m o p ro c e s s o d e v o lv e u m a
mensagem do tipo here I am
Transparência
Gera carga extra no sistema

3
Cliente Servidor
1. Broadcast
4
2. Here I am
Kernel Kernel
3. Request
1 2
4. Replay

Rede

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 38


Informática Endereçamento por name server
UFRGS

En d e re ç a m e n to p o r n a m e ser v er
U tiliza u m a m á qu in a e x tra p a ra m a p e a r n o m e s d e
serviços em endereços de máquinas
Servidores são referidos como strings e estas são
embutidas nos programas
Transparente
Requer um componente centralizado
3 1
1. Lookup Server Client Name
Server

2. NS Reply 4 2
3. Request Kernel Kernel Kernel

4. Replay

Rede

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 39


Informática Resumo
UFRGS

Re s u m o Clie n te /S e rv id o r
Conceito
Prós e contras
Características do cliente
Características do servidor
Exemplo
Servidor de arquivos
Cliente: cópia de 1 arquivo

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 40


Informática Resumo
UFRGS

Re s u m o Clie n te /S e rv id o r
Endereçamento
Conceito, e prós e contras de:
Por máquina (IP)
Por máquina e processo (porta)
Por nome de processo único global
Com broadcast
Com servidor de nomes

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 41


Informática
UFRGS

Tra ta m e n to m a is a p ro fu n d a d o d e
qu e s tõ e s v is ta s e m Tro c a d e
Me n s a g e n s

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 42


Informática Primitivas x sincronização
UFRGS

P rim itiv a s B lo qu e a n te s (s ín c ro n a s )
no send, enquanto a mensagem está sendo enviada, o
processo fica bloqueado
o receive fic a blo qu e a d o a té qu e a lg u m a m e n s a g e m
chegue ou até um timeout

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 43


Informática
UFRGS Primitivas x sincronização

P rim itiv a s N ã o -B lo qu e a n te s (a s s ín c ro n a s )
o send retorna o controle imediatamente, antes da
mensagem ser realmente enviada
o receive passa para o kernel o ponteiro para o
buffer e retorna imediatamente, antes de receber a
mensagem
em algumas abordagens o receive não-bloqueante é
a qu e le qu e s ó re c e be qu a n d o já e x is te m m e n s a g e n s e
fic a blo qu e a d o a té c o m p le ta r a re c e p ç ã o , s e n ã o
retorna

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 44


Informática Primitivas bloqueantes
UFRGS

P rim itiv a s blo qu e a n te s


O p ro c e s s o fic a blo qu e a d o d u ra n te a tra n s fe rê n c ia
de mensagem
Me lh o r o p ç ã o p a ra e n v io d e m e n s a g e n s e m
condições normais

Simples de entender
Simples de implementar
Performance para envio de mensagem
CP U fica ociosa du r a n t e a t r a n sm issã o

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 45


Informática Primitivas não-
não-bloqueantes
UFRGS

P rim itiv a s n ã o -blo qu e a n te s c o m c ó p ia


o kernel copia a mensagem para um buffer interno e
então libera o processo para continuar
Performance
S o bre p o r p ro c e s s a m e n to e tra n s m is s ã o d e
mensagens

P rim itiv a s n ã o -blo qu e a n te s c o m in te rru p ç ã o


interrompe o processo que enviou a mensagem
quando o buffer estiver livre para reutilização
Programação Difícil
Performance

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 46


Informática Primitivas síncronas e assíncronas
UFRGS
Ta n e n ba u m
A d ife re n ç a e s s e n c ia l e n tre u m a p rim itiv a s ín c ro n a
e uma assíncrona é se o processo que envia a
mensagem pode reutilizar o buffer imediatamente
após o comando send
preferida por projetistas de sistemas operacionais

An d re w s
U m a p rim itiv a s ín c ro n a é a qu e la e m qu e o p ro c e s s o
que envia fica bloqueado até que o
receptor aceite a mensagem e
mande um ack. Qualquer outra
alternativa é considerada
assíncrona
preferida por projetistas de
linguagens de programação
Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 47
Informática Bufferização
UFRGS

P rim itiv a s n ã o -b u ffer i z a d a s


O buffer para armazenar a mensagem deve ser
especificado pelo programador
Ex is te m d u a s e s tra té g ia s a s e re m e m p re g a d a s n o
caso de um send do cliente, sem um receive do
servidor:
discartar mensagens inesperadas
temporariamente manter mensagens inesperadas

P rim itiv a s bu ffe riza d a s


Existe um buffer para armazenar mensagens
inesperadas
A p rim itiv a d e bu ffe riza ç ã o m a is e m p re g a d a d e fin e
estruturas de dados chamadas mailbox

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 48


Informática Bufferização
UFRGS

P rim itiv a s n ã o -bu ffe riza d a s d is c a rta n d o


mensagens
Implementação
O c lie n te p o d e fic a r te n ta n d o e n v ia r m e n s a g e n s
Podem ocorrer casos em que o cliente desista de
enviar a mensagem

Cliente Endereço
Servidor
A
refere-se a
processo
Kernel Kernel

Rede

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 49


Informática Bufferização
UFRGS

P rim itiv a s n ã o -bu ffe riza d a s te m p o ra ria m e n te


m a n te n d o m e n s a g e n s
reduz a chance da mensagem ser descartada
in tro d u z p ro ble m a d e g e re n c ia m e n to e
armazenamento de mensagens inesperadas

Cliente Servidor
A

Kernel Kernel

Rede

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 50


Informática Bufferização
UFRGS

P rim itiv a s bu ffe riza d a s : Ma i l b oxe s


U m p ro c e s s o qu e e s tá in te re s s a d o e m re c e be r
mensagens avisa o kernel para criar uma mailbox
informando o endereço de origem das mensagens
Todas as mensagens são colocadas na mailbox e uma
chamada a receive simplesmente remove mensagens
dela

Cliente
Endereço Servidor
reduz ainda mais a refere-se a
mailbox
chance de mensagens
Kernel A Kernel
serem descartadas
mailboxes são finitas e
podem necessitar de
estratégias análogas as
Rede
adotadas anteriormente

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 51


Informática Confiabilidade
UFRGS

Trê s d ife re n te s a lte rn a tiv a s p o d e m s e r


u tiliza d a s p a ra qu e s tõ e s d e c o n fia bilid a d e :
a s s u m ir qu e a s p rim itiv a s n ã o s ã o c o n fiá v e is ,
alterando a semântica do send
o sistema não garante que as mensagens são enviadas
o usuário fica responsável por implementar
comunicação confiável

primitivas confiáveis com mecanismos de


acknowledgment do tipo: Request - Ack - Reply - Ack
primitivas confiáveis com mecanismos de
acknowledgment do tipo: Request - Reply - Ack

c o m bin a ç õ e s p o d e m s e r o btid a s e n tre o s


m e c a n is m o s c o n fiá v e is

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 52


Informática Confiabilidade
UFRGS

R eq u est - Ack - R ep l y - Ack


somente quando o Ack é recebido, o processo é
liberado
o a c k n o w le d g e m e n t é fe ito e n tre kernels
(transparente para o cliente ou servidor)
um request/reply com este mecanismo necessita de
quatro mensagens

1
1. Request Cliente 3 Servidor
2. Ack
3. Reply 4
4. Ack Kernel Kernel
2

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 53


Informática Confiabilidade
UFRGS

Re qu e s t - Re p ly - Ac k
O Reply serve como um ack
o c lie n te fic a blo qu e a d o a té a m e n s a g e n d e reply
se a mensagem de reply demorar, o cliente reenvia a
requisição
e m a lg u n s k e rn e ls n ã o é n e c e s s á rio o ack
1
Cliente 2 Servidor

3
Kernel Kernel

1. Request
2. Reply
3. Ack

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 54


Informática Questões de Implementação
UFRGS

Alte rn a tiv a s d e p ro je to :
por nomes ASCII
Endereçamento por número de por processo obtidos de um name
máquina server
primitivas não- primitivas não-
Bloqueante primitivas bloqueantes bloqueantes com cópia bloqueantes por
interrupção
não-bufferizado, não-bufferizado,
Bufferização discartando temporariamente mailboxes
mensagens mantendo mensagens

Confiabilidade não-confiáveis Request-Ack-Reply-Ack Request-Reply-Ack

To ta l d e 81 c o m bin a ç õ e s

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 55


Informática Questões de Implementação
UFRGS

As re d e s tê m u m ta m a n h o m á x im o d e p a c o te ,
m e n s a g e n s m a io re s d e v e m s e r qu e bra d a s

O a ck n ow l ed g m en t p o d e s e r u tiliza d o p o r
p a c o te o u p o r m e n s a g e m , d e p e n d e n d o d a ta x a
d e e rro s d a re d e

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 56


Informática Questões de Implementação
UFRGS

P a c o te s n or m a l m en t e e m p re g a d o s n o p ro to c o lo
d e c o m u n ic a ç ã o :
REQ Request Cliente Servidor O cliente quer serviço
REP Reply Servidor Cliente Resposta do servidor para cliente
ACK Ack Cli./Ser. Outro O pacote anterior chegou
AYA Are you alive? Cliente Servidor Verifica se o servidor está Ok
IAA I am alive Servidor Cliente O servidor está Ok
TA Try Again Servidor Cliente O servidor não tem espaço
AU Addr. Servidor Cliente Nenhum processo usa o endereço
Unknown

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 57


Informática Questões de Implementação
UFRGS

Alg u n s e x e m p lo s d e c o m u n ic a ç ã o :
REQ >
REQ > < ACK
Cliente Servidor Cliente < REP Servidor
< REP ACK >

(a) (b)

REQ >
REQ > < ACK
< REP AYA >
Cliente Servidor Cliente Servidor
ACK > < IAA
< REP
ACK >
(c) (d)

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 58


Informática Conclusões
UFRGS

O Mo d e lo c lie n te -s e rv id o r u tiliza u m p ro to c o lo
s im p le s e d e fá c il im p le m e n ta ç ã o

P o r s e r s im p le s e s e m c o n e x ã o , o p ro to c o lo é
ta m bé m e fic ie n te

Vá ria s a lte rn a tiv a s d e p ro je to p a ra p rim itiv a s


d e c o m u n ic a ç ã o p o d e m s e r u tiliza d a s

To d a s a s c o m u n ic a ç õ e s n o m o d e lo s ã o
c o n s tru íd a s a tra v é s d e p rim itiv a s d e E/S

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 59


Informática Revisão
UFRGS

Re v is ã o
defina modelo C/S
quais são as vantagens?
v a ria ç õ e s a tu a is d o m o d e lo C/S ?
fo rm a s d e lo c a liza ç ã o d o s e rv id o r p e lo c lie n te ?
conceito?
vantagens e desvantagens?

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 60


Informática
UFRGS

Curso de Sistemas Operacionais Distribuídos O Modelo Cliente Servidor 61


This document was created with Win2PDF available at http://www.win2pdf.com.
The unregistered version of Win2PDF is for evaluation or non-commercial use only.
This page will not be added after purchasing Win2PDF.

Você também pode gostar