Contenido
Escalabilidad
Transparencia
Consistencia y control de datos
Control de concurrencia
Tolerancia a fallas y recuperación
Escalabilidad
Un sistema distribuido es escalable si su capacidad de procesamiento puede crecer al añadir más nodos
Aumenta el rendimiento al aumentar más nodos
El tiempo de respuesta no aumenta
La fiabilidad no se degrada
Un sistema paralelo es escalable para un determinado rango de procesadores si la eficiencia se mantiene constante para todo el rango.
A partir de cierto número de procesadores la eficiencia cae
Escalabilidad
(2)
Escalabilidad ? Ampliabilidad
Ampliabilidad
Físicamente el sistema acepta nuevos módulos (procesadores, memoria, etc.)
Aunque el sistema se amplíe el rendimiento no crece de forma proporcional
Transparencia
Ocultar al usuario o programador los detalles que dan funcionalidad a un sistema.
De manera ideal el usuario no percibe los posibles y normales problemas del sistema.
Se pueden producir fallos pero el usuario no los va a notar (Transparencia a las fallas).
El sistema puede crecer, pero para ello no habrá que detenerlo (Transparencia de escalabilidad o ampliabilidad)
Se podrán compartir y utilizar recursos, pero no será necesario saber dónde están o a dónde se han movido (Transparencia de ubicación)
El Usuario no ve la competencia y sincronización por los recursos (Transparencia de la concurrencia)
Transparencia
(2)
Transparencia al paralelismo y su implementación
Partir de la especificación del problema y no detenerse en el modo de descomponerlo en tareas.
Requiere mayor nivel de abstracción
Muy difícil obtener alta eficiencia
Es deseable pero tiene su costo ya que acelera el proceso de producción pero disminuye su eficiencia
Transparencia
(3)
La transparencia se puede conseguir a dos niveles:
A nivel de usuario
Por ejemplo:
Cuando un usuario compila con make no necesita saber si se hará de forma secuencial, paralela, en máquinas distintas, utilizando servidores, etc.
Simplemente usa el sistema desde su terminal tal como un sistema centralizado
A nivel de programación
Por ejemplo:
Para mantener la transparencia de la semántica de make una posible solución consistiría en programar un nuevo make considerando la arquitectura del sistema distribuido y/o paralelo.
Sin embargo, si no se reescribiera el make centralizado y se ejecutara de forma distribuida, entonces se tiene transparencia de programación real.
Los desarrolladores deben contar con una interfaz de programación que oculte y/o encapsule la arquitectura y funcionamiento específico del sistema.
Transparencia
(4)
En los sistemas distribuidos están identificados 7 tipos de transparencias:
De acceso
El acceso a objetos locales o remotos utiliza idénticas operaciones
De ubicación
Permite el acceso a los objetos sin tener conocimiento de su ubicación
De réplica
Se cuenta con múltiples instancias de objetos sin conocimiento de los usuarios o programas
De fallos
Las tareas se completan a pesar de los fallos de hardware o software
De migración
Los objetos se pueden mover de ubicación sin afectar la operación de los usuarios o aplicaciones
De configuración
Permite la reconfiguración dinámica del sistema para mejorar el rendimiento a medida que varia la carga de trabajo
De escala
Permite que el sistema o las aplicaciones se expandan sin cambiar la estructura del sistema o los algoritmos de programación.
Consistencia y control de datos
Página siguiente |