Download - Sistemas Distribuidos y Paralelos Unidad 2 Conceptos de sistemas distribuidos y paralelos
Sistemas Distribuidos y Paralelos
Unidad 2
Conceptos de sistemas distribuidos y paralelos
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 http://www.freerepublic.com/focus/f-chat/2599755/posts http://www.top500.org/lists/2011/06
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:1. De acceso
El acceso a objetos locales o remotos utiliza idénticas operaciones2. De ubicación
Permite el acceso a los objetos sin tener conocimiento de su ubicación3. De réplica
Se cuenta con múltiples instancias de objetos sin conocimiento de los usuarios o programas
4. De fallos Las tareas se completan a pesar de los fallos de hardware o software
5. De migración Los objetos se pueden mover de ubicación sin afectar la operación de los
usuarios o aplicaciones6. De configuración
Permite la reconfiguración dinámica del sistema para mejorar el rendimiento a medida que varia la carga de trabajo
7. 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
Consistencia y control de datos … (2) Consistencia de actualización
Se pierde cuando la escritura concurrente en datos compartidos no se realiza como una única acción atómica en exclusión mutua.
Es un problema común en BD, o datos compartidos, sin embargo en SD cobra particular importancia porque se puede tener un mayor número de usuarios.
La inconsistencia de actualización se evita utilizando Transacciones. Primitivas equivalentes a la entrada y salida de una sección crítica cuando se utilizan
datos compartidos. Garantizan que todas las operaciones involucradas en la transacción se realizan todas o
no se realiza ninguna. Existe otra primitiva que permite abortar una transacción anulando cualquier operación
que se hubiera realizado. ACID
Acrónimo relacionado con las propiedades de las transacciones Atomicity, Consistency, Isolation, Durability.
Ejemplos:
Consistencia y control de datos … (3)
Consistencia de replica Se da cuando un conjunto de datos debe mantenerse
replicado en varios nodos del sistema, pudiendo ser modificado por cualquiera de ellos.
Si la modificación no se refleja en todos ocurre una inconsistencia de replica.
La replicación de datos puede mejorar la velocidad del sistema y la tolerancia a fallos.
Ejemplo: En un juego multiusuario en red la acción de un jugador debe
propagarse inmediatamente al resto de los equipos de los otros jugadores, de no ser así cada jugador tendría una versión distinta del juego.
Consistencia y control de datos … (4) Consistencia de cache
En los sistemas distribuidos, cuando se accede a un recurso remoto es posible guardar una copia de forma local para facilitar su acceso en lo posterior. Existe un problema de coherencia cuando alguien modifica su copia
de forma local. En sistemas paralelos cada núcleo (procesador) cuenta con su
propia cache. Existe un problema de coherencia cuando un procesador modifica un
dato de su cache, y ese dato también está en la cache de otro procesador.
Posibles soluciones Caches locales Memoria cache compartida Caches privadas con protocolos de escucha Caches privadas con directorio compartido
Consistencia y control de datos … (5)
Consistencia de reloj Muchos de los algoritmos utilizados en aplicaciones y
programación de sistemas dependen de marcas de tiempo timestamps que indican el momento en el que ha sucedido un evento.
Consistencia y control de datos … (6)
Consistencia de interfaz de usuario Las aplicaciones interactivas pueden tener un
comportamiento (en términos de acción-respuesta) similar a la de los sistemas centralizados en los que las respuestas a las acciones del usuario también pueden ser lentas e irregulares (dependiendo de la carga del sistema centralizado o del tráfico en la red del sistema distribuido).
Control de concurrencia
Cuando se ejecutan varias transacciones de manera simultánea en distintos procesadores, se necesita cierto mecanismo para mantener a cada uno lejos del camino del otro. Este mecanismo es llamado algoritmo de control de concurrencia.
Control de concurrencia … (2)
En un sistema paralelo se tienen mecanismos de comunicación y sincronización para el control de concurrencia Tuberías, mutex, semáforos, sockets, entre otros.
Por otro lado, un sistema distribuido es inherentemente concurrente, se debe asegurar: Linealidad
El resultado de la ejecución de las llamadas concurrentes debe ser equivalente a su ejecución secuencial.
Seriación El resultado de la ejecución de secuencias de operaciones
ejecutadas concurrentemente deben ser equivalentes a la ejecución secuencial de cada una de estas secuencias
Control de concurrencia … (3) Algoritmos de control de concurrencia en sistemas distribuidos:
Cerradura Es el algoritmo más antiguo Cuando un proceso necesita leer o escribir en un objeto primero lo cierra. El sistema mantiene una lista de objetos cerrados. Un objeto solo puede ser cerrado por un proceso a la vez si la operación es de escritura. Variantes:
Cerradura de dos fases La primera obtiene todas las cerraduras, la segunda las libera
Control optimista de la concurrencia Hace todo lo que se debe llevar a cabo, sin prestar atención a lo que hacen los demás. Si existe un problema hay que preocuparse por el después.
Se aborta la transacción Se basa en la premisa de que los problemas no son frecuentes. Sin embargo en
condiciones de carga pesada la premisa no se cumple. Marcas de tiempo
Asocia a cada transacción una marca de tiempo Se utiliza el algoritmo de Lamport para garantizar que las marcas son únicas Se compara que la marca de tiempo del objeto sea más antigua que la marca de tiempo
de la transacción activa.
Tolerancia a fallas y recuperación
Tolerancia a fallas y recuperación … (2)
Un sistema distribuido es inherentemente más propenso a errores
El sistema será tolerante a fallos si el sistema cumple con sus especificaciones a pesar de la presencia de fallos
Se debe asegurar: Disponibilidad
Los recursos deben estar disponibles a pesar de que hay fallos
Atomicidad La consistencia de los recursos se debe asegurar a pesar
de fallos
Tolerancia a fallas y recuperación … (3)
Tolerancia a fallas y recuperación … (4)
Tolerancia a fallas y recuperación … (5)