Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Control Decon Curren CIA
Control Decon Curren CIA
CONCURRENCIA
EJECUCIONES CONCURRENTES
Se permite ejecutar concurrentemente varias transacciones en el
sistema. Las ventajas son:
• aumento de la utilización del procesador y del disco, conduciendo a
mejorar la productividad de la transacción una transacción puede estar
utilizando la CPU, mientras otras está leyendo desde o escribiendo a disco
• reducción del tiempo medio de respuesta de la transacciones: las
transacciones pequeñas no tienen necesidad de esperar detrás de las
grandes.
Esquemas de control de concurrencia - mecanismos para conseguir
aislamiento, es decir, para controlar la interacción entre la
transacciones concurrentes a la hora de impedir que destruyan la
consistencia de la base de datos
Principales situaciones en las que una transacción (correcta
individualmente) puede producir un resultado incorrecto al interferir
con otra transacción.
-Problema de la modificación perdida
-Problema de la actualización temporal
-Problema del resumen incorrecto.
Ejecuciones concurrentes (cont.)
El problema de la modificación temporal.
También se conoce como problema de la lectura sucia. Esta situación
ocurre cuando una transacción modifica un ítem y a continuación la
transacción falla por alguna razón. El ítem modificado es accedido por
otra transacción antes de que el cambio sea desecho y el ítem vuelva
a su valor original-
La actualización perdida
– T1 y T2 que acceden a los mismos datos, tienen sus
operaciones intercaladas de modo que hacen
incorrecto el valor de algún dato
Problemas potenciales provocados por
la concurrencia
• El resumen incorrecto
Técnicas de control de concurrenc ia
T1 T3
suma:=0;
leer_elemento(A);
suma:= suma+A;
…
leer_elemento(X); …
X:= X-N; … T3 lee X después de
escribir_elemento(X); restar N, pero lee Y antes
leer_elemento(X);
suma:= suma+X; de sumar N, así que el
leer_elemento(Y); resultado es un resumen
suma:= suma+Y; incorrecto (discrepancia
…
leer_elemento(Y); … de N)
Y:=Y+N; …
escribir_elemento(Y);
PLANIFICACIONES
• Planificaciones – secuencias que indican el orden
cronológico en el que se ejecutan las instrucciones de las
transacciones concurrentes
• una planificación para un conjunto de transacciones debe
constar de todas las instrucciones de estas transacciones
• debe preservar el orden en el que aparecen las
instrucciones en cada transacción individual.
SERIABILIDAD DE LOS PLANES
• La seriabilidad en cuanto a T1 T2
conflictos es demasiado Leer (A)
estricta
• Hay planificaciones no A=A-50
serializables respecto a Escribir (A)
conflictos y que no producen Leer (B)
problemas de consistencia
B=B-10
Escribir (B)
Leer (B)
B=B+50
Escribir (B)
Leer (A)
A=A+10
Escribir (A)
CONTROL DE CONCURRENCIA
OPTIMISTA
Se trabaja con la presunción de que los conflictos
entre los usuarios son improbables (aunque no
imposibles)y se permite a las transacciones
ejecutarse sin necesidad de bloquear recursos.
Pesimista:
Se bloquean los recursos cuando se requiera
acceder a ellos durante todo el tiempo que dure la
transacción.
BLOQUEOS BINARIOS
• Bloquear_para_lectura(X), Bloquear_para_escritura(X) y
• Desbloquear_ítem(X).
Transacciones
Base de datos
Transacción A Tupla
Bloqueo
Exclusivo
Transacción B DB
Tupla
Transacción A
Bloqueo
Compartido
Transacción B
Transacción C DB
Bloqueo
Exclusivo