Você está na página 1de 11

Tipos de Servidores

Com Estado X Sem Estado

Sequenciais X Concorrentes

Com Conexão X Sem Conexão

Thaís Batista – UFRN - DIMAp

Servidores com estado

Servidores com estado armazenam informação sobre cada cliente.

Operações podem ser implementadas de forma mais eficiente.

Mensagens com pedidos podem ser menores.

Page 1

Thaís Batista – UFRN - DIMAp

Servidores com estado servidor de arquivos disco p1-m1 cliente arq. aberto posição corrente p1-m1 artigo.tex
Servidores com estado
servidor
de arquivos
disco
p1-m1
cliente
arq. aberto
posição corrente
p1-m1
artigo.tex
20
p3-m2
p3-m2
passwd
10
p2-m1
teste.c
0
p4-m3
.login
5
tabela de estado
p5-m3
script
58
p2-m1
p4-m3
.cshrc
12
p1-m1
artigo.bib
0
p3-m2
group
31
p1-m1
a4.sty
23
Thaís Batista – UFRN - DIMAp

Servidores sem estado

Em um servidor sem estado cada pedido deve conter toda a informação necessária para seu processamento.

Servidores sem estado apresentam maior escalabilidade.

escalabilidade: comportamento quando o número de clientes cresce.

A implementação de um servidor sem estado é muito mais simples que a de um servidor com estado.

Page 2

Thaís Batista – UFRN - DIMAp

Servidores sem estado p1-m1 servidor disco p3-m2 de arquivos p2-m1 Cada pedido deve conter informação
Servidores sem estado
p1-m1
servidor
disco
p3-m2
de arquivos
p2-m1
Cada pedido deve conter informação completa sobre
o acesso a arquivo (nome do arquivo, modo, posição, etc)
Thaís Batista – UFRN - DIMAp Servidores sequenciais servidor loop recebe pedido trata pedido envia
Thaís Batista – UFRN - DIMAp
Servidores sequenciais
servidor
loop
recebe pedido
trata pedido
envia resposta
cliente 4
fim loop
cliente 2
cliente 1
Fila de clientes
a serem atendidos
cliente 3

Page 3

Thaís Batista – UFRN - DIMAp

Servidores Sequenciais

Fáceis de programar e modificar

Adequados para situações onde a execução do serviço é muito rápida portanto o tempo de resposta não é alto

Trabalham melhor com protocolos sem conexão mas podem ser usados também com protocolos com conexão (o custo de estabelecer a conexão pode não compensar)

Em geral não guardam estado das solicitações

Thaís Batista – UFRN - DIMAp Servidores Concorrentes servidor p1-m1 pode atender p3-m2 diversos clientes
Thaís Batista – UFRN - DIMAp
Servidores Concorrentes
servidor
p1-m1
pode atender
p3-m2
diversos clientes
simultaneamente
p2-m1

Page 4

Thaís Batista – UFRN - DIMAp

Servidores Concorrentes Multiprocesso SERVIDOR CONCORRENTE Servidor Mestre p2-m1 requisição de cliente Cria
Servidores Concorrentes
Multiprocesso
SERVIDOR CONCORRENTE
Servidor Mestre
p2-m1
requisição
de cliente
Cria
inicia
iniciar Bloqueado
Escravo
comunicação
termina
serviço
p5-m4
requisita
p3-m2
serviços
Servidores escravos
Thaís Batista – UFRN - DIMAp Servidores Concorrentes Monoprocesso SERVIDOR CONCORRENTE p2-m1 Servidor Único
Thaís Batista – UFRN - DIMAp
Servidores Concorrentes
Monoprocesso
SERVIDOR CONCORRENTE
p2-m1
Servidor Único
requisição
de cliente
iniciar
identifica cliente
Bloqueado
trata pedido
p2-m4
termina
serviço
p5-m4

Page 5

Thaís Batista – UFRN - DIMAp

Servidores Concorrentes Monoprocesso

O servidor usa um único processo para oferecer concorrência aparente para os clientes

