Académique Documents
Professionnel Documents
Culture Documents
DEFINICIN DE CONCURRENCIA
Los procesos concurrentes pueden ser ejecutados realmente de forma simultnea, slo cuando cada
uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si slo existe un
procesador encargado de ejecutar todos los procesos, simulando la concurrencia, ocupndose de
forma alternada de uno y otro proceso a muy pequeos intervalos de tiempo. De esta manera simula
que se estn ejecutando a la vez.
Tambin se tiene que la misma estructura recin mencionada es utilizada en el diseo de los sistemas
operativos, los cuales se implementan como un conjunto de procesos.
Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros tambin en
ejecucin, el nmero de caminos de ejecucin puede ser extremadamente grande, resultando en un
comportamiento sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas
para el desarrollo de lenguajes de programacin y conceptos que permitan hacer la concurrencia ms
manejable.
TRANSACCIONES
Atomicidad: Se refiere al hecho de que una transaccin se trata como una unidad de operacin.
Consistencia: La consistencia de una transaccin es simplemente su correctitud; las transacciones no
violan las restricciones de integridad de una base de datos.
Aislamiento: Una transaccin en ejecucin no puede revelar sus resultados a otras transacciones
concurrentes antes de finalizar.
Permanencia: Es la propiedad de las transacciones que asegura que una vez que una transaccin
finaliza exitosamente, sus resultados son permanentes y no pueden ser borrados de la base de datos
por alguna falla posterior.
En esencia, lo que se persigue con el procesamiento de transacciones es, por una parte obtener una
transparencia adecuada de las acciones concurrentes a una base de datos y por otra, manejar
adecuadamente las fallas que se puedan presentar en una base de datos.
El procesamiento de transacciones es una de las tareas ms importantes dentro de un sistema de base
de datos, pero a la vez, es una de las ms difciles de manejar debido a diversos aspectos, tales como:
Confiabilidad: Puesto que los sistemas de base de datos en lnea no pueden fallar.
Disponibilidad: Debido a que los sistemas de base de datos en lnea deben estar actualizados
PROBLEMAS DE CONCURRENCIA
Actualizacin Perdida
Procedure Depositar(Cuenta, Monto)
begin
Start;
temp := Leer(Cuentas[Cuenta]);
temp := temp + Monto;
Escribir(Cuentas[Cuenta],temp);
Commit;
End
Anlisis Inconsistente
Procedure ImprimirSuma(Cuenta1, Cuenta2)
begin
Start;
temp1 := Leer(Cuentas[Cuenta1]);
output(temp1);
temp2 := Leer(Cuentas[Cuenta2]);
output(temp2);
temp1 := temp1 $+$ temp2;
output(temp1);
Commit;
end
Commit4
Commit3
Sincronizador o Serializador
Bloqueos
Bloqueos
Bloqueo Exclusivo o de Escritura
Transacciones
Base de datos
Transaccin A
Tupla
Bloqueo
Exclusivo
Transaccin B
DB
Bloqueos
Bloqueo Compartido o de Lectura
Transacciones
Base de datos
Tupla
Transaccin A
Bloqueo
Compartido
Transaccin B
Transaccin C
DB
Bloqueo
Exclusivo
Bloqueos
Matriz de Compatibilidad
Transaccin B
Transaccin A
No
No
Si
No
Si
Si
No
Si
Si
Si
X Bloqueo Exclusivo
S Bloqueo Compartido