Вы находитесь на странице: 1из 10

Control de Concurrencia

Actividad: Investigar

Los algoritmos de control de concurrencia, tales como: los basados en bloqueo, los
basados en estampas de tiempo y las pruebas de validacin optimistas.
Presentando sus resultados en clase y publicados en el blog Martes 13 de
Noviembre

CONTROL DE CONCURRENCIA
El control de concurrencia trata con los problemas de aislamiento yconsistencia del
procesamiento de transacciones.El control de concurrencia distribuido de una
DDBMS asegura que laconsistencia de la base de datos se mantiene en un
ambiente distribuidomultiusuario.Si las transacciones son internamente
consistentes, la manera ms simple delograr este objetivo es ejecutar cada
transaccin sola, una despus de otra.



Algoritmos de control de concurrencia

El criterio de clasificacin ms comn de los algoritmos de control deconcurrencia
es el tipo de primitiva de sincronizacin. Esto resulta en dos clases:
- Aquellos algoritmos que estn basados en acceso mutuamente exclusivo adatos
compartidos (candados o bloqueos).
- Aquellos que intentar ordenar la ejecucin de las transacciones de acuerdo a
un conjunto de reglas (protocolos).


Basados en estampas de tiempo
Los algoritmos basados en estampas de tiempo no pretenden mantener la
seriabilidad por exclusin mutua. En lugar de eso, ellos seleccionan un ordende
serializacin a prioridad y ejecutan las transacciones, de acuerdo a ellas. Para
establecer este ordenamiento, el administrador de transacciones le asigna a cada
transaccin T1 una estampa de tiempo nica t1 (T1) cuando sta inicia.Una
estampa de tiempo es un identificador simple que sirve para identificar cada
transaccin de manera nica.

A diferencia de los algoritmos basados en candados, los algoritmos basados en
marcas de tiempono pretenden mantener la seriabilidad por la exclusin mutua. En
su lugar eligen un orden
deserializacion en primera instancia y ejecutan las transacciones de acuerdo a ese o
rden. Enestos algoritmos cada transaccin lleva asociada una marca de tiempo.
Cada dato lleva asociadodos marcas de tiempo: uno de lectura y otro de escritura,
que reflejan la marca de tiempo de
latransaccin que hizo la ultima operacin de ese tipo sobre el dato. Para leer la
marca de tiempo de escritura del dato, debe ser menor que el de la transaccin, si
no aborta.Para escribir las marcas de tiempo de escritura y lectura del dato, deben
ser menores que el de latransaccin, sino se aborta. Estatcnica esta libre de
nterbloqueos pero puede darse que halla que repetir varias veces latransaccin. En
los sistemas distribuidos se puede usar un mecanismo como, los relojes deLamport
para asignar marcas de tiempo.El conjunto de algoritmos pesimistas esta formado
por algoritmos basados en candados,algoritmos basados en ordenamiento por
estampas de tiempo y algoritmos hbridos. Los algoritmosoptimistas se componen
por los algoritmos basados en candados y algoritmos basados enestampas de
tiempo.



