You are on page 1of 19

Sistemas Distribuidos

Clase 7: comunicación y sincronización.


Resumen
El DNS se encarga de resolver nombres en la Internet.
Posee una estructura jerárquica de tipo árbol, de tal
manera que los nodos padre son dominios que
administran a los elementos de “abajo” de la
estructura.

Las hojas son los datos que se intentan resolver.

La navegación es recursiva, pero también puede ser


iterativa.
Resumen
La comunicación es muy importante en un sistema
distribuido. Existen varios niveles:
• Ethernet.
• Internet.
• TCP o UDP.
A un nivel un poco más alto, tenemos:
• RPC (Remote Procedure Call).
• MPI (Message Passing Interface).
Llamados a Procedimientos Remotos (RPC)
La mayoría de los SD están basados en el intercambio
explicito de mensajes, sin embargo, con la finalidad de
ocultar ciertos aspectos de la comunicación, se vuelve
adecuado implementar operaciones de nivel alto que
faciliten la comunicación.

Una propuesta es hacer que los programas llamen a


procedimientos localizados en otras máquinas.

Cuando un proceso A llama a un procedimiento en B,


el proceso A se suspende y se realiza la ejecución del
procedimiento en B.
Llamados a Procedimientos Remotos (RPC)
Algunos problemas de los RPC son:

• La ejecución posee diferentes espacios de


memoria.
• El paso de parámetros puede ser complicado.
• La falla en alguno o ambos equipos.
Llamados a Procedimientos Remotos (RPC)
Pasos para la ejecución:

1. El proceso cliente invoca al procedimiento. En este


caso, la interfaz deberá ser lo más transparente
posible. A la interfaz se le conoce como stub del
cliente.
2. Se realiza el marshalling y se construye un
paquete.
3. El paquete se envía al servidor, el cual puede estar
en la misma máquina local o en la red.
4. El mensaje llega al stub servidor, el cual hace
unmarshalling del paquete.
Llamados a Procedimientos Remotos (RPC)
5. Se hace la llamada al procedimiento.
6. El stub servidor empaqueta la salida y construye el
mensaje de respuesta.
7. Se envía la respuesta.
8. El stub cliente desempaqueta el resultado, los
envía al proceso cliente y le devuelve el control.
Llamados a Procedimientos Remotos (RPC)
De manera general:
Llamados a Procedimientos Remotos (RPC)
El proceso anterior, es un RPC síncrono en donde el
cliente se interrumpe mientras se ejecuta el
procedimiento remoto. Sin embargo, existe una
variantes:

• RPC síncrono.
• RPC asíncrono.
• RPC asíncrono diferido.
Memoria Compartida Distribuida (MCD):
introducción
Taxonomía de las computadoras paralelas y distribuidas

Computadoras
Distribuidas Paralelas

Fuertemente acopladas Débilmente acopladas

Multiprocesadores Multicomputadoras
(memoria compartida) (memoria privada)
(MCD): introducción
• Un sistema fuertemente acoplado, es aquel en el cual los la
tasa de mensajes es alta, y los retardos cortos.

• En cambio en un sistema débilmente acoplado, el retardo es


alto, pero la tasa de mensajes es baja.

• Un sistema fuertemente acoplado se relaciona con buses. Un


sistema débilmente acoplado se relaciona con switches.
(MCD): introducción
En los sistemas de memoria compartida:

Soporte de Software:
• Resuelven problemas de secciones críticas.
• Primitivas de sincronización: semáforos, contadores, secuenciadores,
monitores.
• Comunicación por espacios de memoria compartidos.

Soporte de Hardware:
• Limitado en la escalabilidad.
• Difícil de construir.
• El acceso a la memoria es un cuello de botella. (Es difícil diseñar una
máquina donde varios procesadores utilicen la misma memoria. Si la
arquitectura está basada en bus, no es escalable. Con switches se
obtiene una mayor escalabilidad pero son costosos, lentos, complejos).
(MCD): introducción
En los sistemas de memoria distribuida:

Soporte de Software:
• Paso de mensajes: trae complicaciones adicionales como
pérdida de mensajes, pérdida de orden, etc.
• RPC.

Soporte de Hardware:
• Fácil de construir.
• No está limitada la escalabilidad.
(MCD): introducción
Sistemas de memoria compartida distribuida:

• Toma las ventajas de los enfoques anteriores: software de los


sistemas de memoria compartida y el hardware de los
sistemas de memoria distribuida.
• Colección de estaciones de trabajo conectadas por una red,
compartiendo un único espacio de memoria virtual Paginado.
• La ubicación de los datos, su movimiento, etc. Lo maneja el
sistema de memoria compartida distribuida.
• Implementado sobre paso de mensajes.
(MCD): introducción
Sistemas de memoria compartida distribuida:

Soporte por Hardware: Paginación.

• [Li, 1986] y [Li and Hudak, 1989] fueron los primeros en


proponer el paradigma de Memoria Compartida Distribuida:
• Paginación: en el modelo más simple una página reside sólo
en un procesador. Una referencia a una página causa un falla
de página que atrapa el SO. Este último envía un mensaje a
la máquina remota, para solicitar la página.
• Es un sistema fácil de programar y fácil de construir pero el
desempeño es pobre. Puede causar mucho tráfico de red.
• Impone restricciones al programador.
Memoria Compartida Distribuida
Un problema interesante es el de asignación de memoria, el cual en principio
podría tener do soluciones posibles:

• No compartir todo el espacio de direcciones.


• Repetir algunas variables en algunas máquinas: lecturas locales,
escrituras remotas.
Memoria Compartida Distribuida
Conceptos:

Sea X una localidad de memoria sobre la cual existen operaciones


lectura/escritura por uno o más procesos o entidades.

Si algún proceso lee la variable X y obtiene el último valor escrito, decimos


que es consistente. Sin embargo, podría no ser coherente.
Memoria Compartida Distribuida
La consistencia describe lo que puede suceder sobre un conjunto de datos
con múltiples procesos. La coherencia describe lo que puede suceder para
un solo elemento de dato, cuando esta replicado.
Fin de Clase 7

You might also like