Post on 10-Jul-2022
09 Sistemas Distribuidos
Estructuras de datos (Prof. Edgardo A. Franco)
1
Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com
Contenido
• Definición de un sistema distribuido
• Características
• Objetivos de los sistemas distribuidos
• Ejemplos de sistemas distribuidos
• Tipos de sistemas distribuidos
• Implicaciones de los sistemas distribuidos
• Desafíos de los sistemas distribuidos
2
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Co
nte
nid
o
Definición de un sistema distribuido • "Un sistema distribuido es una colección de
computadoras independientes que dan al usuario la impresión de constituir un único sistema coherente".
• Por lo tanto sus componentes se localizan en computadoras conectadas en una red con el fin de comunicarse y coordinar sus acciones únicamente mediante el paso de mensajes.
3
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Intr
od
ucc
ión
Características de los sistemas distribuidos • La computación usa múltiples recursos que
están situados físicamente dispersos.
• En un sistema distribuido se ejecutan múltiples aplicaciones a la vez. Las aplicaciones pueden pertenecer a diferentes usuarios.
• Un sistema distribuido es a menudo heterogéneo.
4
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Car
acte
ríst
icas
de
los
sist
emas
dis
trib
uid
os
Características de los sistemas distribuidos • Un sistema distribuido no tiene una memoria
compartida, al menos a nivel de hardware.
• Las características y las formas de comunicarse de las computadoras quedan ocultas para el usuario.
• Los usuario y las aplicaciones pueden interactuar con el sistema distribuido de manera consistente y uniforme sin importar donde y cuando se tenga lugar. 5
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Car
acte
ríst
icas
de
los
sist
emas
dis
trib
uid
os
Características de los sistemas distribuidos • Con el objeto de dar soporte a computadoras
y redes heterogéneas mientras se ofrece la vista de un sistema único, los sistemas distribuidos se organizan a menudo en términos de una capa de software.
• i.e. están colocados de manera lógica entre una capa de alto nivel que consta de usuarios y aplicaciones y una capa subyacente constituida por los sistemas operativos y recursos básicos de comunicación.
6
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Car
acte
ríst
icas
de
los
sist
emas
dis
trib
uid
os
Características de los sistemas distribuidos • Un sistema distribuido comúnmente se apoya
de una capa de middleware que se extiende sobre diversas máquinas, y ofrece a cada aplicación la misma interfaz.
7
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Car
acte
ríst
icas
de
los
sist
emas
dis
trib
uid
os
Aplicación A
SO local 1
Computadora 1
SO local 2
Computadora 2
SO local 3
Computadora 3
Aplicación C
SO local 4
Computadora 4
Capa del sistema distribuido (middleware)
Aplicación C
Red
Objetivos de los sistemas distribuidos • Un sistema distribuido debe hacer que los
recursos sean fácilmente accesibles; debe de ocultar de manera razonable el hecho de que los recursos están distribuidos por toda la red; debe de ser abierto; y debe de ser escalable.
8
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Ob
jeti
vos
de
los
sist
emas
dis
trib
uid
os
Objetivos de los sistemas distribuidos • Hacer accesibles los recursos
• El principal objetivo de un sistema distribuido es facilitar a los usuarios (y a las aplicaciones) el acceso a los recursos remotos (físicos, bases de datos, archivos, redes, etc.), y compartirlos de manera controlada y eficiente.
• Groupware (Sistemas de edición y trabajo colaborativo) 9
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Ob
jeti
vos
de
los
sist
emas
dis
trib
uid
os
Objetivos de los sistemas distribuidos • Transparencia en la distribución
• Se deberá de ser capaz de presentarse ante los usuarios y las aplicaciones como si se tratará de una sola computadora.
• Aunque la transparencia de distribución generalmente es considerada preferible para cualquier sistema distribuido, no siempre es posible ocultar por completo los aspectos de distribución a los usuarios, además de no ser la mejor idea. 10
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Ob
jeti
vos
de
los
sist
emas
dis
trib
uid
os
Objetivos de los sistemas distribuidos • Transparencia en la distribución
11
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Ob
jeti
vos
de
los
sist
emas
dis
trib
uid
os
Transparencia Descripción
Acceso Oculta diferencias en la representación de los datos y la forma en que un recurso accede a los datos.
Ubicación Oculta la localización de un recurso.
Migración Oculta el que un recurso pudiera moverse a otra ubicación.
Reubicación Oculta el que un recurso pudiera moverse a otra ubicación mientras está en uso.
Replicación Oculta el número de copias de un recurso.
Concurrencia Oculta que un recurso puede ser compartido por varios usuarios que compiten por el.
Falla Oculta la falla y recuperación de un recurso.
Objetivos de los sistemas distribuidos • Grado de apertura • Un sistema distribuido abierto es un sistema que
ofrece servicios de acuerdo con las reglas estándar que describen la sintaxis y la semántica de dichos servicios. • Interoperabilidad: Define la extensión mediante la
cual dos implementaciones de sistemas o componentes de fabricantes distintos pueden coexistir y trabajar juntos.
• Portabilidad: Define la extensión mediante la cual una aplicación desarrollada para un sistema distribuido A se pueda ejecutar en un sistema distribuido B. 12
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Ob
jeti
vos
de
los
sist
emas
dis
trib
uid
os
Objetivos de los sistemas distribuidos • Escalabilidad
• Un sistema distribuido puede ser escalable con respecto a su tamaño, i.e. agregar fácilmente usuarios y recursos.
• Existe la escalabilidad geográfica, según los alcances geográficos de la conexión al sistema.
• El hablar de escalabilidad implica resolver una gran cantidad de problemas de diversos tipos. 13
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Ob
jeti
vos
de
los
sist
emas
dis
trib
uid
os
Objetivos de los sistemas distribuidos • Escalabilidad
• Limitaciones en la escalabilidad
14
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Ob
jeti
vos
de
los
sist
emas
dis
trib
uid
os
Concepto Ejemplo
Servicios centralizados
Un solo servidor para todos los usuarios.
Datos centralizados
Un solo directorio telefónico en línea.
Algoritmos centralizados
Hacer un ruteo basado en información completa.
Ejemplos de sistemas distribuidos • Internet
• Una intranet, que es porción de Internet gestionada por una organización
• La computación móvil y ubicua
15
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Ejem
plo
s d
e si
stem
as d
istr
ibu
ido
s
Ejemplos de sistemas distribuidos • Internet
• Internet es una red mundial de computadoras.
• Lo que nos lleva a que Internet engloba una vasta colección de computadoras de diferentes tipos con programas ejecutándose en ellas interactuando a través de paso de mensajes bajo diversos medios físicos de comunicación.
16
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Ejem
plo
s d
e si
stem
as d
istr
ibu
ido
s
Ejemplos de sistemas distribuidos • Intranets
• Una intranet es una porción de Internet que es, administrada separadamente y que tiene un limite que puede ser configurado para hacer cumplir políticas de seguridad local.
• Servicios de archivos
• Servicios de bases de datos
• Servicios de comunicación y multimedia
17
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Ejem
plo
s d
e si
stem
as d
istr
ibu
ido
s
Ejemplos de sistemas distribuidos • Computación móvil y ubicua
• El termino ubicuo está pensado en sugerir que los pequeños dispositivos llegarán a estar tan extendidos en los objetos de cada día que apenas nos daremos cuenta de ellos.
"Computación en todo momento y en todo lugar"
18
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Ejem
plo
s d
e si
stem
as d
istr
ibu
ido
s
Implicaciones de los sistemas distribuidos • Concurrencia: en la red existirán programas
concurrentes, los cuales requieren coordinarse y compartir recursos.
• Inexistencia de reloj global: La coordinación estrecha depende a menudo de una idea compartida del instante en el que ocurren las acciones de los programas. Aunque hay limites de precisión para sincronizar relojes, no hay una única noción global del tiempo correcto.
• Fallos independientes: Es necesario planificar las consecuencias de posibles fallos. Un posible fallo en la red aislará a una computadora, pero los programas que se ejecutan no deberán de detener su ejecución.
19
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Imp
licac
ion
es d
e lo
s s
iste
mas
dis
trib
uid
os
Desafíos de los sistemas distribuidos • Aunque en la actualidad se encuentran sistemas
distribuidos por todas partes, su diseño es aún bastante simple y quedan todavía grandes posibilidades de desarrollar servicios y aplicaciones más ambiciosas. Para ello es necesario enfrentarse a los siguientes desafíos: • Heterogeneidad
• Extensibilidad
• Seguridad
• Escalabilidad
• Tratamiento de fallos
• Concurrencia
• Transparencia
20
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Des
afío
s d
e lo
s si
stem
as d
istr
ibu
ido
s
Desafíos de los sistemas distribuidos • Heterogeneidad: En los diferentes elementos redes,
hardware, sistemas operativos, lenguajes de programación, implementaciones de distintos desarrolladores.
• El middleware provee una abstracción de programación, así como un enmascaramiento de la heterogeneidad subyacente de las redes, hardware, sistemas operativos y lenguajes de programación.
• La mayoría de los midleware se implementas obre protocolos de Internet, enmascarando la diversidad de redes existente.
• E.g. Java RMI y CORBA soportan un lenguaje de programación y transparentan el proceso del paso de mensajes y la distribución de los objetos.
21
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Des
afío
s d
e lo
s si
stem
as d
istr
ibu
ido
s
Desafíos de los sistemas distribuidos • Heterogeneidad y código móvil: En un
sistema distribuido cabe la posibilidad de enviar código de una computadora a otra que será la el que finalmente lo ejecutará.
• Es muy común depender de una máquina virtual.
22
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Des
afío
s d
e lo
s si
stem
as d
istr
ibu
ido
s
Desafíos de los sistemas distribuidos • Extensibilidad: Los sistemas distribuidos
deberían de ser extensibles, el primer paso es la publicación de las interfaces de sus componentes, aunque es un verdadero reto la integración de componentes escritos por distintos desarrolladores.
• Seguridad: Se puede emplear encriptación para proporcionar una protección adecuada a los recursos compartidos y mantener secreta la información sensible cuando se transmite un mensaje a través de la red. Los ataques de denegación de servicio son un problema.
23
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Des
afío
s d
e lo
s si
stem
as d
istr
ibu
ido
s
Desafíos de los sistemas distribuidos • Escalabilidad: Un sistema distribuido es
escalable si el coste de añadir un usuario es una cantidad constante en términos de recursos que se deberán añadir. Los algoritmos empleados para acceder a los datos compartidos deberían evitar cuellos de botella y los datos deberían estar estructurados jerárquicamente para dar los mejores tiempos de acceso. Los datos frecuentemente accedidos pudieran estar replicados. 24
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Des
afío
s d
e lo
s si
stem
as d
istr
ibu
ido
s
Desafíos de los sistemas distribuidos • Tratamiento de fallos: Cualquier proceso,
computadora o red puede fallar independientemente de los otros. En consecuencia cada componente necesita estar al tanto de las formas posibles en que pueden fallar los componentes de los que depende y estar diseñado para tratar apropiadamente con cada uno de estos fallos.
25
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Des
afío
s d
e lo
s si
stem
as d
istr
ibu
ido
s
Desafíos de los sistemas distribuidos • Concurrencia: La presencia de múltiples usuarios en
un sistema distribuido es un fuente de peticiones concurrentes a sus recursos. Cada recurso debe estar diseñado para ser seguro en un entorno concurrente.
• Transparencia: Ciertos aspectos de la distribución deben ser invisibles al programador de aplicaciones de modo que solo se necesite ocuparse del diseño de su aplicación en particular. E.g. no debería de ocuparse de su ubicación o los detalles de como accede a sus operaciones por otros componentes, o si será replicado o migrado. Incluso los fallos de las redes y los procesos deberán presentarse en forma de excepciones que puedan ser tratadas.
26
Sist
emas
op
erat
ivo
s II
0
9 S
iste
mas
dis
trib
uid
os
Des
afío
s d
e lo
s si
stem
as d
istr
ibu
ido
s