ALGORITMOS DE CERRADURA O BASADOS EN CANDADOS
En los algoritmos basados en candados, las transacciones indican sus
intenciones solicitando candados al despachador (llamado el administrador de
candados) Los candados son de lectura , tambin llamados compartidos, o de
escritura , tambin llamados exclusivos.
En sistemas basados en candados, el despachador es un administrador de
candados . El administrador de transacciones le pasa al administrador de candados
la operacin sobre la base de datos (lectura o escritura) e informacin asociada,
como por ejemplo el elemento de datos que es accesado y el identificador de la
transaccin que est enviando la operacin a la base de datos. El administrador de
candados verifica si el elemento de datos que se quiere accesar ya ha sido
bloqueado por un candado. Si el candado solicitado es incompatible con el
candado con que el dato est bloqueado, entonces, la transaccin solicitante es
retrasada. De otra forma, el candado se define sobre el dato en el modo deseado y
la operacin a la base de datos es transferida al procesador de datos. El
administrador de transacciones es informado luego sobre el resultado de la
operacin. La terminacin de una transaccin libera todos los candados y se puede
iniciar otra transaccin que estaba esperando el acceso al mismo dato.
Se usan cerraduras o candados de lectura o escritura sobre los datos. Para
asegurar la secuencialidad se usa un protocolo de dos fases, en la fase
de crecimiento de la transaccin se establecen los cerrojos y en la fase
dedecrecimiento se liberan los cerrojos. Hay que tener en cuenta que se pueden
producir nterbloqueos. En los sistemas distribuidos el nodo que mantiene un dato
se encarga normalmente de gestionar los cerrojos sobre el mismo.
Candados de dos
fases :
En los candados de dos fases una transaccin le pone un candado a un
objeto antes de usarlo. Cuando un objeto es bloqueado con un candado por otra
transaccin, la transaccin solicitante debe esperar. Cuando una transaccin libera
un candado, ya no puede solicitar ms candados. En la primera fase solicita y
adquiere todos los candados sobre los elementos que va a utilizar y en la segunda
fase libera los candados obtenidos uno por
uno.
Puede suceder que si una transaccin aborta despus de liberar un candado,
otras transacciones que hayan accesado el mismo elemento de datos aborten
tambin provocando lo que se conoce como abortos en cascada. Para evitar lo
anterior, los despachadores para candados de dos fases implementan lo que se
conoce como loscandados estrictos de dos fases en los cuales se liberan todos los
candados juntos cuando la transaccin termina (con compromiso o aborta).
Candados de dos fases
centralizados:
En sistemas distribuidos puede que la administracin de los candados se
dedique a un solo nodo del sistema, por lo tanto, se tiene un despachador central
el cual recibe todas las solicitudes de candados del sistema. La comunicacin se
presenta entre el administrador de transacciones del nodo en donde se origina la
transaccin , el administrador de candados en el nodo central y los procesadores
de datos de todos los nodos participantes. Los nodos participantes son todos
aquellos en donde la operacin se va a llevar a cabo.



Figura E. Comunicacin en un administrador centralizado de candados de dos
fases.
La crtica ms fuerte a los algoritmos centralizados es el "cuello de
botella" que se forma alrededor del nodo central reduciendo los tiempos de
respuesta de todo el sistema. Su disponibilidad es reducida a cero cuando se
presentan fallas en el nodo central.
Candados de dos fases distribuidos:
En los candados de dos fases distribuidos se presentan despachadores en cada
nodo del sistema. Cada despachador maneja las solicitudes de candados para los
datos en ese nodo. Una transaccin puede leer cualquiera de las copias replicada
del elemento x, obteniendo un candado de lectura en cualquiera de las copias de
x. La escritura sobre x requiere que se obtengan candados para todas las copias de
x. Los mensajes de solicitud de candados se envan a todos los administradores de
candados que participan en el sistema. Las operaciones son pasadas a los
procesadores de datos por los administradores de candados. Los procesadores de
datos envan su mensaje de "fin de operacin" al administrador de transacciones
coordinador


Figura F. Comunicacin en candados de dos fases distribuidos


CONTROL OPTIMISTA DE LA CONCURRENCIA
Los algoritmos de control de concurrencia pesimistas asumen que los
conflictos entre transacciones son muy frecuentes y no permiten el acceso a un
dato si existe una transaccin conflictiva que accesa el mismo dato. As, la
ejecucin de cualquier operacin de una transaccin sigue la secuencia de fases:
validacin , lectura , cmputo y escritura (ver Figura G). Los algoritmos optimistas,
por otra parte, retrasan la fase de validacin justo antes de la fase de escritura (ver
Figura G). De esta manera, una operacin sometida a un despachador optimista
nunca es retrasada.
Las operaciones de lectura, cmputo y escritura de cada transaccin se
procesan libremente sin actualizar la base de datos corriente. Cada transaccin
inicialmente hace sus cambios en copias locales de los datos. La fase de validacin
consiste en verificar si esas actualizaciones conservan la consistencia de la base de
datos. Si la respuesta es positiva, los cambios se hacen globales (escritos en la base
de datos corriente). De otra manera, la transaccin es abortada y tiene que reiniciar
Lo que se hace es dejar ejecutar las transacciones y si al terminar se detecta
que ha habido conflicto se aborta y se reinicia la transaccin.
Cada transaccin tiene tres fases:.
< Fase de
lectura:
Cuerpo de la transaccin donde se copian datos desde la base de
datos, copias que pueden ser actualizadas pero sin copiar a la base de datos
< Fase de
validacin:
Se comprueba que no existan conflictos
< Fase de
escritura:
Si no existen conflictos se instalan lo cambios en la base de
datos

