Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home)...

41
Sistemas Distribuidos Introducción

Transcript of Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home)...

Page 1: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Sistemas Distribuidos

Introducción

Page 2: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

1

Preámbulo: ¿de dónde venimos?

• En SS.OO. aprendimos comunicación entre procesos remotos– Usando sockets stream (TCP) y datagramas (UDP)

– ¿No es suficiente?

• Quedan muchas cuestiones por resolver:– ¿qué información intercambian? ¿qué formato usan (p.e. entero little

o big endian vs texto)? ¿cómo se localizan? ¿qué patrón de

comunicación siguen? ¿cómo lograr eficiencia, escalabilidad,

paralelismo, tolerancia a fallos y seguridad en la comunicación?...

– ¿cómo implementar servicios del S.O. en un entorno remoto?• Acceso a ficheros y dispositivos remotos

• Gestión de procesos remotos

• Sincronización entre procesos remotos

– ¿mecanismos de comunicación de más alto nivel?

• Aprenderemos a crear aplicaciones distribuidas

Page 3: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Acceso web mediante telnet

2000

<!DOCTYPE html>…….

2000

ia/imagenes/QS.jpg">……..

17ba

<p id="dia_semana" >MIÉRCOLES</p>....

0

Sistemas Distribuidos

2

$ telnet www.upm.es 80

GET / HTTP/1.1

host:www.upm.es

Long. trozo 1º

Long. trozo 2º

Long. trozo 3º

No más trozos

HTTP/1.1 200 OK

Date: Mon, 27 Jan 2020 09:18:39 GMT

Server: Apache

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate

Pragma: no-cache

Vary: Accept-Encoding

Content-Type: text/html; charset=UTF-8

Set-Cookie: PHPSESSID=kvk3pithfboqi05h88fd6k88af;

path=/

Transfer-Encoding: chunked A trozos

cabecera

cuerp

o

Línea en blanco

petición

Page 4: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

3

Contenido del tema

• Definición de sistema distribuido.

• Ventajas y desventajas de los sistemas distribuidos.

• Modelos de computación distribuida.

• Objetivos de un sistema distribuido.

• Arquitectura software de los sistemas distribuidos.

• Componentes de un sistema distribuido.

Page 5: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

4

Definiciones de sistema distribuido

Distributed Systems, Concepts and Design. G. Coulouris et al.

• One in which hardware or software components located at

networked computers communicate and coordinate their

actions only by passing messages

Distributed Systems. M. van Steen y A. S. Tanenbaum.

• A distributed system is a collection of autonomous computing

elements that appears to its users as a single coherent system

Page 6: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

5

Sistema distribuido (SD)

• Conjunto de nodos conectados por una red:– Máquinas reales, virtuales o contenedores

– Conectadas mediante una red real o virtual

– Sin memoria compartida (Sistema débilmente acoplado)

– Sin reloj común

– Dispositivos de E/S asociados a cada procesador

– Fallos independientes de componentes del SD

– Nodos pueden tener carácter heterogéneo (distintos UCP, S.O.)

• Objetivo de la asignatura: Software de sistema del SD– “Sistema Operativo” del SD

• Idealmente, visión de sistema único (Single System Image)– Usuarios/aplicaciones no son conscientes del carácter distribuido

– No es fácil de alcanzar ni siempre deseable

Page 7: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

6

Ventajas de los Sistemas Distribuidos

Frente a solución centralizada

• Economía: Buena relación rendimiento/coste.

• Capacidad de crecimiento: Escalabilidad.

• Alto rendimiento: Procesamiento paralelo.

• Soporte de aplicaciones inherentemente distribuidas.

• Fiabilidad y disponibilidad: Tolerancia a fallos.

• Carácter abierto y heterogéneo.

• Compartición de recursos y datos.

Page 8: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

7

Desventajas de los Sistemas Distribuidos

Frente a solución centralizada

• Necesidad nuevo tipo de software que incluya comunicaciones

• Red de interconexión introduce nuevos problemas:– Pérdida de mensajes y saturación.

– Latencia puede provocar que al recibir un dato ya esté obsoleto.

