You are on page 1of 37

CONTROL DE CONCURRENCIA

DOCENTE: ING. MSc. LUISA M. CO

PUNTOS A TRATAR:
 PLANIFICACIÓN SECUENCIAL VS. PLANIFICACIÓN
CONCURRENTE
PLANIFICACIÓN CONCURRENTE INCONSISTENTE
 PROBLEMAS TÍPICOS DE LA CONCURRENCIA
 TÉCNICAS DE CONTROL DE CONCURRENCIA
SECUENCIALIDAD EN CUANTO A CONFLICTOS

N DE TRANSACCIONES SECUENCIAL
(T2 SE EJECUTA DESPUÉS DE

PLANIFICACIÓN Nº 1
T1

T2

Leer(A)
A=1000
B=2000
A=A-50
A
B
Escribir (A)
T1
950
2050
Leer(B)
T2
855
2145
B=B+50
Escribir (B) Leer(A)
Commit
Temp=A*0,1
ESTADO FINAL =A+B=855+2145=30
A=A- Temp
Escribir (A)
Leer(B)
B=B+Temp
Escribir(B)
Commit

1 A B A=A.N DE TRANSACCIONES SECUENCIAL (T1 SE EJECUTA DESPUÉS DE PLANIFICACIÓN Nº 2 T2 T1 Leer(A) A=1000 B=2000 Temp=A*0.Temp T1 850 2150 Escribir (A) T2 900 2100 Leer(B) B=B+Temp Escribir(B) Leer(A) Commit A=A-50ESTADO FINAL =A+B=850+2150=30 Escribir (A) Leer(B) B=B+50 Escribir (B) Commit .

.EN BASE A LO PLANTEADO ANTERIORMENTE SE PUEDE CONCLUIR QUE: “PARA UN CONJUNTO DE n TRANSACIONES EXISTEN n! PLANIFICACIONES SECUENCIALES VÁLIDAS DISTINTAS”.

Temp t2 Escribir (A) B 950 2050 855 2145 ESTADO FINAL =A+B=855+2145=30 Leer(B) B=B+Temp t4 Escribir(B) Commit .1 T2 A=A.FICACIÓN CONCURRENTE EQUIVALENTE A LA PLANIFICA PLANIFICACIÓN Nº 3 T1 Leer(A) A=A-50 t1 Escribir (A) Leer(B) B=B+50 t3 Escribir (B) Commit T2 A=1000 B=2000 A Leer(A) T1 Temp=A*0.

Temp t2 T2 Escribir (A) Leer(B) B=2000 A B 950 2050 900 2100 Escribir(A) ESTADO FINAL =A+B=950+2100=3 Leer(B) t3 B=B+50 Escribir (B) B=B+Temp Commit Escribir(B) Commit t4 ESTADO INCONSISTENTE .1 T1 A=A.PLANIFICACIÓN CONCURRENTE INCONSISTENTE PLANIFICACIÓN Nº 4 T1 Leer(A) A=A-50 T2 t1 A=1000 Leer(A) Temp=A*0.

X=20. Y=10. . Sum=50 Leer(A) A Y X Sum A=A+2 T1 12 62 Escribir(A) T2 15 15 Sum=Sum+A Escribir(Sum) Leer(X) Commit X=X-5 Escribir (X) Leer(Y) NOTA: LA VARIABLE SUM DEBE Y=Y+5 Escribir(Y) REFLEJAR CORRECTAMENTE EL Commit INCREMENTO DE LA VARIABLE A.PLAN DE TRANSACCIONES (T2 SE EJECUTA DESPUÉS DE SECUENCIAL PLANIFICACIÓN Nº 5 T1 T2 Leer(Sum) A=10.

X=20. Y=10. Sum=50 A t1 Leer(X) X=X-5 Escribir (X) t2 Leer(Y) t3 Sum=Sum+A Escribir(Sum) Commit Y=Y+5 Escribir(Y) Commit t4 T1 T2 Y X 12 Sum 62 15 15 .FICACIÓN CONCURRENTE EQUIVALENTE A PLANIFICACI PLANIFICACIÓN Nº 6 T1 Leer(Sum) Leer(A) A=A+2 Escribir(A) T2 A=10.

Sum=50 Leer(A) A Y X Sum t1 Sum=Sum+A T1 12 60 Leer(A) A=A+10 T2 20 15 15 Escribir(A)t2 Leer(X) INCONSISTENCIA: X=X-5 Escribir(Sum) Escribir (X) t3 A=A+2 “SE SOBREESCRIBE EL Escribir(A) Leer(Y) VALOR DE A” Commit “LA VARIABLE SUM NO Y=Y+5 t4 REFLEJA EL Escribir(Y) INCREMENTO REAL DE LA Commit .PLANIFICACIÓN CONCURRENTE INCONSISTENTE PLANIFICACIÓN Nº 7 (PLANTEAMIENTO DIFERENTE A LA PLANIF. X=20. Nº 6) T1 T2 Leer(Sum) A=10. Y=10.

Sum=50 t1 A Leer(A) A=A+10 Escribir(A)t2 Leer(X) X=X-5 Escribir (X) Leer(A) Sum=Sum+ALeer(Y) t3 Escribir(sum) Y=Y+5 Commit Escribir(Y) Commit t4 T1 12 T2 22 Y X Sum 72 15 15 . X=20.PLANIFICACIÓN CONCURRENTE CORRECTA (CORRIGE INCONSISTENCIA PLANIFICACIÓN Nº7) PLANIFICACIÓN Nº 8 T2 T1 Leer(A) Leer(Sum) A=A+2 Escribir(A) A=10. Y=10.

PROBLEMAS TÍPICOS DE LA CONCURRENCIA EN BASE A LOS EJEMPLOS PLANTEADOS ANTERIORMENTE SE PUEDE CONCLUIR. QUE CUANDO SE EJECUTAN VARIAS TRANSACCIONES AL MISMO TIEMPO LA CONSISTENCIA DE LA BASE DE DATOS SE PUEDE DESTRUIR. ESTO CAUSA TRES(3) PROBLEMAS LOS CUALES SE NOMBRARÁN A  CONTINUACIÓN: ACTUALIZACIÓN PERDIDA . LECTURA SUCIA O FANTASMA. . ANÁLISIS INCONSISTENTE. A PESAR DE QUE CADA TRANSACCIÓN INDIVIDUAL SEA CORRECTA.

PROBLEMAS TÍPICOS DE LA CONCURRENC CTUALIZACIÓN PERDIDA (PLANIFICACIÓN T1 Leer(X) Leer(Y) T2 X=40 40 Y=5 5 Leer(X) 40 Leer(Y) X=X(2*Y) 5 30 X=Y Escribir( X) 5 30 Commit Escribir( X) 5 SE SOBREESCRIB E EL VALOR DE .

PUC=80. COMC=0. MVB=5000. PUA=50. B (30%) Y C (10%). MVC=3000 UVA=50 UVB=250 UVC=80. REQUERIMIENTO: SE DESEA CALCULAR UNA COMISIÓN EN BASE AL MONTO TOTAL VENDIDO DE LOS PRODUCTOS A (20%). PC=150 UNID. PUB=100. MVA=1000. COMB=0. .ANÁLISIS INCONSISTENTE Se tienen 3 productos PA=200 UNID. COMA=0. PB=420 UNID.

LISIS INCONSISTENTE (PLANIFICACIÓN N T1 T2 T3 Leer(A) Leer(COMA) Leer(MVA) Leer(COMB) t1 t2 Leer(MVC) Leer(COMC) t3 Leer(PUA) Leer (MVA) Leer(UVA) Leer(MVB) A=A-UVA =B-UVB Leer (MVC) MVA=MVA+(UVA*PUA) MVB=MVB+(UVB*PUB) scribir (B) COMA=MVA*0.3 t6 Leer(C) ommit COMC=MVC*0. Leer(UVC) Escribir(COMA) T2 LLEGA A UN C=C-UVC Escribir(COMB) ANÁLISIS MVC=MVC+(UVC*PUC) Escribir(COMC) INCONSISTENTE Escribir (C) Commit DEVOLVIENDO UN Escribir(MVC) RESULTADO Commit eer(MVB) eer(B) eer(PUB) eer(UVB) .1 Leer(PUC).2Escribir (A) t4 Escribir(MVA) t5 scribir(MVB) COMB=MVB*0.

MVA=1000. MVB=5000. PUC=80. COMA=0. COMB=0. COMC=0. C=150 UNID. PUB=100. PUA=50.ANÁLISIS INCONSISTENTE VALORES INCONSISTENTES A B 150 170 C 70 MVA MV B MV C COM COM A B 3500 940 0 200 1500 300 VALORES INCORRECTOS 300 00 COM C VALORES CONSISTENTES A B 150 170 C 70 MVA MV B MV C 3500 940 0 300 00 COM COM A B 700 9000 COM C 940 Se tienen 3 productos A=200 UNID. . MVC=3000 UVA=50 UVB=250 UVC=80. B=420 UNID.

3 Leer(PUC).1 Solución correcta C=C-UVC Escribir(COMA) al análisis MVC=MVC+(UVC*PUC) Escribir(COMB) inconsistente Escribir(COMC) Escribir (C) Escribir(MVC) Commit Commit eer(MVB) eer(B) eer(PUB) eer(UVB) Leer(COMA) Leer(COMB) Leer(COMC) .LISIS INCONSISTENTE (PLANIFICACIÓN N T1 T2 T3 Leer(A) Leer(MVA) t1 t3 Leer(MVC) t2 Leer(PUA) Leer(UVA) A=A-UVA =B-UVB Leer (MVA) MVA=MVA+(UVA*PUA) MVB=MVB+(UVB*PUB)Leer(MVB) Escribir (A) scribir (B) Leer (MVC) t4 Escribir(MVA) t6 scribir(MVB) COMA=MVA*0.2 t5 Leer(C) ommit COMB=MVB*0. Leer(UVC) COMC=MVC*0.

EL VALOR (X) X=2 NUNCA EXISTIÓ VALOR FALLA .PROBLEMAS TÍPICOS DE LA CONCURRENC RA SUCIA O FANTASMA (PLANIFACACIÓN T1 Leer(N) Leer(X) X=X-N T2 X=4 2 4 2 N=2 2 Escribir (X) Leer(X) Leer(N) X=X+(2 *N) 2 2 6 Escribir 6 T2 LEYÓ UN LLAR T1.

1 EXCLUSIVOS O DE ESCRITURA 2. ENTRE TALES TÉCNICAS SE 1. ENCUENTRAN: 2. ES NECESARIO UTILIZAR TÉCNICAS DE CONTROL DE CONCURRENCIA. .ÉCNICAS DE CONTROL DE CONCURRENCIA LAS PLANIFICACIONES CONCURRENTES PROVOCAN CONFLICTOS . 2. SECUENCIALIDAD EN CUANTO A CONFLICTOS.BLOQUEOS.2 COMPARTIDOS O DE LECTURA ONES PARA UTILIZAR CONCURRENCIA: 1.PRODUCTIVIDAD Y UTILIZACIÓN DE RECURSOS MEJORADAS (E/S Y USO DE CPU EN PARALELO) 2. POR LO TANTO.TIEMPO DE ESPERA REDUCIDO.

INTENTAN LEER UN MISMO VALOR X.TÉCNICAS DE CONTROL DE CONCURRENC ECUENCIALIDAD EN CUANTO A CONFLICT OBJETIVO: RESOLVER CONFLICTOS DE ESCRITURAS Y DE LECTO-ESCRITURAS SIMULTÁTEAS. PERTENECEN A DIFERENTES TRANSACCIONES. 3. 2. TENIENDO EN CUENTA QUE DOS OPERACIONES EN UNA PLANIFICACIÓN SON “CONFLICTIVAS” SI SATISFACEN LAS SIGUIENTES CONDICIONES: 1. UNA O LAS DOS OPERACIONES INTENTAN ESCRIBIR EL VALOR X DE .

Sin embargo. . pertenecientes a las transacciones Ti y Tj respectivamente (i#j). Si Ii e Ij se refieren a distintos elementos de datos se pueden intercambiar Ii e Ij (Leer/Escribir) sin afectar el resultado de cualquier instrucción de la planificación.TÉCNICAS DE CONTROL DE CONCURRENC ECUENCIALIDAD EN CUANTO A CONFLICT Considérese una planificación P en la cual hay dos instrucciones consecutivas Ii e Ij. si Ii e Ij se refieren al mismo elemento Q.

. T1 T2 Leer(A) Sólo en el caso en Escribir el cual Ii e Ij son (A) instrucciones leer Leer(A) no tiene Escribir Importancia el orden de (A) ejecución de las Leer(B) mismas.TÉCNICAS DE CONTROL DE CONCURRENC ECUENCIALIDAD EN CUANTO A CONFLICT CASO Nº 1: Ii = leer(Q). independientemente del orden. Escribir (B) NOTA: EN TODOS LOS EJEMPLOS SOLO SE HARA ÉNFASIS A Leer(B) LAS OPERACIONES LEER/ESCRIBIR. puesto que Ti y Tj leen el mismo valor de Q. El orden de Ii e Ij no importa. Ij = leer(Q).

TÉCNICAS DE CONTROL DE CONCURRENC ECUENCIALIDAD EN CUANTO A CONFLICT CASO Nº 2: Ii = leer(Q). Si Ij está antes que Ii. Ij = escribir(Q). entonces Ti no lee el valor de Q que escribe la instrucción Ij de Tj. T1 T2 Leer(A) NO Leer(A) Escribir (A) Leer(A) Escribir (A) Leer(B) . el orden de Ii e Ij es importante. entonces Ti lee el valor de Q escrito por Tj. Por tanto. Si Ii está antes que Ij.

T1 T2 Leer(A) A=A+2 t1 Leer(A) A=A+10 Escribir (A) t2 Commit Leer(A) A=A+2 t3 Escribir(A) Commit .TÉCNICAS DE CONTROL DE CONCURRENC ECUENCIALIDAD EN CUANTO A CONFLICT EJEMPLIFICACIÓN CASO Nº 2.

. T1 Leer(A) T2 Leer(A) Escribir (A) Leer(A) Escribir (A) ... NO .TÉCNICAS DE CONTROL DE CONCURRENC ECUENCIALIDAD EN CUANTO A CONFLICT CASO Nº 3:Ii = escribir(Q). Ij = leer(Q).. El orden de Ii e Ij es importante por razones similares a las del caso anterior.

TÉCNICAS DE CONTROL DE CONCURRENC ECUENCIALIDAD EN CUANTO A CONFLICT CASO Nº 4: Ii = escribir(Q). ya que únicamente se conserva en la base de datos la Leer(A) última de las dos instrucciones escribir. . Escribir (A) Leer(A) Escribir (A) Leer(B) Escribir (B) ÚLTIMO VALOR DE A REFLEJADO EN LA BD. el orden de dichas instrucciones no afecta ni a Ti ni a Tj. Sin embargo. Ij = escribir(Q). Puesto que ambas instrucciones son operaciones escribir. el valor que obtendrá la siguiente instrucción leer(Q) T1 de P sí se T2 ve afectado.

T1 T2 CONFLICTIVAS (NO SE PUEDE Leer(X) CAMBIAR EL ORDEN) Escribir (X) Leer(X) Escribir (X) Leer(Y) Escribir (Y) Leer(Y) INSTRUCCIONE S NO CONFLICTIVAS (SE PUEDE CAMBIAR EL ORDEN) .TÉCNICAS DE CONTROL DE CONCURRENC ECUENCIALIDAD EN CUANTO A CONFLICT De los cuatro (4) casos descritos anteriormente se deduce que: Ii e Ij están en conflicto si existen operaciones de diferentes transacciones sobre el INSTRUCCIONE mismo elemento de datos. y al menos una de esas S instrucciones es una operación ESCRIBIR.

ECUENCIALIDAD EN CUANTO A CONFLICT LANIFACACIÓN Nº 13 T1 Leer(X) X=X+20 Escribir (X) T2 X=40 40 60 60 Leer(X) X=X+10 Escribir (X) 60 70 70 Leer(Y) Y=Y+10 Escribir (Y) Y=5 5 15 15 Leer(Y) 15 .

.ECUENCIALIDAD EN CUANTO A CONFLICT LANIFACACIÓN Nº 14 T1 Leer(X) X=X+20 Escribir (X) T2 Leer(X) X=40 40 60 60 Y=5 60 Leer(Y) 5 X=X+10 Escribir (X) Y=Y+10 Escribir (Y) 70 70 15 15 Leer(Y) 15 Equivalent e en cuanto a conflictos a la Planificaci ón Nº 13.

.ECUENCIALIDAD EN CUANTO A CONFLICT LANIFACACIÓN Nº 15 T1 Leer(X) X=X+20 Escribir (X) T2 X=40 40 60 60 Y=5 Leer(X) 60 X=X+10 70 Leer(Y) Y=Y+10 Escribir (Y) 5 15 15 Escribir 70 (X) Leer(Y) 15 Equivalent e en cuanto a conflictos a la Planificaci ón Nº 13.

Por lo tanto.ECUENCIALIDAD EN CUANTO A CONFLICT De lo anterior se concluye que: Si una planificación P se puede transformar en otra P" por medio de una serie de intercambios de instrucciones no conflictivas. una planificación P es secuenciable en cuanto a conflictos si es equivalente en cuanto a conflictos a una planificación secuencial. Así. se dice que P y P" son equivalentes en cuanto a conflictos. ya que es equivalente en cuanto a conflictos a . la Planificación Nº 13 es secuenciable en cuanto a conflictos.

ECUENCIALIDAD EN CUANTO A CONFLICT LANIFACACIÓN Nº 16 T1 Leer(X) X=X+20 Escribir( X) Leer(Y) Y=Y+10 Escribir( Y) T2 X=40 40 60 60 Y=5 5 15 15 Leer(X) 60 X=X+10 70 Escribir 70 (X) Leer(Y) 15 .

Y SE PUEDEN UNIR LOS TIEMPOS 2 Y 4 QUE ES EL RESULTADO DE LA PLANIFICACIÓN N° 16 (YA QUE SE PUEDEN MOVER LAS INSTRUCCIONES NO CONFLICTIVAS). . EN LA PLANIFICACIÓN N° 13 ESCRIBIR(X) EN EL TIEMPO 1 DEBE ESTAR ANTES DEL LEER (X) EN EL TIEMPO 2. QUE LEEN Y ESCRIBEN EL MISMO ELEMENTO EL ORDEN NO PUEDE CAMBIAR. EL PRIMER ESCRIBIR(X) EN T1 EN LA PLANIFICACIÓN SECUENCIAL SE EJECUTA PRIMERO QUE EL PRIMER LEER(X) EN T2 AL IGUAL QUE EL PRIMER ESCRIBIR (Y) EN T1 Y PRIMER LEER (Y) EN T2. LA SECUENCIALIDAD SIGNIFICA QUE ESE ORDEN DEBE QUEDAR IGUAL EN LA CONCURRENTE Y EN LA SECUENCIAL. ES DECIR.ACLARATORIA EL TEOREMA DICE QUE CUANDO HAY INSTRUCCIONES CONFLICTIVAS. POR LO TANTO. ESCRIBIR (Y) EN EL TIEMPO 2 ESTÁ EN CONFLICTO CON LEER (Y) EN EL TIEMPO 3. ESOS BLOQUE NO SE PUEDEN MOVER DEBIDO A QUE EL ESCRIBIR (Y) EN T2 DEBE QUEDAR ANTES DEL LEER (Y) EN T1. EN LA PLANIFICACIÓN 19. COMO ESCRIBIR(X) EN EL TIEMPO 2 NO TIENE CONFLICTO CON LEER (Y) DEL TIEMPO 3 SE PUEDEN UNIR LOS BLOQUES DE INSTRUCCIONES DE LOS TIEMPOS 1 Y 3.

ECUENCIALIDAD EN CUANTO A CONFLICT IFACACIÓN Nº 17 (OTRO EJEMPLO DE PSEC) T1 T2 X=40 Leer(X) 40 X=X+1 50 0 Escribir( 50 X) Leer(X) 50 X=X+20 70 Leer(Y) Y=Y+20 Escribir( Y) Escribir 70 (X) Y=5 5 25 25 .

ECUENCIALIDAD EN CUANTO A CONFLICT LANIFACACIÓN Nº 18 T1 Leer(X) X=X+20 Escribir (X) Leer(Y) T2 Leer(X) X=X+10 Escribir( X) Leer(Y) Y=Y+20 Escribir( Y) X=40 40 50 50 Y=5 5 25 25 50 70 70 25 .

ECUENCIALIDAD EN CUANTO A CONFLICT FACACIÓN Nº 19 (NO SECUENCIABLE EN CUANTO A CONFLI T1 Leer(X) X=X-50 Escribir( X) T2 X=70 70 20 20 Leer(Y) Y=Y-10 Escribir (Y) Y=35 35 25 25 Leer(Y) Y=Y+50 Escribir (Y) 25 75 75 Leer(X) 20 PLANIFICACIÓ N NO SECUENCIABLE EN CUANTO A CONFLICTOS. PUESTO QUE ESCRIBIR (Y) EN T2 Y LEER (Y) EN T1 NO PUEDEN CAMBIAR EL ORDEN POR SER INSTRUCCIONE S .

GRACIAS POR SU ATENCIÓN ¡ EL ÉXITO SE LOGRA CON LA PERSEVERANCIA! .