Apropriado para aplicações onde I/O domina

criação de processos e troca de contextos entre processos implica em alto custo

O servidor usa I/O assíncrono para oferecer concorrência aparente para os clientes

a chegada de dados dispara a execução

suporte para I/O assíncrono através da chamada Select

o servidor passa o conjunto de descritores de socket como argumento da chamada Select

O processo servidor gerencia múltiplos sockets e faz o papel de mestre e de escravo

Thaís Batista – UFRN - DIMAp

Algoritmo do Servidor Concorrente, Orientado a Conexão e Monoprocesso

1. Cria um Socket

2. Associa a uma porta

3. Adiciona o descritor do socket a uma lista

4. Chama Select para observar I/O na lista de sockets

5. Se o socket original é selecionado, chama Accept para obter a próxima conexão e adiciona o novo socket a lista Se algum outro socket é selecionado, chama read para obter a próxima solicitação. Faz o processamento e chama write para enviar a resposta

6. Continua o processamento do passo 4

Page 6

Thaís Batista – UFRN - DIMAp

Servidores Concorrentes multiprocesso

O processo mestre nunca comunica-se diretamente com o cliente

Quanto aos processos Escravos:

Pré-alocação de Escravos

Alocação de Escravos sob Demanda

Thaís Batista – UFRN - DIMAp

Alocação sob Demanda

Escravos são criados à medida que o servidor recebe novas solicitações

Os escravos são finalizados quando terminam de atender uma solicitação

Vantagem: não aloca recursos do sistema sem necessidade

Desvantagem: a criação do processo pode ser uma tarefa demorada (principalmente em sistemas com único processador)

Page 7

Thaís Batista – UFRN - DIMAp

Pré-alocação

Consiste em criar N processos escravos quando o mestre começa a executar

Quando uma solicitação chega, um dos processos escravos é escolhido para receber a solicitação e tratá-la

Os escravos não são finalizados quando terminam de atender alguma solicitação

Evita o custo de criar processos quando a solicitação chega ao servidor

Pode atender os clientes de forma mais rápida que na alocação sob demanda

Thaís Batista – UFRN - DIMAp

Servidores Concorrentes

A maior parte usa vários processos

Trabalham melhor com protocolo com conexão pois o custo de criação de processos não é desprezível. Em protocolos sem conexão o processo escravo termina após atender 1 única solicitação).

Page 8

Thaís Batista – UFRN - DIMAp

Usando programas separados como Escravos

Thaís Batista – UFRN - DIMAp Tipos de Servidores sem estado com estado sequencial concorrente
Thaís Batista – UFRN - DIMAp
Tipos de Servidores
sem estado
com estado
sequencial
concorrente

Page 9

Thaís Batista – UFRN - DIMAp

Servidores TCP/IP • Servidores com estado em geral são implementados por comunicação com conexão. •
Servidores TCP/IP
• Servidores com estado em geral são
implementados por comunicação com conexão.
• Interações com servidores com estado em geral
são longas
necessidade de servidor concorrente!
– modelo mais comum neste caso é o servidor concorrente
multiprocesso!
sem
com
(conexão)
sequencial
concorrente
Thaís Batista – UFRN - DIMAp Servidores Concorrentes Monoprocesso mestre Processo Servidor Sistema socket para
Thaís Batista – UFRN - DIMAp
Servidores Concorrentes
Monoprocesso
mestre
Processo
Servidor
Sistema
socket para
solicitação
sockets para conexões
individuais
Operacional
de conexão

Page 10

Thaís Batista – UFRN - DIMAp

Servidores Concorrentes Multiprocesso mestre Processos do servidor Escravo 1 Escravo 2 Escravo 3 Sistema socket
Servidores Concorrentes
Multiprocesso
mestre
Processos do
servidor
Escravo 1
Escravo 2
Escravo 3
Sistema
socket para
solicitação
sockets para conexões
individuais
Operacional
de conexão
Thaís Batista – UFRN - DIMAp

Page 11