• Seguridad y confidencialidad

• Definición alternativa de SD:– “Un sistema distribuido es aquel en el que no puedes trabajar con tu

máquina por el fallo de otra máquina que ni siquiera sabías que

existía” (Lamport)

Page 9: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

8

Fallacies of Distributed Computing

1. The network is reliable.

2. Latency is zero.

3. Bandwidth is infinite.

4. The network is secure.

5. Topology doesn't change.

6. There is one administrator.

7. Transport cost is zero. Diversas interpretaciones:– Coste de empaquetar/desempaquetar datos al enviarlos/recibirlos– Coste económico de la infraestructura de red

8. The network is homogeneous.

• 7 primeras propuestas en 1994 por Peter Deusch (Sun)– Octava por James Gosling (Java/Sun) en 1996

Page 10: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

9

Afrontando las falacias

• Las tendremos en cuenta a lo largo del curso

• Algunos ejemplos para “combatir” la segunda falacia:– “Acercar” información a los interesados

• Uso generalizado de cachés• Utilización de Content-Delivery-Networks (Wikipedia)

– Lectura anticipada de información (read-ahead/prefetching)• Ideal: información ya disponible cuando se requiere (latencia = 0)• Cuidado: si finalmente no se usa, para aliviar la segunda falacia

– hemos empeorado la tercera

Solución

tradicionalSolución

CDN

Page 11: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

10

Aplicaciones de los Sistemas Distribuidos

• Entornos empresariales: redes corporativas e intranets:– Sustituye a los clásicos mainframes.– “Sistema de información distribuido”

• Entornos de computación de altas prestaciones (HPC):– Alternativa a costosos supercomputadores tradicionales.– “Sistema de computación distribuido”

• Servicios con alta disponibilidad y rendimiento.

• Sistemas distribuidos de gestión de bases de datos.

• Sistemas de procesamiento de datos masivos (Big Data).

• Aplicaciones multimedia.

• Sistemas industriales distribuidos y aplicaciones de control.

• Internet: un enorme sistema distribuido.

• Ubicuos: automóviles, electrodomésticos, edificios, ...

Page 12: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

11

Modelos de computación distribuida

• Cluster Computing

• Grid Computing

• Volunteer Computing

• Utility Computing

• Cloud Computing

• Mobile Computing

• Ubiquitous Computing/Internet of Things

• Edge/Fog Computing

• Autonomic Computing

Definiciones no excluyentes y algunas sin acuerdo general

Page 13: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

12

Cluster Computing

• SD dedicado a ejecutar una aplicación buscando– Altas prestaciones y/o alta disponibilidad.

• Puede ejecutar varias aplicaciones mediante partición

• Más fuertemente acoplado que SD general– Incluso puede ofrecer Single System View

• Poca dispersión geográfica

• Redes de alta velocidad

• Normalmente sistema con nodos homogéneos

• Carácter estático

• Uso habitual de componentes hardware estándar

• Necesidad de un planificador de trabajos (p.e. SLURM)• https://es.wikipedia.org/wiki/Magerit#Magerit_3_(2019)

• https://docs.cesvima.upm.es/docs/magerit/es/latest/ejecucion-trabajos/

Page 14: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

13

Grid Computing

• “Cluster virtual” sobre máquinas de varias organizaciones– Se crea para ejecutar aplicación y luego puede desaparecer

• Extensión de cluster computing a mayor escala

• Máquinas con mayor dispersión geográfica

• Menor grado de acoplamiento

• Pueden extenderse a varios dominios de administración– Desde interdepartamentales hasta intercorporativos

• Recursos no dedicados– Grid convive con SD de cada organización

• Sistemas heterogéneos– Puede ser necesaria virtualización

• Sistemas dinámicos

Page 15: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

14

Volunteer Computing

• SD formado por recursos donados por usuarios a proyectos– Normalmente, ciclos de procesador y espacio de almacenamiento

– Carácter altruista (Folding@home, SETI@home)

• Similar a computación grid– Dinámico, recursos no dedicados, dispersión geográfica...

• Pero con diferencias:– Implica individuos, no organizaciones

