Académique Documents
Professionnel Documents
Culture Documents
CONTEUDO PROGRAMATICO
I - Introduo a Sistema Distribudo (S.D)
I.1 - Objetivos;
I.2 - Evoluo;
I.3 - Conceitos de hardware;
I.4 - Conceitos de software;
I.5 Ambiente de computao distribuda
II - Sistemas Distribudos
II.1 Modelos distribudos;
II.2 Comunicao em S.D.;
II.3 Sincronizao e processos em S.D.;
III - Sistemas de arquivos distribudos
III.1 Projeto de sistemas de arquivos distribudos (S.A.D);
III.2 Implementao de S.A.D.;
III.3 Gerenciamento de dados distribudos;
Livros textos:
1 Sistemas Operacionais Modernos Tanenbaum
2 Client / Server Architecture Alex Berson Editora Mac Graw Hill
3 Operating System Concepts Silberschatz Galvin Addison Weslez
INTRODUO
Sistema Operacional. Serve como intermedirio entre o hardware e aplicativos.
Exemplos de aplicativos compiladores, editores de texto, banco de dados.
Um Sistema Operacional Pode ser visto como:
a) Alocador de recursos Tais como CPU, memria, disco, E/S.Gerncia estes
recursos e os aloca para os programas.
b) Programa de controle Controla a execuo dos programas.
1 - Sistema Operacional de 1a gerao:
-
a estrutura em disco pool de tarefas, permite que o sistema operacional selecione qual
tarefa vai ser a proxima a ser executada mais importante caracterstica o
escalonamento de tarefas aumento da utilizao da CPU.
Caractersticas:
a)
Escalonamento de tarefas para decidir e escolher entre vrias tarefas do
disco, qual ser trazida p/ memria.
b)
Gerenciamento de memria necessrio porque existem vrios programas
na memria ao mesmo tempo.
c)
Escalonamento de C.P.U. para decidir e escolher entre vrias tarefas
prontas que esto na memria qual tarefa ocupar a C.P.U.
Entrada
Memria
CPU
Programa 1
Programa 1
Programa n
S.O.
Memria
Prog
Monoprogramao
C.P.U 1
Programa 1
................
Programa n
Multiprogramao
S.O .
Memria
C.P.U 1
Programa 1
Programa 2
..................
C.P.U 2
Programa n
Multiprocessamento
a multiprogramao
em vrias C.P.U.s
S.O.
Gerenciamento de disco
Escalonamento de C.P.U. - execuo concorrente
Sincronizao e comunicao de tarefas para garantir a execuo
ordenada das tarefas.
Preveno de diadlock
5 - Computadores Pessoais :
S.O. no multiusurio e nem multitarefa
Ex.: MS-DOS e Apple Macintosh
OS/2 S.O. multitarefa da IBM
Windows 3.11 no S.O. um sistema de janelas do MS-DOS
Windows 95 S.O. da Microsoft que multitarefa
Windows NT S.O. da Microsoft que permite multiprocessamento
6 - Sistemas Paralelo :
- Possuem mais de um processador
- Processadores se comunicam intensamente, dividem o bus, relgio, memria e
dispositivos
- Fortemente acoplados
a) Vantagens:
- Aumento processadores menor tempo de execuo
- Aumento de segurana funes podem ser distribudas pelos processadores
falha de um processador no para o sistema, s degenera.
b) Desvantagens:
- Algoritmos paralelos so complicados
- Software para implementar sistemas paralelos so primitivos
- Hardware caro
7 - Sistemas Distribudos
-
Mais de um processador
No dividem memria, nem relgio
Processadores se comunicam via linhas de comunicaes tais como: buses de alta
velocidade ou linha telefnica.
a) Vantagens:
- Compartilhamento de recursos
- Aumento da velocidade de computao atravs da distribuio de tarefas.
- Segurana se um computador falha o resto do sistema opera normalmente. Se
existe redundncia o sistema continua a operar mesmo com falha de um dos
componentes
- Comunicao usurios se comunicam entre si e podem dividir arquivos, trocar
mensagens, etc.
Software complexos
Rede de comunicao pode saturar ou falhar
Segurana facilidade de acesso a dados secretos
EVOLUO DO PROCESSAMENTO
1) PROCESSAMENTO BASEADO EM HOST
um tipo de processamento totalmente no distribudo, onde a aplicao executada
num host que est ligado a terminais burros.
host
CPU
dados
Host centralizado
Slave
CPU
HOST
CPU
dados
Slave
CPU
Cliente
Aplicao
LAN
Aplicao
dados
Servidor
cliente
Aplicao
cliente
LAN
dado
s
Servidor de recursos
8
Aplicao
CLIENTE
SERVIDOR DE ARQUIVO
Pede 1 arquivo
Procura
Registros
Desejados
Busca o arquivo
pedido
CLIENTE
SERVIDOR DE BANCO
DE DADOS
Pede registro
Envia registro
3.1)
3.2)
Processa o arquivo
localmente
3.3)
a)
cliente
aplicao
aplicao
Servidor Novell
aplicao
IPX/SPX
SO
SO
SO Novell
Novell
cliente
cliente
cliente
aplicao
aplicao
aplicao
aplicao
SO
SO
SO
SO
10
Aplicao
Aplicao
Windows NT
S.O.
Windows NT Server
CPU 1.
CPU n.
cliente
dados
Servidor processa dados respostas
comandos
cliente
cliente
L arquivos
Grava arquivos
Banco dados
Todo processamento feito no cliente que executa lock p/acessar arquivo e um unlock
p/liber-lo.
Ex.: Access em rede ou Q&A no so servidores de banco de dados
11
dados
dados
aplicao
aplicao
aplicao
dados
aplicao
dados
12
Conceitos de Hardware
Taxonomia de Flynn`s para Sistemas distribudos com vrias CPU`S
a) SISD nica instruo e nico dado 1 CPU dos PCs aos mainframes.
b) SIMD nica instruo e mltiplos dados array de processadores, onde todos
executam a mesma instruo mas cada um tem seu dado particular.
c) MISD mltiplas instrues com um nico dado no existem computadores para
este modelo
d) MIMD mltiplas instrues com mltiplos dados grupo de computadores
independentes.
Os computadores MIMD podem ser divididos em dois grupos:
Multiprocessadores com memria compartilhada
Multicomputadores sem memria compartilhada
Conforme a arquitetura da rede de interconexo podemos dividir os computadores em
duas categorias:
Bus rede nica, bus, cabo ou outro meio que conecta todas as mquinas. TV
a cabo usa um esquema como este;
chaveado no existe um simples backbone, em vez disto existem vrios cabos
entre mquinas com vrios padres. Mensagens movem entre os fios
com uma deciso de chaveamento explcito.
O sistema de telefonia organizado desta forma.
MIMD
Memria
compartilhada
Memria
privada
Multiprocessadores
bus
Sequent
Encore
Multicomputadores
chaveado
bus
Workstations
em bus
RP3
13
chaveado
Hipercubo /
Transputer
bus
A figura abaixo exemplifica um Multicomputador chaveado
chaveamento
chaveamento
CPU
Memria
CPU
bus
Memria cache
14
Exemplo de leitura:
a) CPU coloca endereo da palavra da memria na linha de endereo
b) CPU coloca um sinal de leitura na linha de controle
c) Memria responde colocando o valor da palavra nas linhas de dados para a CPU
solicitante
Como s existe 1 memria, se a CPU A escreve uma palavra na memria e a CPU B l a
palavra microsegundos mais tarde, B ir obter o valor escrito por ltimo. Uma memria
que tem esta propriedade dita coerente.
Quando o sistema composto de mais de 4 CPUs o bus fica sobrecarregado e o
desempenho cai drasticamente. Para resolver este problema, foi colocada uma memria
de alta velocidade denominada memria cache entre a CPU e o bus.
A cache guarda as palavras mais recentemente acessadas e todos os pedidos de memria
fluem via a cache.
Se a palavra requisitada est na cache, ela responde CPU e nenhum pedido ao bus
realizado.
Se a cache grande o suficiente a probabilidade de sucesso ir ser alto e a quantidade do
trafego no bus por CPU ir diminuir drasticamente, permitindo muito mais CPUs no
sistema.
Tamanhos de cache variam de 64K a 1M, que oferecem uma taxa de velocidade de 90%.
Memria coerente quando garantido a leitura do ultimo valor atualizado
Memria cache memria de alta velocidade para melhorar o desempenho tamanho
64K a 1M, taxa de velocidade 90%.
2) Multiprocessadores chaveados
Memrias
C
CPUs
C
15
CPUs
Esta rede contem 4 chaves 2 x 2, onde cada chave tem 2 entradas e 2 sadas. No caso
geral com n CPU`S e n memrias a rede omega requer log2n estgios de chaveamento,
cada estgio contendo n/2 chaves para um total de n log2 n/2 chaves.
3) Multicomputadores baseados em bus
Cada CPU tem uma comunicao direta com sua prpria memria. Como a comunicao
somente entre CPU`S o volume de trafego muitssimo menor do que quando a rede de
interconexo tambm usada para o trafego entre CPU memria.
Sua topologia similar ao multiprocessador baseado em bus com muito menor trafego.
Pode ter uma LAN com baixa velocidade de 10 100 Mbps.
workstation
workstation
workstation
Memria
Local
Memria
Local
Memria
Local
CPU
CPU
CPU
rede
16
Memrias
4) Multicomputadores chaveados
a) Exemplo : grids tem sua prpria memria bem ajustada para problemas que tem uma
natureza bidimensional , tal como a troca de grafos ou viso (ex. olhos de um rob)
Memria
Local
Memria
Local
Memria
Local
CPU
CPU
CPU
Memria
Local
Memria
Local
Memria
Local
CPU
CPU
CPU
17
Conceitos de Software
Existem 2 tipos de Sistemas Operacionais para sistemas com mltiplas \ CPU s
fortemente acoplados ou fracamente acoplados.
Software fracamente acoplados permite que maquinas e usurios de um Sistema
distribudo sejam independentes um do outro, mas interajam quando necessrio .
Exemplo:
Grupo de PCs com sua prpria CPU, memria, disco e sistema operacional, mas
compartilhando recursos tais como impressora numa LAN.
1) Sistemas Operacionais de Rede - NOS ( Network Operational System
Sistemas de Arquivos em Rede NFS ( Network File Service)
Para fornecer um sistema de arquivos global e compartilhado entre vrios clientes temos
1 ou mais maquinas chamadas servidores de arquivos, que l e escrevem arquivos a
pedido dos clientes.
Servidores de arquivo mantm sistemas de arquivos hierrquicos, cada um com um
diretrio raiz, contendo subdiretorios e arquivos. Workstations podem importar ou
montar estes sistemas de arquivos aumentando seus sistemas de arquivos locais com
aqueles nos servidores. Exemplo de diretrios de 2 clientes usando 2 servidores.
Cliente 1
Cliente 2
Servidor 2
Prog
Servidor 1
Jogos
Jogo1
Jogo2
Cliente 2
Cliente 1
Jogos
Jogos
Prog
Jogo1
Jogo2
Programa1
Programa2
Jogo1
Jogo2
Programa1
Programa2
Prog
/Prog/Programa1
Programa1
Programa2
/Jogos/Prog/Programa1
18
1 NFS
O NFS um sistema operacional de rede da SUN que visualiza um conjunto de
workstations interconectadas como um conjunto de mquinas independentes. O
objetivo permitir algum grau de compartilhamento entre estes sistemas de arquivos
de uma forma transparente. O compartilhamento permitido entre qualquer par de
mquinas, independentemente de serem mquinas servidoras dedicadas.
Para que um diretrio remoto possa ser acessado de forma transparente a partir de
uma mquina, o cliente desta mquina deve executar uma operao de mount
primeiro. A semntica desta operao funciona da seguinte forma:
diretrio remoto montado sobre um diretrio do sistema de arquivos local;
diretrio montado parece como uma sub-rvore do sistema de arquivos
local;
especificao do diretrio remoto como um argumento para a operao de
mount no feita de uma maneira transparente, a localizao do diretrio
remoto deve ser fornecido, mas aps montado os usurios acessam o
diretrio remoto de maneira transparente.
Para ilustrar a montagem de arquivos, ser apresentado o seguinte exemplo:
A figura 1.1 mostra 3 sistemas de arquivos independentes de mquinas distintas
onde os tringulos representam sub-arvores de diretrios.
Aps a montagem, apresentada na figura 1.2, qualquer um deles pode acessar qualquer
arquivo dentro do diretrio dir1, usando o prefixo /usr/local/dir1, na mquina U.
19
um protocolo de montagem;
um protocolo para acessar arquivos remotos chamado protocolo NFS
1.1 - Protocolo de Montagem usado para estabelecer a conexo lgica inicial
entre um servidor e um cliente. Uma operao de montagem inclui o nome do
diretrio remoto a ser montado e o nome da mquina servidora.
Um pedido de montagem mapeado numa chamada RPC que executada na
mquina servidora especificada.
O servidor mantm uma listada de exportao que especifica arquivos que ele
exporta para montagem com os nomes das mquinas que tem permisso para
mont-los.
Quando o servidor recebe um pedido de montagem de um arquivo, ele verifica
se a mquina solicitante tem permisso para montar o diretrio, se tiver, ele
retorna ao cliente um handle do arquivo que serve como uma chave para
futuros acessos a ele.
O handle de um arquivo contm todas as informaes necessrias para o
servidor distinguir o arquivo.
O servidor tambm mantm uma lista de mquinas cliente e os correspondentes
diretrios montados.
1.2 - Protocolo NFS o protocolo NFS fornece um conjunto de RPCs para
operaes sobre arquivos remotos. As seguintes operaes so possveis:.
Procurar um arquivo dentro de um diretrio;
Ler entradas de diretrios;
Manipular links e diretrios;
Acessar atributos de arquivos;
Leitura e escrita em arquivos.
Estes procedimentos s podem ser utilizados aps a obteno do handle para o
diretrio montado remotamente.
Os servidores NFS so stateless. Servidores que no mantm informaes
sobre seus clientes entre um acesso e outro.
No existem tabelas paralelas de arquivos abertos ou estruturas de arquivos no
servidor. Assim sendo, cada pedido tem que fornecer um conjunto completo de
argumentos, incluindo um identificador nico e um endereo dentro do arquivo
para a execuo da operao solicitada.
20
SERVIDOR
Interface para as
Chamadas do Sistema
Interface
para
o
Sistema de Arquivos
Virtuais
Outros
tipos de
sistema
s
de
arquivos
Sistema
s
de
arquivos
Unix 4.2
disco
Interface
para
o
Sistema de Arquivos
Virtuais
CLIENTE
NFS
SERVIDO
R NFS
RPC/
XDR
RPC/
XDR
Sistema
s
de
arquivos
Unix 4.2
disco
REDE
21
Arquivos
Arq. 1
Arq. 2
Cliente
NFS
S.O.
Local
Administrador
Diretrio
remoto
Constri
1 v-nodo
p/
arquivo
Pede handle
do arquivo
handle do
arquivo
handle
Servidor
Se existe
e pode ser
remoto
Kernel
Criar um r node com o handle do arquivo
Cliente
NFS
Camada
SAV
22
23
24
Principais
Servios
APLICAES
S
Servios
Distribudos
Integrao
PC
Servios
Distribudos
G
E
Servios Arquivos Distribudos
G
U
Servio
Nome
Servio
Tempo
Servios
Futuros
R
E
R
A
N
C
Servios de Apresentao
I
Servios de Theads
A
Servios de Sistema Operacional
Servios de Rede
Arquitetura DCE
25
2) Servio de Diretrio
No DCE qualquer coisa que pode ser nomeada chamada de objeto. Cada objeto tem
uma entrada correspondente no servio de diretrio. Cada entrada contem atributos que
descrevem o objeto. Entradas de nomes so colecionados em listas chamadas diretrios.
Este servio fornece a localizao dos arquivos dado um nome.
3) RPC
Permite que cdigo real do procedimento chamado seja executado no processador remoto
de uma maneira transparente para a aplicao. RPCs so fceis para serem usados e
projetados para serem transparentes para varias arquiteturas de rede.
26
4) Servios de thread
Responsvel pela implementao dos servios de threads, sincronizao tal como
semforos.
5) Servios de Tempo
Sincroniza os relgios de todos os ns da rede com o relgio que controla toda a rede.
I)
Aplicaes Distribudas
Aplicao Distribuda
Servios
Fundamentais
DCE
Executivo
S.O e Interfaces
Da rede
Servios
Compartilhamento
de dados
DCE
Sistema Operacional
Interface de Redes
Rede
Exemplo de implementao DCE
Unix System V relase 4 SVR 4
27
Preo / desempenho
Funcionalidade
Autonomia local
Mainframe Host
Camada1 ou Tier1
Servidor
Lan
Camada2 ou Tier2
Lan
Camada3 ou Tier3
28
Tier1 ou
Camada1
Servidor
Servidor
Tier2 ou
Camada2
Tier3 ou
Camada3
29
30
Tela
Aplicao
Lgica
Apresentao
Lgica Negocio
Lgica Banco de
Dados
SQL
SGBD
Quando somente dados so distribudos entre varias localizaes, vrios benefcios como
( dados processando prximos fonte, alta disponibilidade etc.) so obtidos desta
distribuio. Porm pode-se criar um gargalo, um fator limitante na busca de mais altos
desempenhos, portabilidade e escalabilidade.
Se alm dos dados parte da aplicao for tambm distribuda, os recursos sero melhor
utilizados.
A arquitetura cliente / servidor emprega processamento cooperativo distribudo para:
a)
31
Lgica
Apresentao
Processamento
Distribudo
Servidor 1
Lgica Negocio
SGBD
Lgica Banco de
Dados
Processamento Cooperativo
SGBD
Dado distribudo e
processamento de
BD
Sistema 1
BD
Servidor 2
Cliente 2
Lgica
Apresentao
SGBD
Lgica Negocio
Lgica Banco de
Dados
SGBD
BD
Sistema 2
BD
32
Lgica Negocio
Lgica Banco de
Dados
Lgica Banco de
Dados
BD
Cliente
Lgica Banco de
Dados
Lgica
Apresentao
SGBD
Lgica Negocio
Lgica Banco de
Dados
S G B D local
Cliente
BD
local
33
BD
IBM 3090
SGBD DB2
relacional
DB 2
Conector SNA
Camada 1
Servidor SUN
UNIX
O/S
SGBD Sybase
Sybase
BD
Camada 2
Cliente
Windows 3.0
Aplicao
Dbase III
BD
PS/2
Dbase III
Cliente
Camada 3
34
35
1 - PROCESSAMENTO DISTRIBUIDO
36
b) Desvantagens:
Colocar toda a aplicao no servidor pode acarretar uma sobrecarga nos recursos do
servidor, principalmente quando muitas aplicaes diferentes tem que compartilhar
o mesmo servidor.
Interaes entre a lgica de negcios e a apresentao podem aumentar
significantemente o trfego na rede e o tempo de resposta para aplicaes de tempo
real.
O poder computacional das workstations pode ser subtilizado, reduzindo o retorno
do investimento.
1.3 - Processamento da Aplicao Distribuda entre os Sistemas Cliente e Servidor
Este enfoque combina as vantagens dos dois primeiros casos enquanto reduz as suas
desvantagens.
a) Vantagens:
Fragmentos comuns da aplicao podem ser colocados no servidor prximo ao BD.
Fragmentos relacionados com a apresentao podem ser colocados no sistema do
cliente.
Redundncias podem ser eliminadas, trafego da rede minimizado e o poder
computacional das workstations e servidores otimizados.
Fragmentos da aplicao distribudos entre clientes e servidor podem ser
executados em paralelo, reduzindo o tempo computacional.
b) Desvantagens:
A fragmentao apropriada da aplicao entre aplicao residente no cliente e
aplicao residente no servidor.
Sincronizao entre os fragmentos da aplicao cliente servidor, normalmente
eles se comunicam atravs de mensagens sncronas.
Manuteno do protocolo de comunicao cliente servidor atualizado para
garantir a integridade das transformaes. Exemplos de implementaes deste
protocolo : IBMs CICS DTP que usa a lgica IBM lgical Unit Type 6.2 (LUG.2)
tambm conhecido como Advanced Program-to-Program Comunications (APPC).
2 - DADOS DISTRIBUDOS
Todos os componentes de uma aplicao tratam dados. Lgica de BD acessa o dado de
um DBMS, lgica de negocio processam o dado e a lgica de apresentao apresentam o
dado para o usurio final.
O problema maior onde localizar o dado no cliente ou servidor ?
Conexes diretas e indiretas
37
Apresentao
Lgica Negocio
SGBD
Lgica BD
Cliente
Conexo direta
SGBD
38
Lgica
Apresentao
Servidor
Lgica Negocio
Lgica Banco de
Dados
S G B D local
SGBD
Cliente
Servidor
BD
BD
local
39
Mensagem
40
Maquina 1
Maquina 2
Processo
A
Processo
B
Protocolo de Aplicao
Aplicao
Apresentao
Aplicao
Protocolo de Aplicao
Apresentao
Protocolo de Sesso
Sesso
Transporte
Sesso
Protocolo de Transporte
Transporte
Protocolo de Rede
Rede
Data Link ou
Enlace dados
Rede
Protocolo Data Link ou
Enlace dados
Data Link ou
Enlace dados
Protocolo de Fsico
1
Fsica
Fsica
REDE
41
1) A camada Fsica
Responsvel pela transmisso dos os e 1s que compe a mensagem, quantos bits por
segundo podem ser enviados e se a transmisso pode ser feita em ambas as direes
simultaneamente.
Esta camada trata da padronizao das interfaces eltrica, mecnica e sinalizao. Muitas
camadas fsicas tem considerado o padro RS-232-C para a comunicao serial.
2) A camada Data Link ou Enlace de Dados
Responsvel por agrupar os bits em frames e verificar se cada frame corretamente
recebido. Esta camada coloca um padro de bits especial denominada checksum no
incio e no fim de cada frame. Quando o frame chega no receptor este recalcula o
checksum do dado e o compara com o checksum que segue o frame. Se eles no
coincidem o receptor pede ao emissor para retransmiti-lo. Caso contrrio o receptor
aceita a mensagem. No header so atribudos nmeros seqenciais aos frames para
saber em relao a qual frame a mensagem de erro corresponde.
3) A camada de Rede
Numa LAN no existe necessidade do emissor localizar o receptor, basta colocar a
mensagem na rede e o receptor o consome. Mas numa rede WAN com um grande
nmero de maquinas esta camada responsvel por encontrar o melhor caminho. Este
procedimento conhecido por roteamento e a principal desta camada. Dois protocolos
de rede so muito usados, um orientado a conexo chamado X.25 e o outro sem conexo
chamado IP ( Internet Protocol).
O usurio do X.25 envia um Call Request para o destino que pode aceitar ou rejeitar a
conexo. Se a conexo aceita o chamador recebe um identificador para usar nos pedidos
subsequentes. Um pacote IP pode ser enviado sem qualquer inicializao, ele roteado
para os seus destinos independente de todos os outros.
4) A camada de Transporte
Fornece o servio de manter conexes confiveis. Aps receber uma mensagem da
camada de sesso, esta camada quebra em pequenos pedaos e atribui a cada um 1
nmero seqencial e os envia. No receptor a camada de transporte controla a chegada dos
pacotes e os ordena seqencialmente.
O protocolo de transporte DOD chamado TCP a combinao TCP/IP muito usada em
protocolo sem conexo. O protocolo de transporte DOD sem conexo chamado UDP.
5) A camada de Sesso
Fornece controle de dialogo para guardar a trilha de que parte est ativa e fornece
facilidades de sincronizao.
6) A camada de Apresentao
Fornece um formato mensagem tal como definir recordes contendo campos atravs do
qual o emissor notifica ao receptor que a mensagem contem um registro particular num
42
43
Cliente stub
Servidor stub
Maquina Cliente
Servidor
call
Maquina
Desempacota
Parmetros
Empacota
Parmetros
call
Ser
Cliente
return
vidor
Empacota
Resultados
Desempacota
Resultados
Ncleo
return
Ncleo
stubs
mensagem
N = sum
(4,7)
mensagem
sum
sum
Ncleo
Ncleo
44
Sum ( i , j)
Int i, j
{return
(i+j)}
2 - Ligao Dinmica
Ligao dinmica utilizada para ligar cliente a servidores. O ponto inicial para a ligao
dinmica a especificao formal de servidores.
Esta especificao formal informa:
nome do servidor;
numero da viso;
lista de procedure s oferecidas;
Para cada procedure , so dados os tipos de parmetros, que podem ser :
in parmetro enviado do cliente para o servidor;
out parmetro enviado do servidor para o cliente;
in out parmetro enviado do cliente para o servidor, que modificado e
devolvido para o cliente.
O principal uso da especificao formal servir de entrada para o gerador de stub que
produz os dois stubs, cliente e servidor. Ambos so colocados em bibliotecas apropriadas.
3 - Procedimento de registro do servidor
No inicio o servidor exporta sua interface. Isto significa enviar uma mensagem para um
programa chamado binder , responsvel pelo registro.
Para o correto registro, o servidor envia ao binder, seu nome, seu numero de verso e um
identificador nico e um handler usado para localiza-lo.
4 - Interface do binder
Chamada
Registro
Cancelar
Registro
Procura
Entrada
Nome, verso, handler, ident.
Nome, verso, ident.
Sada
Nome, verso
handler, ident.
45
46
Uma computao est ativa e nenhum pai est esperando pelo resultado, a isto
chamado, um rfo.
O que pode ser feito com os rfos ? Existem 4 alternativas : propostas:
-
6.5.1 - Exterminao antes de enviar uma mensagem RPC o cliente stub guarda
em disco um log informando o que ele ir fazer. Aps a falha, quando ele
restaurado, ele examina o log e explicitamente mata os rfos. Esta alternativa ruim
por despender um enorme tempo gravando em disco para cada RPC.
6.5.4 - Expirao A cada RPC dado uma quantidade de tempo T para executar o
servio. Se o tempo no suficiente, ele deve explicitamente pedir outro quantum.
Aps um cash, o servidor espera um tempo T antes de recarregar. O tempo seria
suficiente para todos os rfos executarem. O maior problema desta alternativa
determinar o tempo T.
7 Implementao
7.1 - Protocolos RPC
A primeira deciso a ser feita se o protocolo ser orientado a conexo ou no
conectado.
Com o protocolo orientado a conexo, para se comunicar o cliente estabelece uma
conexo com o servidor e todo o trafego em ambas as direes usa esta conexo. A
vantagem deste tipo de comunicao ser mais fcil, porque todo o controle de envio e
recepo de mensagem feito pela camada mais bsica que suporta a conexo. A
desvantagem especialmente sobre um LAN a perda de performance. Por isto para
sistemas distribudos que so para ser utilizados em um edifcio ou um campus o
protocolo escolhido o sem conexo.
A Segunda deciso se usa um protocolo de uso geral padro ou um especialmente
projetado para RPC.
Como no existe um protocolo padro para RPC necessrio a escolha de seu prprio
protocolo. Alguns sistemas distribudos usam IP ( ou UDP ) como protocolo base. Esta
escolha tem varias vantagens porque:
a) O protocolo j est projetado ;
b) Muitas implementaes esto disponveis ;
47
c) Estes pacotes podem ser enviados e recebidos por todos os sistemas UNIX ;
d) IP e UDP podem ser enviados diretamente sobre muitas redes existentes ;
IP Protocolo Internet ; UDP - Uniform Datagrama Protocol
7.2 - Acknowledgements
Protocolos utilizados quando grandes RPC`s so quebrados em pequenos pacotes :
a) protocolo stop and wait : a cada pacote enviado o cliente espera por um ack do
servidor. Quando o ack chega, o cliente envia o prximo .
b) protocolo blast : o cliente envia todos os pacotes, o mais rpido possvel e no final o
servidor envia o ack.
Com o protocolo stop and wait mais simples detetar perdas de mensagens, j que ele
espera o ack da mensagem enviada antes de enviar o outro. Mas o protocolo blast mais
eficiente porque no tem vrios acks para uma mensagem.
48
SOCKETS
sockets so componentes bsicos de comunicao entre processos. A interface socket
fornece acesso aos protocolos de transporte.
Um socket tem um tipo e processos associados.
Um domnio de socket, fornece uma estrutura de endereamento e um conjunto de
protocolos.
sockets trocam dados dados somente com sockets no mesmo domnio. A comunicao no
domnio Internet usa TCP/IP.
1 - TIPOS DE SOCKET
Um socket stream fornece fluxo de dados bidirecional, confivel e sequenciado.
Comunicao stream semelhante a uma conversao telefnica. Na Internet, o tipo de
socket SOCK-STREAM que usa TCP.
Um socket datagrama suporta fluxo de mensagens bidirecional. Um processo no socket
datagrama pode receber mensagens na ordem diferente da sequncia enviada e pode
receber mensagens duplicadas. Comunicao datagrama semelhante ao envio de uma
carta. Na Internet, o tipo de socket SOCKET-DGRAM que usa User Datagrama
Protocol (UDP), que fornece comunicao sem conexo , no confivel.
Um socket raw fornece acesso protocolos de comunicao de mais baixo nvel ou
interfaces de hardware.
Estes sockets so normalmente orientados a datagrama.
Eles so usados para desenvolver novos protocolos de comunicao. Por exemplo,
sockets raw no domnio Internet podem ser usados para implementar um novo protocolo
IP, e o socket s ir receber pacotes do protocolo especificado. Geralmente utilizado por
desenvolvedores de software de rede. disponvel apenas para super usurios.
2 - METODOLOGIA BSICA DE USAR sockets
2.1 - Criao de sockets
executada pela rotina socket ( );
S = socket (domnio, tipo, protocolo);
O retorno da rotina um descritor cujos componentes tem os seguintes significados:
domnio especificado por uma das constantes definidas em <sys/socket.h>.
Para o domnio UNIX a constante AF_UNIX.
Para o domnio Internet a constante AF_INET.
49
Exemplos:
S = socket (AF_INET,SOCK_STREAM, ); cria um socket stream no domnio Internet
com protocolo TCP
S = socket (AF_UNIX, SOCKT_DGRAM, ) ; cria um socket datagrama no domnio
UNIX com protocolo datagrama
50
51
CLIENTE
socket ( )
bind ( )
listen ( )
socket ( )
accept ( )
Fica bloqueado at a
conexo com o cliente
Estabelecimento de conexo
read ( )
connect ( )
Dados ( pedidos)
write ( )
Pedido de processo
Dados (reply)
read ( )
write ( )
52
SERVIDOR
socket ( )
socket ( )
bind ( )
bind ( )
recvfrom ()
Fica bloqueado at que dados sejam
recebidos de algum cliente
Dados ( pedidos)
sendto ( )
Pedido de processo
Dados (reply)
recvfrom (
)
sendto( )
53
54
6
12
18
24
30
36
42
48
54
60
8
16
24
32
40
48
56
64
72
80
10
20
30
40
50
60
70
80
90
100
55
6
12
18
24
30
36
42
48
70
76
8
16
24
32
40
48
61
69
77
85
10
20
30
40
50
60
70
80
90
100
2
OK
pedido
pedido
C
FILA
VAZIA
2
OK
liberao
C
coordenador
FILA
VAZIA
No responde
56
0
12
0
OK
OK
OK
8
1
1
OK
12
12
57
58
Maquina 1
segura
Viso do
espera
C
espera
R
segura
B
T
segura
Quando o processo B terminar e libera R que acessado por A que quando terminar
libera S para o processo C.
2.2 - Deteco de Deadlock Distribudo
Um algoritmo tpico que executa esta funo, funciona da seguinte maneira.
Neste algoritmo processos podem requisitar mltiplos recursos ao mesmo tempo, ao
invs de um por vez. Um processo pode esperar em 2 ou mais recursos simultaneamente.
(0,8,0)
Mquina 0
Mquina 1
Mquina 2
(0,4,6)
6
4
0
2
1
(0,2,3)
(0,5,7)
Como visto na figura acima temos:
Processo 1 espera por um recurso local
Processo 2 espera por recursos que esto localizados em outra maquina.
O algoritmo acionado quando um processo tem que esperar por algum recurso, por
exemplo; o processo bloqueado no ,processo 1. Neste ponto uma mensagem especial
gerada para enviar ao processo que mantm os recursos. Esta mensagem contem 3
nmeros:
nmero do processo bloqueado ;
nmero do processo que est enviando a mensagem ;
nmero do processo destino;
A primeira mensagem de para 1 contm (0,0,1). Quando a mensagem chega no destino.
59
60
b) Listas de controle de acesso associa a cada arquivo uma lista de usurios que
podem acessa-lo e que tipos de acesso so permitidos a cada um.
Os servios de arquivos podem ser divididos em 2 tipos de acordo com o modelo upload
/ download ou modelo de acesso remoto.
a) No modelo upload / download as operaes de escrita ou leitura de um arquivo so
realizadas transferindo o arquivo desejado do servidor para o cliente solicitante que
executa a operao desejada e retorna para o servidor:
Cliente
Servidor
Arquivo antigo
Arquivo novo
Servidor
61
Mquina 01
2
Mquina 02
62
63
Um link simblico uma entrada do diretrio que mapea em uma string um ( servidor,
nome arquivo ). Ele um nome de caminho.
1.3 - Semntica de compartilhamento de arquivo
Utilizado quando 2 ou mais usurios compartilham o mesmo arquivo para definir a
semntica de leitura e escrita para evitar problemas.
a) - Semntica Unix.
Muito usado em sistemas monoprocessadores, quando uma operao de read segue uma
operao de write o valor lido o valor que acabou de ser escrito. Quando 2 writes
ocorrem antes de 1 read o valor lido o valor alterado pelo ultimo write.
Em sistemas distribudos, esta semntica pode ser facilmente obtida quando existe
somente 1 servidor e clientes sem caching de arquivos. Todas as operaes de read e
write vo para o servidor de arquivo que os processa seqencialmente.
Para sistema distribudo este esquema sem caching muito ruim e ineficiente, por isto
necessitamos usar caching de arquivos para obter desempenho melhor e neste caso esta
semntica no funciona.
b) - Semntica de sesso
Para obter eficincia os clientes mantm copias locais de arquivos muito usados em suas
memrias cache. O ideal seria a cada alterao local de um arquivo imediatamente o
servidor tomaria conhecimento mas isto ineficiente, por isto uma regra muito usada
conhecida como semntica de sesso considera que mudanas num arquivo aberto s so
visveis pelo processo que o mudou.
Somente quando o arquivo fechado que ele se torna visvel para outros processos ou
mquinas. Isto significa que o servidor ficar com uma copia do arquivo desatualizada
temporariamente at que o cliente feche o arquivo e atualize o servidor.
No caso de 2 clientes modificarem o mesmo arquivo ao mesmo tempo, uma soluo
manter como resultado final o arquivo que fechou por ultimo.
c) - Arquivos Imutveis
Uma semntica para arquivos compartilhados em um sistema distribudo fazer todos os
arquivos imutveis. Deste modo somente as operaes criar e ler so possveis. Para
modificarmos um arquivo devemos troc-lo por um novo. O problema quando dois
processos tentam trocar o mesmo arquivo ao mesmo tempo. A melhor soluo permitir
a troca do arquivo pelo mais recente ou no deterministicamente.
64
d) - Transaes Atmicas
Para acessar um arquivo ou um grupo de arquivos, um processo primeiro executa algum
tipo de primitiva BEGIN TRANSACTION que sinaliza que o que se segue indivisvel,
o sistema ento l e/ou escreve em arquivos. Quando o trabalho esta completado uma
primitiva END TRANSACTION executada.
A propriedade principal deste mtodo a garantia do sistema que todas as chamadas
contendo transaes so executadas em ordem sem qualquer interferncia de outras
transaes concorrentes.
Um exemplo clssico onde transaes so usadas o sistema bancrio.
A figura abaixo apresenta um resumo dos quatro mtodos acima:
Mtodo
Semntica UNIX
Semntica Sesso
Arquivos Inumveis
Transaes
Significado
Toda operao num arquivo
imediatamente visvel para todos
os processos
Nenhuma mudana visvel para
outros processos at que o arquivo
fechado
Nenhuma atualizao possvel,
simplifica compartilhamento e
replicao
Todas as mudanas tem a
propriedade de tudo-ou-nada
65
66
Procura a/b/c
DIR
servidor 1
cliente
b
Procura b/c
Procura c
DIR servidor
2
DIR
servidor 3
arquivo
a
Procura a/b/c
DIR
servidor 1
Procura b/c
b
cliente
DIR
servidor 2
Procura c
c
DIR
servidor 3
Resposta com c
arquivo
67
Servidores stateless quando um cliente envia um pedido para o servidor, este responde
e remove todas as informaes sobre este pedido.
Servidores stateful guardam em tabelas internas informaes sobre todos os pedidos
executados pelos clientes.
Em servidores stateless os pedidos dos clientes devem ser completos e assim caso o
servidor falhe nenhuma informao pedida, mas as mensagens so maiores.
A tabela abaixo resume as vantagem e desvantagem dos dois tipos de servidores.
3 - Caching
Caching no servidor quando os arquivos mais usados so guardados na memria do
servidor para evitar a transferncia do disco para a memria. Este tipo de caching evita a
transferncia disco-memria mas no evita a transferncia via rede por isto uma
alternativa para melhorar o desempenho utilizar caching no cliente.
Pode-se ter 3 opes de caching :
68
4 - Replicao
Sistema de arquivos distribudos fornecem replicao de arquivo como um servio para
seus clientes.
Mltiplas cpias so mantidas, com cada cpia num servidor de arquivo separado.
Motivos de tal servio so:
Aumentar a confiabilidade tendo backups independentes de cada arquivo. Se um
servidor cae, nenhum dado perdido.
Permitir que acesso a arquivo ocorra mesmo se um servidor esteje danificado. Um
crash de um servidor no afeta o sistema como um todo.
Dividir a carga em mltiplos servidores. Quando o sistema cresce em tamanho, um
servidor s pode se tornar o gargalo do sistema. O uso de mltiplos servidores
executa o balanceamento de carga.
Quando o sistema executa a replicao sem o conhecimento do usurio dito que existe
transparncia de replicao.
69
Servidores
S2
3
S3
Prog.c
1.21
2.43
3.41
cliente
nome simblico
b) Replicao lazy aqui somente uma cpia de cada arquivo criada em algum
servidor. Mais tarde o servidor faz ele prprio replicas em outros servidores sem o
conhecimento do programador.
Mais tarde
Agora
S2
S1
Mais tarde
S3
70
71