Está en la página 1de 10

CONTROL DE CONCURRENCIA

BLOQUEOS
• Los sistemas usan bloqueos para el control de
concurrencia
• Hay dos formas de bloqueos
1. Compartido. Si una transacción Ti obtiene un
bloqueo en modo compartido (denotado por C)
sobre el elemento Q, entonces Ti puede leer Q
pero no lo puede escribir.
2. Exclusivo. Si una transacción Ti obtiene un bloqueo
en modo exclusivo (denotado por X) sobre
el elemento Q, entonces Ti puede tanto leer como
escribir Q.
Protocolo de bloqueo
• Un protocolo de bloqueo es un conjunto de
reglas, las cuales indican el momento en el
que una transacción puede bloquear o
desbloquear un elemento de datos de la base
de datos
Matriz de compatibilidad de bloqueos
Protocolo de bloqueo de dos fases

• Un protocolo que asegura la secuencialidad es el


protocolo de bloqueo de dos fases. Este
protocolo exige que cada transacción realice las
peticiones de bloqueo y desbloqueo de dos fases:
• 1. Fase de crecimiento. Una transacción puede
• obtener bloqueos pero no puede liberarlos.
• 2. Fase de decrecimiento. Una transacción
puede liberar bloqueos pero no puede obtener
ningunonuevo.
Interbloqueos
• Dos o más transacciones pueden quedar
interbloqueadas si la una espera el dato de la
otra y viceversa
• En ese caso se puede prevenir el interbloqueo
Prevención de interbloqueos
• El esquema esperar-morir está basado en una técnica
sin expropiación. Cuando la transacción
Ti solicita un elemento de datos que posee
actualmente Tj, Ti puede esperar sólo si tiene una
marca temporal más pequeña que la de Tj (es decir, Ti
es anterior a Tj). En otro caso Ti se retrocede (muere).
Por ejemplo, supóngase que las transacciones T22, T23
y T24 tienen marcas temporales 5, 10 y 15
respectivamente. Si T22 solicita un elemento de datos
que posee T23 entonces T22 tiene que esperar. Si T24
solicita un elemento de datos que posee T23 entonces
T24 se retrocede.
Prevención de interbloqueos
• El esquema herir-esperar está basado en una
técnica
de expropiación. Es el opuesto del esquema
esperar-morir. Cuando la transacción Ti solicita un
elemento de datos que posee actualmente Tj, Ti
puede esperar sólo si tiene una marca temporal
mayor que la de Tj (es decir, Ti es más reciente
que Tj). En otro caso Tj se retrocede (Ti hiere a Tj).
Detección y recuperación de bloqueos
• Si no se pueden prevenir los interbloqueos, el
sistema debe ocuparse de ellos utilizando el
esquema de detección y recuperación de
interbloqueos. Para hacer esto, el sistema
construye un grafo de espera. Un sistema está en
estado de interbloqueo si y sólo si contiene un
ciclo en el grafo de espera. Cuando el algoritmo
de detección de interbloqueos determina que
existe un interbloqueo, el sistema debe
recuperarse del interbloqueo. Esto se lleva a cabo
retrocediendo una o más transacciones para
romper el interbloqueo.

También podría gustarte