– Asimetría de roles: usuario-proyecto• Simetría del grid: organización-organización

– Mayores problema de seguridad• Usuarios anónimos

Page 16: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

15

Utility Computing

• Computación como otro servicio público (agua, gas, luz…)– “Alquiler” de recursos computacionales externos

– Demanda dinámica basada en necesidades puntuales• On-demand Computing

• Define un modelo de trabajo más que una plataforma– Aunque la solución natural es usar un SD → computación cloud

• No es una idea nueva: John McCarthy (1961)– “Computing may someday be organized as a public utility just as the

telephone system is a public utility.”

• Necesidad de esquema de tarificación

Page 17: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

16

Cloud Computing

• Recursos HW y/o SW ofrecidos como servicio– Recursos virtualizados y dinámicamente escalables– Pago por uso

• Modelos de servicio:– Infrastructure as a Service (ej Amazon Elastic Compute Cloud, EC2)

• Oferta dinámica de recursos HW virtuales según necesite el cliente – Platform as a Service (ej. Google App Engine)

• Proporciona una plataforma de desarrollo de software– Software as a Service (ej. Google Apps)

• Ofrece aplicaciones de interés

• Modelos de despliegue:– Público: servicio público– Privado: servicio para solo una organización

• Alojado y gestionado internamente (on-premises) o externamente– Híbrido: combinación de público y privado

Page 18: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

17

www.bigcommerce.com/blog/saas-vs-paas-vs-iaas/

Page 19: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

18

Mobile Computing

• SD incluye dispositivos portátiles con acceso remoto

• Conectados de forma inalámbrica– a infraestructura del SD o formando redes ad hoc

• Usuario accede de forma remota a su organización – Información “anywhere anytime”

• Limitaciones en los recursos del dispositivo

• Control de consumo de energía del dispositivo

• Ancho de banda de comunicación variable

• Modo desconectado– Usuario puede seguir trabajando sin conexión

• Mayores amenazas a la seguridad y privacidad

Page 20: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

19

Ubiquitous Computing (UbiComp)

• Computadores omnipresentes, parte de ellos móviles

• Algunos empotrados en sistemas físicos, invisibles al usuario

• Otros portados por usuario (Wearable Computing)

• Conectados entre sí ofreciendo un valor añadido

• Plenamente integrados en el mundo para facilitar vida cotidiana

• Pero permaneciendo prácticamente desapercibidos

• Context-aware Computing– Comportamiento de la aplicación depende del contexto

• Internet of Things (IoT):– Origen más prosaico (menos “filosófico”) que Ubicomp

• Objetos cotidianos (“cosas”) que se conectan a Internet

– Pero actualmente confluencia de ambas propuestas

• Ejemplo IoT: Amazon Go

Page 21: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

20

Visión UbiComp (Mark Weiser 1991)

“We are therefore trying to conceive a new way of thinking about computers, one that takes into account the human world and allows the computers themselves to vanish into the background”

“There is more information available at our fingertips during a walk in the woods than in any computer system, yet people find a walk among trees relaxing and computers frustrating. Machines that fit the human environment instead of forcing humans to enter theirs will make using a computer as refreshing as taking a walk in the woods”

Page 22: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

21

Edge/Fog Computing

• Acercar computación y recursos a los interesados– Mejora latencia y escalabilidad

• Ej.: Netflix ubica nodos con contenidos más frecuentes en ISPshighscalability.com/blog/2017/12/11/netflix-what-happens-when-you-press-play.html

• En IoT preprocesamiento datos sensores cerca de los mismos

A Survey on Internet of Things: Architecture, Enabling Technologies, Security and Privacy, and Applications

Page 23: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

22

Autonomic Computing

• Sistemas cada vez más complejos: necesidad de autogestión– Iniciativa de IBM aplicable especialmente a SD

• Inspirado por sistema nervioso autónomo

• 4 áreas funcionales (self-*):– Auto-configuración

– Auto-reparación

– Auto-optimización

– Auto-protección

• Especialmente adecuado para UbiComp:– Si cada componente requiriera atención aunque fuera mínima...

