Documente Academic
Documente Profesional
Documente Cultură
Mdulo 2
Comunicacin
Facultad de Ingeniera
Departamento de Informtica
Universidad Nacional de la Patagonia San Juan Bosco
JRA 2009
Area comn
de memoria
compartida
P
JRA 2009
JRA 2009
JRA 2009
JRA 2009
Pasaje de Mensajes
Caractersticas deseables de un buen sistema de
pasaje de mensajes
Simplicidad
Simple y fcil de usar (uso directo)
Hacer sin preocuparse de aspectos de la red/sistema
Pasaje de Mensajes
Eficiencia
Si no la hay, las IPC son costosas
Criterio: reduccin del nmero de mensajes
intercambiados.
Optimizacin incluye:
-Evitar el costo de establecer y terminar conexiones
entre el mismo par de procesos y cada intercambio
de mensajes entre ellos.
-Minimizar el costo de mantener la conexin.
-Optimizar los reconocimientos cuando hay una serie
de mensajes entre el send y receive.
JRA 2009
Pasaje de Mensajes
Confiabilidad
La cada del nodo o enlace implica prdida de mensaje.
Se usan timeouts (duplicacin de mensajes)
Correctitud
Pueden enviarse multicast
-atomicidad
-orden de despacho
-persistencia
JRA 2009
Pasaje de Mensajes
Flexibilidad
Deben permitir alguna clase de control de flujo entre
procesos cooperativos, incluyendo send/receive
sincrnicos y asincrnicos.
Seguridad
Autenticacin del receptor de un mensaje por el
enviador
Autenticacin del enviador de un mensaje por el
receptor
Encriptacin del mensaje
JRA 2009
Pasaje de Mensajes
Portabilidad
El sistema de pasaje de mensajes debe ser portable
(posible construccin de protocolos de IPC reusando el
mismo sistema de mensajes)
Heterogeneidad de mquinas compatibilizacin de
representacin.
JRA 2009
Pasaje de Mensajes
El pasaje de mensajes en la intercomunicacin
entre procesos
Una estructura de mensajes tpica:
Datos
actuales
o
punteros
Datos
Informacin de estructura
Nmero de
bytes/elementos
Tipo
long var
JRA 2009
Direcciones
#sec o
id del recep env
mensaje
Pasaje de Mensajes
El enviador determina el contenido del mensaje.
El receptor tiene en cuenta como interpretar los datos.
JRA 2009
Pasaje de Mensajes
En el diseo de un protocolo de intercomunicacin
entre procesos debe considerarse:
Quin enva ?
Quin recibe ?
Hay uno o varios receptores ?
Est garantizado que el mensaje ha sido
aceptado por el receptor ?
Necesita el send esperar una respuesta ?
JRA 2009
Pasaje de Mensajes
JRA 2009
Pasaje de Mensajes
Sincronizacin
No bloqueante
El receptor conoce la llegada del mensaje
Polling
Interrupcin
Bloqueantes sincrnica
Fcil de implementar pero poca concurrencia
JRA 2009
Pasaje de Mensajes
Comunicacin Sincrnica - Mensajes Bloqueantes
receptor
enviador
Send (mns)
Ejecucin
suspendida
mensaje
Receive (mns)
Ejecucin suspendida
Reanuda ejecucin
ack
Send (ack)
Reanuda ejecucin
JRA 2009
Pasaje de Mensajes
Buffering
De buffer nulo a buffer con capacidad ilimitada
No buffer
Cita (rendez-vous)
Descarte
Buffer simple
Adecuado para transferencia sincrnica
Capacidad infinita
Almacena todo lo que recibe (asincrnica)
JRA 2009
Pasaje de Mensajes
Buffer lmite finito
Puede haber rebalse de buffer
Comunicacin no exitosa (lo hace menos confiable)
Comunicacin con flujo controlado (bloquea al enviador
hasta que haya espacio)
Buffer mltiple
Mailbox o prtico
JRA 2009
Pasaje de Mensajes
Mensajes multidatagrama
La mayora tiene un lmite superior en el tamao del dato
que puede ser transmitido en algn momento (MTU).
Esto implica que magnitudes mas grandes deben
fragmentarse en paquetes.
El ensamblador y desensamblador es responsabi-lidad del
sistema de pasaje de mensajes.
JRA 2009
Pasaje de Mensajes
Codificacin y decodificacin de mensajes de datos
Un puntero absoluto pierde significado
transmitido de un espacio a otro.
cuando
es
JRA 2009
Pasaje de Mensajes
Direccionamiento de los procesos
Problema de nombres de las partes involucradas en una
interaccin.
Direccionamiento explcito
Send (process-id,msg)
Receive(process-id,msg)
JRA 2009
Pasaje de Mensajes
Direccionamiento implcito
No se explicita el nombre del proceso.
Resulta til para cliente-servidor: se menciona un servicio.
Send-any (service-id,msg)
Receive-any (proceso-mudo,msg)
JRA 2009
Pasaje de Mensajes
Manejo de fallas
Cada de sitio
Cada de enlace
Problemas posibles:
JRA 2009
a)
b)
c)
Pasaje de Mensajes
(a) Prdida del mensaje de requerimiento
Env
Rec
Send
req
JRA 2009
Pasaje de Mensajes
(b) Prdida del mensaje de respuesta
Env
Rec
Send
req
Send
resp
JRA 2009
Pasaje de Mensajes
(c) Ejecucin del requerimiento no exitosa
Env
Rec
Send
req
Crash
JRA 2009
Pasaje de Mensajes
Protocolos de mensajes confiables
Cuatro mensajes
C
S
req
ack
resp
ack
JRA 2009
Pasaje de Mensajes
Tres mensajes
S
req
resp
ack
JRA 2009
Pasaje de Mensajes
Dos mensajes
C
S
req
resp
JRA 2009
Pasaje de Mensajes
Comunicacin Persistente
JRA 2009
Pasaje de Mensajes
Comunicacin Persistente
Arquitectura general de un sistema de mensajes encolados
Enviador
Capa de
encolado
SO Local
Bsqueda en nivel
de transporte de la
direccin de la cola
Receptor
Capa de
encolado
Direccin a nivel
cola
Bsqueda de la
direccin en la base
de datos
SO Local
Direccin a nivel de
transporte
Red
Pasaje de Mensajes
Organizacin general de un sistema de cola de mensajes con routers.
Enviador A
Aplicacin
Aplicacin
Cola
recepcin
Mensaje
Cola envo
Aplicacin
2-29
Receptor B
Aplicacin
JRA 2009
Pasaje de Mensajes
Brokers de Mensajes
Cliente fuente
Broker de
mensajes
2-30
Programa
Broker
SO
Capa
colas
SO
SO
Red
Organizacin general de un broker de mensajes en un sistema de
mensajes encolados
JRA 2009
Pasaje de Mensajes
Primitivas para Sockets en TCP/IP
Primitiva
JRA 2009
Significado
Socket
Bind
Listen
Accept
Connect
Send
Receive
Close
Libera la conexin
Pasaje de Mensajes
Servidor
Punto de sincronizacin
Comunicacin
Cliente
JRA 2009
Requerimiento
Cliente
Servidor
Respuesta
Kernel
Kernel
RED
JRA 2009
Modelo Cliente-Servidor
JRA 2009
Modelo Cliente-Servidor
LAN o WAN
o Internet
Servidor
Estacin de trabajo
(cliente)
JRA 2009
Modelo Cliente-Servidor
JRA 2009
Modelo Cliente-Servidor
Estacin de trabajo cliente
Servicios de
presentacin
Servidor
Peticin
Lgica de aplicacin
(parte del cliente)
Lgica de aplicacin
(parte del servidor)
Respuesta
Software de
comunicaciones
Interaccin
de protocolos
Software de
comunicaciones
Sistema operativo
cliente
Sistema operativo
servidor
Plataforma hardware
Plataforma hardware
Modelo Cliente-Servidor
Las funciones reales de la aplicacin pueden repartirse
entre cliente y servidor de forma que:
Se optimicen los recursos de la red y de la
plataforma.
Se optimice la capacidad de los usuarios para
realizar varias tareas.
Se optimice la capacidad para cooperar el uno con el
otro en el uso de recursos compartidos.
JRA 2009
JRA 2009
Plataforma
hardware
Estacin de trabajo
cliente
Sistema gestor
de base de datos
Consulta inicial
Cliente
Un registro devuelto
JRA 2009
Base de datos
de 1.000.000
de registros
(b) Cliente/servidor mal empleado
JRA 2009
Cliente
Servidor
Lgica de presentacin
Lgica de aplicacin
Lgica de base de datos
SGBD
JRA 2009
Lgica de presentacin
Lgica de aplicacin
Lgica de base de datos
SGBD
JRA 2009
Lgica de presentacin
Lgica de aplicacin
Lgica de base de datos
JRA 2009
Lgica de presentacin
Lgica de aplicacin
Lgica de aplicacin
Lgica de base de datos
SGBD
JRA 2009
JRA 2009
Cliente
Servidores finales
(servidores de datos)
JRA 2009
JRA 2009
JRA 2009
JRA 2009
JRA 2009
Cliente
Ret
Servidor
Llam
Llam
Ret
ejecuta
Unpck
Pack
Stub
Unpck
Pack
Send
Runtime
Receive
Send
espera
Receive
JRA 2009
JRA 2009
JRA 2009
JRA 2009
Cliente
Llamada al
procedimiento remoto
Requerimiento
Retorno de la
llamada
Respuesta
Servidor
Llama al procedimiento Tiempo
local y retorna el resultado
Mquina servidor
1.Llamada2-8
del cliente
al procedimiento
Stub servidor
Stub cliente
proceso serv
Implementacin
de add
SO serv
SO cliente
3.El mensaje es
enviado por la red
Pasos que involucra hacer una computacin remota por medio de RPC
Sistemas Distribuidos: Comunicacin
JRA 2009
RPC Asincrnico
La interconexin entre cliente y servidor en un RPC
tradicional
Cliente
Llamada al
procedimiento
remoto
Retorno de la
llamada
req
Servidor
JRA 2009
resp
Llama al procedimiento
local y retorna resultados
tiempo
RPC Asincrnico
Un cliente y servidor interactuando con dos RPCs
asincrnicos
Espera por
aceptacin2-13
Cliente
Llamada al
procedimiento
remoto
Retorno de la
llamada
req
Interrumpe
al cliente
Retorna
resultados
Ack
acepta req
Servidor
Llamada al procedimiento local
Tiempo
Llamada al
cliente con un
RPC en un
sentido
JRA 2009
Mquina Directorio
2-15
3.Bsqueda servidor
Mquina Cliente
Servidor
Directorio
2.Registro Servicio
Mquina Servidor
5.Haga RPC
Cliente
Servidor
1.Registro endpoint
4.Bsqueda endpoint
Tabla de
endpoints
JRA 2009
a muchos
Muchos
a uno
Muchos
a muchos
JRA 2009
JRA 2009
JRA 2009
JRA 2009
JRA 2009
S0
R1
R0
m1
m2
JRA 2009
S1
m2
m1
No hay restriccin de
orden
S0
R1
t1
R0
m1
S1
Tiempo
t2
t1 <
t2
m1
m2
m2
Ordenamiento
absoluto
JRA 2009
S0
R1
R0
t1
Tiempo
t2
m2
m2
S1
m1
t1 <
t2
m1
Ordenamiento
consistente
JRA 2009
S0
R1
R2
R3
S1
Tiempo
m1
m1
m3
m2
m1
m2
m3
Orden causal
JRA 2009
Fin
Mdulo 2
Comunicacin
Facultad de Ingeniera
Departamento de Informtica
Universidad Nacional de la Patagonia San Juan Bosco