SISTEMAS DISTRIBUIDOS
OBJETIVO GENERAL
Describir panorámicamente los aspectos relevantes que están involucrados en
los Sistemas Distribuidos.
OBJETIVOS ESPECÍFICOS
- Introducir a los estudiantes a los conceptos generales de los sistemas distribuidos.
- Brindar una panorámica de lo que son las aplicaciones distribuidas y sus usos.
Ejercicio Inicial:
Trate de hacer una lista de tres (3) ejemplos de sistemas distribuidos y explique cada uno de ellos.
Conceptos Generales
Antes de comenzar, veamos el siguiente video introductorio a los Sistemas Distribuido:
SISTEMAS DISTRIBUIDOS
Definición de sistema distribuido: Podríamos decir que un sistema distribuido es un conjunto de
computadores interconectados entre sí y que comparten un estado y ofrecen una visión de un
sistema único.
Como los componentes de un SD pueden no ser homogéneos, se necesita contar entonces con
una capa de Software que es conocida como un “middleware”, para que esta haga como si fuera
un sistema único.
Una evolución en los años 90 ́s que fue la que introdujo los equipos portátiles, dio paso a lo que se
denomina tecnología móvil. Estos equipos móviles salen de la red local (LAN) con el propósito de
descubrir nuevos recursos. Esto implica una adaptación a los cambios de red y a veces a trabajar
en modo offline o desconectado. Pueden constituirse redes “ad-hoc” las cuales requieren
protocolos específicos como MOBILE IP, y así se hacen muy claras las ventajas de las
comunicaciones inalámbricas.
El rápido cambio de la tecnología está involucrándonos cada vez más con dispositivos miniatura.
Desde ese punto de vista, cualquier dispositivo adquiere la capacidad de cómputo y
comunicaciones de un computador.
Algunos ejemplos de esto son: Los celulares, GPS, tarjetas inteligentes, entre otros muchos que
han ido apareciendo en el mercado y seguirán sorprendiéndonos.
PROPIEDADES DE LOS SISTEMAS DISTRIBUIDOS
Si un sistema Distribuido quiere ofrecer una visión de sistema único deberá cumplir con algunas
propiedades como:
1. Transparencia
El principal objetivo de un SD es proporcionar al usuario y a las aplicaciones una visión de los
recursos del sistema como si fueran gestionados por una máquina virtual.
La distribución física de los recursos es totalmente transparente, y por esto podemos describir
aspectos de esta transparencia, como:
Identificación: Los espacios de los nombres de los recursos son independientes de la
topología de red y de la propia distribución de los recursos, es decir, una aplicación
cualquiera puede referirse a un recurso con un nombre totalmente independiente del
nodo en que esta se ejecuta.
Ubicación Física de los Recursos: Ni los recursos ni tampoco las aplicaciones conocen el
nodo en el que reside el recurso, y tampoco si este es remoto o local. Por esta razón, esto
implica que los mismos recursos pueden migrar entre nodos sin que las aplicaciones se
vean afectadas.
Replicación: Ni los usuarios ni tampoco las aplicaciones tienen conocimiento de cuantas
unidades hay de cada recurso, ni tampoco si hay adición o eliminación de las copias de los
recursos.
Paralelismo: Una aplicación cualquiera podría ejecutarse en paralelo sin que la aplicación
tenga que especificarlo, y además sin tener ninguna consecuencia sobre la ejecución,
excepto por medidas de rendimiento.
Esta propiedad si afecta a los procesos que permiten la distribución de procesos y
memoria.
Compartición: Esta consiste en que un recurso compartido intente ser accedido de manera
simultánea desde varias aplicaciones y no esto no tenga efecto sobre la ejecución de esta
aplicación.
Rendimiento: la implementación de los SD implica que hay un costo, y en este caso
hablamos que ese costo será el rendimiento.
CARACTERÍSTICAS DE LOS SISTEMAS DISTRIBUIDOS
ESCALABILIDAD
Una de las características de los SD es su modularidad, y esta por ende le permite ser flexible y
escalable.
La escalabilidad se entiende entonces como esa capacidad de crecer sin aumentar su complejidad
ni mucho menos disminuir su rendimiento.
La escalabilidad presenta dos aspectos básicos que son:
2. El SD debe proporcionar espacios de nombres lo suficientemente amplios, de manera que
no dé pie a una limitación inherente.
“Los espacios de nombres, al igual que en los sistemas centralizados, pueden identificar
objetos de diferente naturaleza, como ficheros, procesos, variables, o incluso direcciones
de memoria (en los sistemas de memoria compartida distribuida, DSM). En el caso de los
espacios lineales, como la memoria, existe una limitación inherente asociada al tamaño
del nombre, de forma que hoy en día es razonable plantear la insuficiencia de los espacios
de direcciones de 32 bits. En otros casos, los espacios de nombres son jerárquicos y por lo
tanto escalables por naturaleza”1
.
3. El SD debe mantener un buen nivel de rendimiento en el acceso a los recursos cuando el
sistema crece.
“El crecimiento de un sistema distribuido puede introducir cuellos de botella y latencias
que degradan su rendimiento. Además del incremento de los costes de comunicación por
el aumento de la distancia física entre los componentes del sistema, la complejidad
estructural de los algoritmos distribuidos es a menudo más que lineal con respecto al
tamaño del sistema, como iremos comprobando a lo largo del curso. Es necesario, por
tanto, establecer compromisos entre tamaño del sistema, rendimiento y complejidad”2
.
FIABILIDAD
La fiabilidad de un sistema puede definirse como esa capacidad para realizar correctamente y en
todo momento las funciones para las que se ha diseñado el mismo.
La fiabilidad se contempla dos aspectos que son:
4. Disponibilidad:
Entendida como la fracción de tiempo que el sistema está en operación. El principal
parámetro para medir la disponibilidad es el tiempo medio entre fallos (MTBF), pero hay
que considerar también el tiempo de reparación.
5. Tolerancia a Fallos: un fallo en un momento específico podría tener consecuencias fatales
para el sistema. Pensemos por ejemplo en un sistema de tiempo real, que controlan
dispositivos vitales (pensemos en el campo de la medicina por ejemplo), y aunque la
replicación aumenta la disponibilidad, esto no es garantía absoluta de la continuidad del
servicio.
La tolerancia a fallos contempla entonces la capacidad del sistema para seguir operando
correctamente ante el fallo de alguno de sus componentes.
CONSISTENCIA
Los SD traen consigo importantes beneficios como como el incremento del rendimiento a través
del paralelismo y así permitiendo el acceso a copias locales del recurso.
Ahora, de otro modo la replicación aumenta la disponibilidad, que es la base para mejorar la
tolerancia a fallos.
Así mismo, la distribución de recursos trae consigo algunos problemas. Algunos de estos son:
- La red de interconexión es una nueva fuente de fallos.
- La seguridad del sistema es vulnerable a accesos no permitidos.
- Dificultada para evitar situaciones de inconsistencia entre los componentes del sistema.
Ejercicio del Tema 1
Liste tres de las propiedades de los Sistemas Distribuidos y de un ejemplo de la vida real donde se
pueda apreciar esta propiedad.
No hay comentarios.:
Publicar un comentario