Page 24: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

23

Objetivos de un Sistema Distribuido

• Transparencia

• Rendimiento

• Capacidad de crecimiento

• Carácter abierto

• Fiabilidad

Page 25: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

24

Transparencia

Existen varios perfiles de transparencia:– Acceso: Manera de acceder a recurso local igual que a remoto.– Posición: Se accede a los recursos sin conocer su localización.– Migración: Recursos pueden migrar sin afectar a los usuarios.– Concurrencia: Acceso concurrente no afecta a los usuarios.– Replicación: La existencia de réplicas no afecta a los usuarios.– Fallos: La ocurrencia de fallos no afecta a los usuarios.– Crecimiento: El crecimiento del sistema no afecta a los usuarios.– Heterogeneidad: Carácter heterogéneo no afecta a los usuarios.

• No siempre se puede conseguir ni siempre es buena:– Diseñadores de Java RMI consideran que la invocación de métodos

remota no debe ser exactamente igual que la local • “A Note on Distributed Computing”, Jim Waldo, 1994

– Programador debe ser consciente de cuándo usa un método remoto:• Por la latencia que conlleva y la posibilidad de que falle

Page 26: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

25

Rendimiento

Rendimiento para un servicio multiusuario:– Objetivo: Rendimiento no peor que un sistema centralizado

Rendimiento para la ejecución paralela de aplicaciones:– Objetivo: Rendimiento proporcional a procesadores empleados

Factores:

• Uso de esquemas de caché– Intentar que muchos accesos se hagan localmente

• Uso de esquemas de replicación– Reparto de carga entre componentes replicados

• En ambos casos: Coste de mantener la coherencia

Page 27: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

26

Capacidad de crecimiento

Diseño de un sistema distribuido debe evitar “cuellos de botella”: – Componentes centralizados

– Tablas centralizadas

– Algoritmos centralizados

Estrategias:– Reparto de estructuras de datos entre varios nodos.

– Replicación y caché

– Realización de parte del procesamiento en los nodos cliente.

Características deseables en un algoritmo distribuido:– Ninguna máquina tiene información completa del estado del sistema

– Las decisiones se basan sólo en información disponible localmente

– El fallo de una máquina no debe invalidar el algoritmo

– No debe asumir la existencia de un reloj global

Page 28: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

27

Carácter abierto

• SD abierto: servicios, protocolos, etc. publicados y estándares

• Facilita la interacción con otros sistemas abiertos

• Posibilita migración de aplicaciones a/desde otros SD abiertos

• Flexibilidad para cambiar y extender el SD

• Esconde heterogeneidad de HW, SO, lenguajes...

Page 29: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

28

Fiabilidad

• Teóricamente: OR-lógico de sus componentes.

• Sin embargo, a veces: AND-lógico de varios componentes.

• Evitar componentes críticos (punto único de fallo).

• Uso de replicación activa o pasiva– Mantenimiento de coherencia entre réplicas

• Operación correcta en sistema particionado por error de red– “Reconciliación” al reintegrarse

Page 30: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

29

Software de sistema de los SD

• SO para máquina con m. compartida no válido para SD– SW fuertemente acoplado sobre HW fuertemente acoplado

• Primeros sistemas: “Sistemas Operativos de Red”– Sistema operativo convencional + utilidades de red.– Protocolos de comunicación para acceso a recursos.– Cada máquina una copia de SO (posiblemente distinto).– SW débilmente acoplado sobre HW débilmente acoplado

• Software de sistema de SD debería hacer que:– usuarios lo perciban como sistema centralizado (single system view) – SW fuertemente acoplado sobre HW débilmente acoplado

• Dos arquitecturas software alternativas:– Sistemas Operativos Distribuidos– Middlewares

Page 31: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

30

Sistemas Operativos Distribuidos (SOD)

• Una copia del mismo SO en cada procesador

• Necesidad de desarrollar nuevos conceptos

• Algunos ejemplos de esta problemática específica:– ¿Cómo lograr exclusión mutua sin memoria compartida?

– ¿Cómo tratar los interbloqueos sin un estado global?

