viernes, 28 de agosto de 2009

2.4 Herramientas.

2.4 PROCESAMIENTO DE TRANSACCIONES


Una gran cantidad de casos de inconsistencia se generan a partir de procesos que no fueron completados por el sistema; es decir, se actualizaron solamente algunos valores de todos los que participaron en una operación determinada.


Para solucionar este problema, las operaciones individuales se agrupan formando transacciones. Una transacción atómica es aquella en la que se registran las actualizaciones que derivan de todas las operaciones individuales que la conforman o de ninguna de ellas.


El control de las transacciones se realiza mediante procedimientos de bitácora. Esta manejara las operaciones individuales hasta este momento cuando se realizará la actualización en la BD.


CONTROL DE CONCURRENCIA


Cuando el sistema da soporte a múltiples usuarios en forma simultanea, la inconsistencia puede presentarse por factores adicionales:


ACTUALIZACIÓN PERDIDA.- Ocurre cuando la actualización de un usuario queda sobrescrita por la de otro cuando ambos accesan al sistema por un recurso común.


Un método comúnmente utilizado para evitar la actualización perdida es el bloqueo de registros o archivos. Este consiste en activar restricciones de acceso para los recursos que están siendo utilizados por un proceso en un momento determinado.


Con el objeto de no retardar la ejecución de determinados procesos que pretendan alcanzar recursos específicos, los bloqueos normalmente se establecen para los recursos en forma individual.


Esto puede traer como consecuencia:




  • INTERBLOQUEO (DEAD LOCK)

Se presenta cuando dos procesos que compitan por recursos comunes inician su ejecución tomando alguno de ellos y bloqueándolo en este momento.


El proceso requiere para finalizar su ejecución del recurso que esta bloqueado por el otro proceso presentándose de esta manera un bloqueo mutuo en el que ninguno de los procesos puede finalizar.


Una de las alternativas más comunes para minimizar el interbloqueo consiste en asignar una secuencia especifica de acceso a los recursos para aquellos procesos que los requieren en forma común, ejemplo:


PROCESOS RECURSOS


--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
A X Y


--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
B Y Y


--------------------------------------------------------------------------------


Lo anterior permitirá que otros procesos (por ejemplo C Y ) pueden participar puesto que el primer proceso no bloqueo a los recursos en forma global. Aunque la técnica anterior es eficiente en muchos casos, la mejor estrategia para tratar el interbloqueo es la conocida como bloqueo en dos fases.


Normalmente las políticas de los sistemas incluyen técnicas para detectar el interbloqueo y abortar a uno o todos los procesos involucrados para dar agilidad al sistema las formas más comunes de detecciones son:



  • Control de longitud de la cola de procesos.

  • Verificación de ciclos en las conexiones proceso tiene un recurso.

No hay comentarios:

Publicar un comentario