jueves, 25 de agosto de 2011


 CONCURRENCIA.
Los procesos son concurrentes si existen simultáneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asíncronos, lo cual significa que en ocasiones requieren cierta sincronización o cooperación.



Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes , es necesario que tengan alguna relación entre ellos como puede ser la cooperación para un determinado trabajo o el uso de información o recursos compartidos, por ejemplo: en un sistema de un procesador , la multiprogramación es una condición necesaria pero no suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse de forma totalmente independiente.
Por otro lado en un sistema de varios procesos se puede presentar la concurrencia siempre y cuando las actividades necesiten actuar entre sí ya sea para utilizar información en común o para cualquier otra cosa.

3.2.1.1 BENEFICIOS DE LA CONCURRENCIA
·        Trata de evitar los tiempos muertos de la UCP
·        Comparte y optimiza el uso de recursos
·        Permite la modularidad en las diferentes etapas del proceso
·        Acelera los cálculos
·        ·        Da mayor comodidad
3.2.1.2 DESVENTAJAS DE LA CONCURRENCIA
Inanición e interrupción de procesos
Ocurrencia de bloqueos
Que dos o más procesos requieran el mismo recurso (no apropiativo)
SERIABILIDAD
Consiste en asegurarse que los cambios siguen un orden adecuado.
Es la propiedad q garantiza que un plan de ejecución concurrente es equivalente al secuencial
.
Formas de planificar la seriabilidad:
1. por conflicto

2. por visión

· Por simplicidad solo se consideran las operaciones de lectura y escritura. No se consideran las operaciones de cálculo sobre los datos obtenidos.
Seriabilidad por conflicto
· Eliminar conflictos entre dos o mas transacciones
· Operaciones sobre los mismos datos en mas de una transacción.
· Tipos de operaciones:
* T1: lectura y T2: lectura
* No hay conflicto

* T1: lectura y T2: escritura ó T1: escritura y T2: lectura

* Conflicto: hay que respetar el orden

* T1: escritura y T2: escritura

* Conflicto: el orden afecta al valor final de la BD

· Se dice que hay conflicto cuando se consideran operaciones sobre los mismos datos en dos transacciones diferentes
· Un plan de ejecución se puede transformar en otro cambiando de orden las instrucciones y manteniendo la seriabilidad
· Todos estos planes son equivalentes al plan secuencial.
Seriabilidad por visión
· Se basa en definir una regla de equivalencia menos estricta que la de conflicto.
· Pero basándose solo en las operaciones de lectura y escritura.
· Se puede considerar como un refinamiento de la equivalencia por conflicto.
Pruebas de seriabilidad
· Hacer la prueba de seriabilidad después de ejecutar el plan es un poco tarde.
· El objetivo es desarrollar un protocolo de control de concurrencia que asegure la seriabilidad.
· No suele analizar el grafo de precedencia.
· Lo habitual es imponer restricciones que aseguren la seriabilidad del plan.
· Las pruebas sirven para ayudar a comprender los protocolos de control de concurrencia.
Teoría de la seriabilidad

Una calendarización (schedule), también llamado una historia, se define sobre un conjunto de transacciones T = { T1, T2, ..., Tn } y especifica un orden entrelazado de la ejecución de las operaciones de las transacciones. La calendarización puede ser especificada como un orden parcial sobre T.

Ejemplo 6.1. Considere las siguientes tres transacciones:
T1: Read( x )
T2: Write( x )
T3: Read( x )

Write( x )
Write( y )
Read( y )

Commit
Read( z )
Read( z )

Commit
Commit

Una calendarización de las acciones de las tres transacciones anteriores puede ser:

H1 = { W2(x), R1(x), R3(x), W1(x), C1, W2(y), R3(y), R2(z), C2, R3(z), C3 }

¨ Dos operaciones Oij(x) y Okl(x) (i y k no necesariamente distintos) que accesan el mismo dato de la base de datos x se dice que están en conflicto si al menos una de ellas es una escritura. De esta manera, las operaciones de lectura no tienen conflictos consigo mismas. Por tanto, existen dos tipos de conflictos read-write (o write-read) y write-write. Las dos operaciones en conflicto pueden pertenecer a la misma transacción o a transacciones diferentes. En el último caso, se dice que las transacciones tienen conflicto. De manera intuitiva, la existencia de un conflicto entre dos operaciones indica que su orden de ejecución es importante. El orden de dos operaciones de lectura es insignificante
.
vv

No hay comentarios:

Publicar un comentario