domingo, 26 de junio de 2011

TECNICAS DE BLOQUEO (1) Bloqueos binarios

BLOQUEOS BINARIOS
         La forma más simple de bloquear es utilizar bloqueos binarios. basta con un vector de la siguiente forma: <referencia al dato bloqueado, booleano, referencia a la transacción que lo bloquea> donde el booleano es en sí el indicador del bloqueo.
Donde cada transacción debe solicitar el bloqueo de cada fragmento de datos A que vaya a utilizar antes de acceder a él (sea para leerlo o escribirlo), mediante una operación bloquear(A).
         Se caracterizan por tener dos valores posibles; bloqueado y desbloqueado. Cada elemento de la base de datos tiene un bloqueo distinto. El bloqueo señala si una transacción está operando sobre el elemento o está libre para que se pueda operar con él. De esta manera se impide que dos o más transacciones estén operando sobre un mismo elemento al mismo tiempo.
         Deberá liberar todos los bloqueos, mediante una operación desbloquear(A) de modo que otras tareas puedan tomarlos. Este sistema de bloqueos tiene una implementación muy simple, ya que solo requiere mantener una tabla que indica qué partes de los datos está bloqueada y por qué transacción.

Usando bloqueos binarios
         Cuando se usan bloqueos, una transacción ha de usarlos mediante las funciones bloquear_elemento y desbloquear_elemento, cumpliendo las siguientes reglas:



  1. Una transacción T debe emitir la operación bloquear_elemento(x) antes de que se realice cualquier operación leer_elemento(X) i escribir_elemento(x).
  2. Una transacción T debe emitir la operación desbloquear_elemento(X) después de haber completado todas las operaciones leer_elemento(X) y escribir_elemento(X) en T.
  3. Una transacción T no emitirá una operación bloquear_elemento(X) si ya posee el bloqueo del elemento X.
  4. Una transacción T no emitirá una operación desbloquear_elemento(X) a menos que ya posea el bloqueo del elemento X.
Referencia bibliograficas
http://es.scribd.com/doc/414370/CONTROL-DE-CONCURRENCIA
http://cnx.org/content/m18939/latest/
http://html.rincondelvago.com/bases-de-datos_24.html 

    1 comentario: