ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Concurencia


Enviado por   •  18 de Agosto de 2013  •  14.426 Palabras (58 Páginas)  •  275 Visitas

Página 1 de 58

UNIDAD III

CONCURRENCIA

3.1 DEFINICION

La concurrencia es un fenómeno que se presenta en varios contextos. Uno de ellos es la multiprogramación ya que el tiempo del procesador es compartido dinámicamente por varios procesos. Otro caso son las aplicaciones estructuradas, donde la programación estructurada se implementa como un conjunto de procesos concurrentes. Y por ultimo se tiene que la misma estructuración recién mencionada es utilizada en el diseño de los sistemas operativos, los cuales se implementan como un conjunto de procesos.

El termino concurrencia se refiere al hecho de que los DBMS(SISTEMAS DE ADMINISTRACION DE BD)permiten que muchas transacciones puedan accesar a una misma base de datos a la vez..

En un sistema de estos se necesitan algún tipo de mecanismos de control de concurrencia para asegurar que las transacciones concurrentes no interfieran entre si.

En sistemas multiusuario, es necesario un mecanismo para controlar la concurrencia. Se pueden producir inconsistencias importantes derivadas del acceso concurrente, como por ejemplo, el problema de la operación perdida.

En un sistema de biblioteca, existe un campo que almacena el numero de copias disponibles para préstamo. Este campo debe incrementarse en uno cada vez que se devuelve un ejemplar del libro y disminuirse en uno cada vez que se presta un ejemplar.

Si existen varias bibliotecarias, una de ellas inicia la transacción t1, leyendo la variable numero ejemplares (n), cuyo contenido se guarda en la variable n1. Tiempo después, otra bibliotecaria podría leer la misma variable incrementándola en una unidad , transacción t2. Después, la transacción t1 añade una unidad a esa variable y la actualiza, el resultado es erróneo, ya que la variable N debería haber aumentado en 2 unidades, y solo ha aumentado en una. La transacción t2 se ha perdido.

Consiste en controlar la interacción entre los usuarios concurrentes para no afectar la inconsistencia de los datos.

Cuando se trabajaba con manejadores de archivos y se estaba actualizando un determinado registro, ningún otro usuario podía actualizar el mismo archivo; aunque el registro a trabajar fuera otro. Con esta característica, ya más de un usuario puede accesar a un mismo registro y actualizarlo.

El objetivo fundamental del control de concurrencia de base de datos es garantizar que la ejecución concurrente de transacciones no resulta en una perdida de consistencia de la base de datos.

La concurrencia se da cuando dos transacciones están interconectadas, lo que es común en un entorno multiusuario. Así pues en un entorno de multiprogramación es posible ejecutar varias transacciones de manera concurrente.

Ejemplo

3.2 PROBLEMAS QUE SE PRESENTAN

1) Modificación perdida:

En T1 (Tiempo 1), arranca TA (Transacción A), leen dato “X”

En T2 (Tiempo 2), arranca TB (Transacción B), leen dato “X”  datos = 100

En T3 (Tiempo 3), modifica TA (Transacción A), dato “X” (aumenta el 100%)  datos = 200

En T4 (Tiempo 4), modifica TB, dato “X” (en base a lo que leyó en T2) (aumenta el 50%)  150 datos final.

2)Dependencia no COMMITADA

Permitir leer un dato sin esperar que una transacción que la estaba modificando haga su commit.

3) Análisis consistente:

TA (Transacción A): suma saldos

TB (Transacción B): transfiere $10 de cuenta 1 a cuenta3

CUENTA 1 50

CUENTA 2 40

CUENTA 3 30

TA CUENTA 1 = $50

T1 SALDO = $50

__________________________________

TA CUENTA 2 = $40

T2 SALDO 2 = $90

__________________________________

TB CUENTA 1 = $50

T3 CUENTA 1 = $50 - $10

CUENTA 1 = $40

__________________________________

TB CUENTA 3 = $30 + $10

T4 CUENTA 3 = $40

___________________________________

TA CUENTA 3 = $40

T5 SALDO = $130 (EN REALIDAD ES $ 120)

Para eliminar o disminuir estos 3 problemas se utilizan protocolos:

a) Bloqueos

1) S  compartido (para lecturas)

2) X  exclusivo, este puede ser por páginas/ tabla/ registros

TB/ TA NO BLOQUEO S X

NO BLOQUEO ACCEDE A OBJETO ACCEDE A OBJETO NO ACCEDE

S ACCEDE A OBJETO ACCEDE A OBJETO NO ACCEDE

X NO ACCEDE NO ACCEDE NO ACCEDE

Problemas con los bloqueos exclusivos: puede haber un bloqueo mortal o deadlock.

TA TB

I J

J I

Recursos

Políticas para terminar con el bloqueo mortal:

 Matar los dos

 Darles un tiempo de vida

 Matar a la más vieja

 Matar al azar

Existen tres formas en que una transacción, aunque sea correcta por si misma,

...

Descargar como (para miembros actualizados)  txt (81.8 Kb)  
Leer 57 páginas más »
Disponible sólo en Clubensayos.com