Conflictos entre
operaciones:
Dos operaciones estn en conflicto entre si cuando, operan sobre los
mismos datos, una de las operaciones es de escritura, o cada operacin pertenece
a diferentes transacciones.


Figura G. Fases de la ejecucin de una transaccin a) pesimista, b)
optimista


ALGORITMOS BASADOS EN MARCAS DE TIEMPO
A diferencia de los algoritmos basados en candados, los algoritmos basados en
marcas de tiempo no pretenden mantener la seriabilidad por la exclusin mutua.
En su lugar eligen un orden de serializacion en primera instancia y ejecutan las
transacciones de acuerdo a ese orden. En estos algoritmos cada transaccin
lleva asociada una marca de tiempo. Cada dato lleva asociado dos marcas de
tiempo: uno de lectura y otro de escritura, que reflejan la marca de tiempo de la
transaccin que hizo la ultima operacin de ese tipo sobre el
dato. Para leer la marca de tiempo de escritura del dato, debe
ser menor que el de la transaccin, si no aborta. Para escribir las marcas de tiempo
de escritura y lectura del dato, deben ser menores que el de la transaccin, sino se
aborta. Esta
tcnica esta libre de nterbloqueos pero puede darse que halla que repetir varias
veces la transaccin. En los sistemas distribuidos se puede usar un mecanismo
como, los relojes de Lamport para asignar marcas de tiempo.

CONTROL DE CONCURRENCIA EN SISTEMAS DE ARCHIVOS DISTRIBUIDOS
Hasta aqu se a hablado sobre el modelo transaccional haciendo hincapi
en lo referido a base de datos distribuidas. En adelante se desarrollara como se
emplea el control de concurrencia en sistemas distribuidos de archivos
Los sistemas de archivos que forman parte de una red de computadoras
tienen mltiples clientes de los que encargarse. Si dos o mas clientes,
accidentalmente o no, deciden acceder al mismo archivo al mismo tiempo pueden
producirse conflictos. La solucin utilizada es permitir a los usuarios el uso de
bloqueos sobre los archivos de trabajo. La idea es sencilla, mientras un usuario esta
trabajando sobre una parte de los datos, otros no podrn hacerlo de manera que
las distintas actualizaciones se efectuaran en forma sucesiva y ordenada sin
interferencias. Se utilizan dos
clases de bloqueos: Los bloqueos compartidos que por lo general se usan para
lectura , y los bloqueos exclusivos que normalmente se usan para
escritura. La granularidad del bloqueo es
otra consideracin importante. Es posible bloquear archivos enteros, pero tambin
es posible bloquear archivos enteros o subrboles, cuanto menor sea la unidad
lgica bloqueada mayor ser la concurrencia admisible. El concepto de bloqueo
introduce varios problemas de contrapartida. Primero, si un cliente necesita acceder
a varios archivos, como ocurre de forma comn cuando se efectan transferencias
de dinero en aplicaciones bancarias, hay una posibilidad de abrazo mortal.
Abrazos mortales:
Principalmente, existen dos mtodos para manejar el problema de los
abrazos mortales. Podemos usar algn protocolo para asegurar que el sistema
nunca entrar en un estado de abrazo mortal. Alternativamente, podemos permitir
que el sistema entre en un estado de abrazo mortal y despus recuperarnos. El
recuperarse de un abrazo mortal puede ser muy difcil y muy caro. Por ello,
primeramente consideraremos los mtodos para asegurar que no ocurran los
abrazos mortales. Comnmente, existen dos mtodos. El de PREVENCIN de
abrazos mortales y el de EVASIN de abrazos mortales. Un conjunto de procesos
est en un abrazo mortal cuando todos los procesos en ese conjunto estn
esperando un evento que slo puede ser causado por otro proceso en el conjunto.
Los eventos a los cuales nos estamos refiriendo son
concernientes con la asignacin y liberacin de recursos principalmente. Sin
embargo, pueden llevar a la
existencia de abrazos mortales.
Para ejemplificar un estado de abrazo mortal, se considerara un sistema con
tres unidades de disco. Supongamos que existen tres procesos, cada uno de ellos
tiene asignada una de las unidades de disco. Si ahora cada proceso pide otra
unidad de disco, los tres procesos se encuentran ahora en un estado de abrazo
mortal. Cada uno esta esperando el evento "unidad de disco liberada", lo cual solo
puede ser causada por alguno de los otros procesos en espera. Este ejemplo ilustra
un abrazo mortal involucrando procesos compitiendo por el mismo tipo de
recurso. Los abrazos mortales pueden tambin involucrar diferentes tipos de
recursos. Por ejemplo, consideremos un sistema con una impresora y una unidad
de disco. Supongamos que el proceso A tiene asignada la unidad de disco y que el
proceso B tiene asignada la impresora. Ahora, si A pide la impresora y B pide la
unidad de disco, ocurre un abrazo mortal.