– Planificación de procesos: Cada copia del sistema operativo tiene su

cola de planificación (migración de procesos).

– ¿Cómo crear un árbol de ficheros único?

– Implicaciones de no reloj único, presencia de fallos o heterogeneidad.

• Ejemplos: Amoeba, Chorus y MOSIX

• SOD revolución: ¿tiramos a la basura nuestros SSOO viejos?

• Mejor evolución: middleware.

Page 32: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

31

Middleware

Middleware:– Capa de software que ejecuta sobre el sistema operativo local

ofreciendo unos servicios distribuidos estandarizados.

– Sistema abierto independiente del fabricante.

– No depende del hardware y sistema operativo subyacente.

Ejemplos:– DCE (Open Group).

– CORBA (OMG).

Page 33: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

32

SOD versus Middleware

Hardware

SO

Hardware

SO

Hardware

SO

Middleware

Hardware Hardware Hardware

SOD

Page 34: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

33

Componentes de un Sistema Distribuido

Componentes = Temario

– Arquitecturas y servicios de comunicación.

– Sistemas de ficheros distribuidos.

– Servicio de nombres.

– Memoria compartida distribuida.

– Servicios de sincronización y coordinación.

– Gestión de procesos.

Page 35: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

34

Arquitecturas de comunicación

• Patrón de interacción entre componentes aplicación distribuida

• Arquitecturas para computación distribuida– Maestro/trabajador

– MapReduce

• Cliente/servidor

• Editor/subscriptor

• Peer-to-peer– Sistemas estructurados: Chord

– Sistemas desestructurados• Casos de estudio: Blockchain, BitTorrent, Skype

Page 36: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

35

Servicios de comunicación

• Paradigmas:– Paso de mensajes (sockets)

– Llamada a procedimientos remotos (RPC).

– Invocación de métodos remotos (RMI).

– Servicios web.

• Cardinalidad:– Unicast, multicast, anycast, broadcast

• Persistencia de los mensajes:– Sistemas de colas de mensajes (MOM)

Page 37: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

36

Sistemas de Ficheros Distribuidos

• Estructura de un SFD

• Resolución de nombres

• Acceso a los datos

• Gestión de cache

• Gestión de cerrojos

• Casos de estudio: NFS y AFS

• Sistemas de ficheros paralelos:– Casos de estudio: Google File System y GPFS

Page 38: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

37

Servicio de nombres

• Componente que gestiona nombre de recursos en SD

• Composición, distribución y replicación del espacio de nombres

• Servicio de páginas blancas vs amarillas

• Servicio de descubrimiento

• Casos de estudio: DNS, LDAP y ZeroConf

Page 39: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

38

Memoria Compartida Distribuida (DSM)

• Concepto:– Memoria físicamente privada pero lógicamente compartida.

• Estrategias de implementación:– Basada en páginas.

– Basada en variables compartidas.

• Aspectos de diseño de DSM

• Modelos de coherencia

• DSM basada en espacios de tuplas: Linda

Page 40: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

39

Sincronización y Coordinación

• Sincronización de procesos compleja por– Falta de memoria compartida y fallos en algunos componentes

• Campo de desarrollo de algoritmos distribuidos:– Sincronización de relojes físicos y lógicos.

– Exclusión mutua e interbloqueos.

– Elección de líder

– Problemas de consenso

– Transacciones distribuidas:• Propiedades ACID, 2PC, modelos de commit/rollback.

Page 41: Sistemas Distribuidos - laurel.datsi.fi.upm.es · – Carácter altruista (Folding@home, SETI@home) • Similar a computación grid – Dinámico, recursos no dedicados, dispersión

Fernando PérezJosé María PeñaMaría S. Pérez

Sistemas Distribuidos

40

Gestión de procesos

• Caracterización de la carga:– Consumo de procesador y de otros recursos (Memoria)

– Prioridades.

• Estrategias de asignación de procesadores a procesos:– Cuándo, cuál y a dónde.

• Planificación de procesos:– Planificación interna.

– Planificación global.

• Migración de procesos– Equilibrado de carga.

– Aprovechamiento de máquinas inactivas.