2.3.2 Mecanismos de Bloqueo

 

Bloqueo binario: Posee dos valores posibles, bloqueados y desbloqueados. Cada elemento de la Base de Datos tiene un bloqueo distinto. El bloqueo señala si una transacción está en ejecución sobre el elemento o está libre para que se pueda operar con él.

Bloqueos de lectura/escritura:Puede tener tres posibles posiciones: libre, bloqueado para lectura, y bloqueado para escritura. Así, más de una transacción puede tener un mismo elemento de datos bloqueado para lectura, pero sólo una para escritura.

Problemas del bloqueo en dos fases: interbloqueo y espera indefinida:El interbloqueo se produce cuando una transacción T1 está esperando a algún elemento que está bloqueado pr otra transacción T2. De esta forma, cada transacción está parada en espera a que otra transacción libere el recurso.

  • Exclusión mutua.- Cada elemento está bloqueado o está libre por una transacción.
  • Retención y espera.- una transacción que ya ha bloqueado elementos puede solicitar un elemento adicional, y esperar que se le asigne, sin habilitar ninguno de los elementos anteriores.
  • No apropiación.- La transacción sólo puede liberar un elemento que tenga asignado; no se lo puede quitar a otra transacción que tenga mayor prioridad.
  • Espera circular.- Existe una cadena circular, compuesta por dos transacciones o más, y otros tantos elementos intercalados, de maneta que cada proceso está esperando que se le asigne un elemento, y que a su vez está asignado al siguiente proceso de la cadena.
Bloqueo mutuo o deadlock.- Un proceso se encuentra en este estado si está esperando un suceso que no ocurrirá nunca. Si por ejemplo dos transacciones están cada una esperando a que la otra libere un ítem. Se puede evitar empleando