Sincronización, Transacción y Concurrencia de SD
Presentado por:
- Robinson Rios Fernandez
- Jose Luis Tangarife
- Jorge Mauricio Gualtero
- Jhon Alejandro Marín
Sincronización
Reloj de un ordenador
Algoritmos de sincronización
Algoritmo de Cristian
Algoritmo de Berkeley
Algoritmo distribuido en relojes fisicos
Relojes Lógicos
- Lamport
Lamport
Exclusión Mutua
Algoritmo centralizado
Algoritmos por marca de tiempo
Algoritmos Token-Ring
Elección de coordinador
Algoritmo para anillos
Transacción
Las transacciones (o transacciones atómicas) se usan desde hace tiempo en el mundo de las bases de datos para controlar los accesos concurrentes.
¿Que son las transacciones?
Las transacciones son un mecanismo que ayuda a simplificar la construcción de sistemas confiables a través de procesos que proveen soporte uniforme para invocar y sincronizar operaciones
Operaciones de la transacción
· Operaciones de compartición de datos.
· Aseguramiento de la seriabilidad de las transacciones con otras.
· Atomicidad en su comportamiento.
· Recuperación de fallas provocadas en red y nodos.
Protocolo utilizado
El primer protocolo propuesto fue el compromiso en dos fases (2PC, 2 phase commit)
• El coordinador registra la transacción en el log y los participantes.
• El coordinador envía un mensaje prepare a los participantes.
• Cada participante añade su voto al log (sí o no) y fuerza su log a disco.
• A continuación cada participante responde al coordinador con su voto.
¿Como funciona?
Caracteristicas de 2PC
• Es un escenario de gestión de procesos de negocio, típicamente implementado con BPEL y servicios web (WS).
• WS para control de transacciones: – WS-Coordination. – WS-Transaction.
• El servicio de viajes realiza reservas reales sobre los otros servicios y, en el caso de ser descartadas, se aplica una compensación al hacer el rollback.
Desventajas de las transacciones
1. Es mas difícil controlar y garantizar la atomicidad en caso de falla, ya que puede haber fallos de los participantes.
2. La detección de deadlocks es muy compleja.
3. Cuando un nodo se cae, las transacciones iniciadas por el que estén ejecutándose en otros nodos quedan huérfanas, y es necesario tener un algoritmo que se encargue de matar estas transacciones huérfanas.

Tipos de transacciones
¿Qué es concurrencia?
Cuando existen varios procesos en una única maquina decimos que se están ejecutando concurrentemente
Problemas del Control de Concurrencia
-Equivalencia Secuencial
-Operaciones Conflictivas
-Problemas causados por el aborto de las transacciones
Mecanismos de Control de Concurrencia
- Control de Concurrencia a través de bloqueos
- Control Optimista de la Concurrencia
- Ordenación por marcas de tiempo
Equivalencia Secuencial
a.Todos los accesos de una transacción a un objeto particular (operaciones conflictivas) deben secuenciarse con respecto a su acceso por otras transacciones
b. Todos los pares de operaciones conflictivas de dos transacciones se deben ejecutar en el mismo orden sobre los objetos a los que ambas acceden.
Operaciones Conflictivas
•2 operaciones son conflictivas cuando sus efectos combinados dependen del orden en el cual fueron ejecutadas.
•Se consideran conflictivas las siguientes operaciones:
read read ----> no conflictivas
read write ----> conflictivas
write write ----> conflictivas
• Cuando dos o más transacciones son conflictivas es necesario su serialización para asegurar la consistencia de los datos después de su ejecución.
Problemas causados por el aborto de las transacciones
•Las transacciones pueden abortar, ante esta situación surgen otros problemas: lecturas sucias y escrituras prematuras
•Cada vez que una transacción necesita leer o escribir en un objeto, solicita un “lock” sobre el mismo hasta que la transacción culmine exitosamente (commit). Cualquier otra transacción que desee hacer alguna operación sobre dicho objeto tendrá que esperar hasta que el mismo sea desbloqueado.
•Existen dos fases:
- Adquirir bloqueos (Fase de crecimiento)
- Liberar bloqueos (Fase de Acortamiento)
Control de Concurrencia
•La porción de objetos a la que se debe secuenciar el acceso debe ser tan pequeño como sea posible.
•Problema de los lectores y escritores
•Nivel de granularidad
•Fineza del grano
•Nivel del ítem, página, archivo o base de datos
Algoritmo de locking o bloqueo
Bloqueos
•Bloqueos de dos versiones: La activación de bloqueos exclusivos se retrasa hasta que una transacción se consuma
•Bloqueos jerárquicos: Bloqueos de granularidad mixta
Muchas gracias
Sincronización, Transacción y Concurrencia de SD
By Alejo Marín
Sincronización, Transacción y Concurrencia de SD
Sincronización, Transacción y Concurrencia de SD
- 404