Ejemplo de un abrazo mortal.
Es obvio que un abrazo mortal es una condicin indeseable. En un abrazo mortal,
los procesos nunca terminan de ejecutarse y los recursos del sistema estn
amarrados, evitando que otros procesos puedan siquiera empezar.
Condiciones Necesarias . Una situacin de abrazo mortal puede surgir s y solo s
las siguientes cuatro condiciones ocurren simultneamente en un sistema:
Exclusin Mutua. Cada recurso se asigna por lo regular exactamente a un proceso
o bien esta disponible. Al menos un recurso es mantenido en un modo no-
compartible;
esto es, slo un proceso a la vez puede usar el recurso. Si otro proceso solicita ese
recurso, tiene que ser retardado hasta que el recurso haya sido liberado.
Retener y Esperar. Los procesos que regularmente contienen recursos otorgados
antes pueden solicitar nuevos recursos. Debe existir un proceso que retenga al
menos un recurso y est esperando para adquirir recursos adicionales que estn
siendo retenidos por otros procesos.
No existe el derecho de desasignar : Los recursos previamente otorgados no
pueden extraerse por la fuerza de un proceso. Deben ser liberados explcitamente
por el proceso que los contiene. Los recursos no pueden ser desasignados ; esto
es, un recurso slo puede ser liberado voluntariamente por el proceso que lo
retiene, despus de que el proceso ha terminado su tarea.
Espera Circular. Debe haber una cadena de dos o ms procesos, cada uno de los
cuales est esperando un recurso contenido en el siguiente miembro de la cadena.
Debe existir un conjunto {p0, p1, ...,pn} de procesos en espera tal que p0 est
esperando por un recurso que est siendo retenido por p1, p1 est esperando por
un recurso que est siendo retenido por p2, ..., pn-1 est esperando por un recurso
que est siendo retenido por pn y pn est esperando por un recurso que est
siendo retenido por p0.

Se remarca que las cuatro condiciones deben de cumplirse para que
pueda ocurrir un abrazo mortal. La condicin de espera circular implica la
condicin de retener y esperar, de tal manera que las cuatro condiciones no son
totalmente independientes. Sin embargo, puede ser til el considerar cada
condicin por separado.
Una forma de modelar estas condiciones es usando un grafo de recursos: los
crculos representan procesos, los cuadrados recursos. Una arista desde un recurso
a un proceso indica que el recurso ha sido asignado al proceso. Una arista desde
un proceso a un recurso indica que el proceso ha solicitado el recurso, y est
bloqueado esperndolo. Entonces, si hacemos el grafo con todos lo procesos y
todos los recursos del sistema y encontramos un ciclo, los procesos en el ciclo
estn bajo bloqueo mutuo.