Este documento describe los algoritmos de control de concurrencia en bases de datos. Explica que la concurrencia ocurre cuando múltiples transacciones acceden a una base de datos al mismo tiempo y puede causar problemas si no se controla adecuadamente. Describe dos algoritmos principales para controlar la concurrencia: bloqueos y protocolos de dos fases. El algoritmo de bloqueo de dos fases usa bloqueos de lectura y escritura para prevenir conflictos entre operaciones concurrentes de transacciones.
ESTRUCTURA DE DATOS: MEMORIA ESTATICA
La memoria estática es la que no se puede modificar o ejecutar en momento de ejecución. También se debe conocer con anticipo el tamaño de la estructura que está en ejecución.
ITESZ
Los Diagramas de Flujo de Datos (DFD) es uno de los instrumento que se utilizan para el levantamiento de los requisitos funcionales de un sistema de información.
ESTRUCTURA DE DATOS: MEMORIA ESTATICA
La memoria estática es la que no se puede modificar o ejecutar en momento de ejecución. También se debe conocer con anticipo el tamaño de la estructura que está en ejecución.
ITESZ
Los Diagramas de Flujo de Datos (DFD) es uno de los instrumento que se utilizan para el levantamiento de los requisitos funcionales de un sistema de información.
Tovi Support - Care and Support by Means of TimebankingPauliina Shilongo
Time Heals (Aika parantaa) is a network that offers Tovi Support – support and care by means of timebanking. Tovi Support does not use conventional money, rather the currency used in time banks – time. In Finnish time banks the name of the currency is tovi (moment). One hour of any work equals one tovi.
Criterios de la primera y segunda derivadaYoverOlivares
Criterios de la primera derivada.
Criterios de la segunda derivada.
Función creciente y decreciente.
Puntos máximos y mínimos.
Puntos de inflexión.
3 Ejemplos para graficar funciones utilizando los criterios de la primera y segunda derivada.
libro conabilidad financiera, 5ta edicion.pdfMiriamAquino27
LIBRO DE CONTABILIDAD FINANCIERA, ESTE TE AYUDARA PARA EL AVANCE DE TU CARRERA EN LA CONTABILIDAD FINANCIERA.
SI ERES INGENIERO EN GESTION ESTE LIBRO TE AYUDARA A COMPRENDER MEJOR EL FUNCIONAMIENTO DE LA CONTABLIDAD FINANCIERA, EN AREAS ADMINISTRATIVAS ENLA CARREARA DE INGENERIA EN GESTION EMPRESARIAL, ESTE LIBRO FUE UTILIZADO PARA ALUMNOS DE SEGUNDO SEMESTRE
Se denomina motor de corriente alterna a aquellos motores eléctricos que funcionan con alimentación eléctrica en corriente alterna. Un motor es una máquina motriz, esto es, un aparato que convierte una forma determinada de energía en energía mecánica de rotación o par.
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Control de concurrencias investigación
1. S.E.P. TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO
de Tuxtepec
“ALGORITMOS DE CONTROL DE
CONCURRENCIA”.
CARRERA:
INGENIERA INFORMÁTICA
PRESENTA:
YOEL DOMINGUEZ GARCIA
CATEDRÁTICO:
VICTOR MANUEL EVARISTO SALINAS
2. CONTENIDO
INTRODUCCIÓN.......................................................................................................................2
¿QUE ES LA CONCURRENCIA?.............................................................................................3
TRANSACCIONES....................................................................................................................3
PROBLEMAS DE CONCURRENCIA........................................................................................4
CONTROL DE CONCURRENCIAS EN BASES DE DATOS...................................................5
BLOQUEOS...............................................................................................................................6
BLOQUEO DE DOS FASES .....................................................................................................7
CONCLUSIÓN ...........................................................................................................................9
SITIOS WEB CONSULTADOS...............................................................................................10
3. INTRODUCCIÓN
La concurrencia es cuando los sistemas administradores de bases de datos permiten
que muchas transacciones accedan a una misma base de datos a la vez. El control
de concurrencia trata con los problemas de aislamiento y consistencia del
procesamiento de transacciones. El control de concurrencia distribuido de una
DDBMS asegura que la consistencia de la base de datos se mantiene en un ambiente
distribuido multiusuario.
Los Algoritmos de control de concurrencia son los encargados de sincronizar la
ejecución de transacciones concurrentes bajo el criterio de correctitud. La
consistencia entre transacciones se garantiza mediante el aislamiento de las mismas.
Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea,
sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la
concurrencia es simulada si sólo existe un procesador encargado de ejecutar todos
los procesos, simulando la concurrencia, ocupándose de forma alternada de uno y
otro proceso a muy pequeños intervalos de tiempo. De esta manera simula que se
están ejecutando a la vez.
4. ¿QUE ES LA CONCURRENCIA?
Sabemos que la concurrencia se refiere a la capacidad de los Sistemas de
Administración de Base de Datos, de permitir que múltiples procesos sean ejecutados
al mismo tiempo, y que también puedan interactuar entre sí.
La concurrencia es simulada si sólo existe un procesador encargado de ejecutar todos
los procesos, simulando la concurrencia, ocupándose de forma alternada de uno y
otro proceso a muy pequeños intervalos de tiempo. De esta manera simula que se
están ejecutando a la vez.
Algunos casos de concurrencia, pueden ser:
Las aplicaciones estructuradas, donde la programación estructurada se
implementa como un conjunto de procesos concurrentes.
También se tiene que la misma estructura recién mencionada es utilizada en
el diseño 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
también en ejecución, el número de caminos de ejecución puede ser extremadamente
grande, resultando en un comportamiento sumamente complejo.
TRANSACCIONES
Los sistemas que tratan el problema de control de concurrencia permiten que sus
usuarios asuman que cada una de sus aplicaciones se ejecuta atómicamente, como
si no existieran otras aplicaciones ejecutándose concurrentemente. Esta abstracción
de una ejecución atómica y confiable de una aplicación se conoce como una
transacción.
5. Un algoritmo de control de concurrencia asegura que las transacciones se ejecuten
atómicamente controlando la intercalación de transacciones concurrentes, para dar la
ilusión de que las transacciones se ejecutan seriamente, una después de la otra, sin
ninguna intercalación. Las ejecuciones intercaladas cuyos efectos son los mismos
que las ejecuciones seriales son denominadas serializarles y son correctos ya que
soportan la ilusión de la atomicidad de las transacciones.
El concepto principal es el de transacción. Informalmente, una transacción es la
ejecución de ciertas instrucciones que acceden a una base de datos compartida. El
objetivo del control de concurrencia y recuperación es asegurar que dichas
transacciones se ejecuten atómicamente, es decir:
Cada transacción accede a información compartida sin interferir con otras
transacciones, y si una transacción termina normalmente, todos sus efectos son
permanentes, en caso contrario no tiene afecto alguno.
Una base de datos está en un estado consistente si obedece todas las restricciones
de integridad (significa que cuando un registro en una tabla haga referencia a un
registro en otra tabla, el registro correspondientes debe existir) definidas sobre ella.
Los cambios de estado ocurren debido a actualizaciones, inserciones y supresiones
de información. Por supuesto, se quiere asegurar que la base de datos nunca entre
en un estado de inconsistencia.
PROBLEMAS DE CONCURRENCIA
Existen tres formas en las que una transacción, aunque sea correcta por sí misma,
puede producir una respuesta incorrecta si alguna otra transacción interfiere con ella
en alguna forma.
Consideremos que la transacción que interfiere también puede ser correcta; lo que
produce el resultado incorrecto general es el intercalado sin control entre las
operaciones de las dos transacciones correctas.
6. Los tres problemas son:
El problema de la Actualización Perdida
El problema de la Dependencia No Confirmada
El problema del Análisis Inconsistente
CONTROL DE CONCURRENCIAS EN BASES DE DATOS
El control de transacciones concurrentes en una base de datos brinda un eficiente
desempeño del Sistema de Administración de Base de Datos, puesto que permite
controlar la ejecución de transacciones que operan en paralelo, accediendo a
información compartida y, por lo tanto, interfiriendo potencialmente unas con otras.
El objetivo de los métodos de control de concurrencia es garantizar la no inferencia o
la propiedad de aislamiento de transacciones que se ejecutan de manera concurrente.
Los distintos objetivos atacan el problema garantizando que las transacciones se
ejecuten en un plan que sea serializarle, es decir, que el resultado sea equivalente a
el resultante de ejecutar un plan en serie.
El criterio de clasificación más común de los algoritmos de control de concurrencia es
el tipo de primitiva de sincronización. Esto resulta en dos clases: aquellos algoritmos
que están basados en acceso mutuamente exclusivo a datos compartidos (bloqueos)
y aquellos que intentar ordenar la ejecución de las transacciones de acuerdo a un
conjunto de reglas (protocolos). Sin embargo, esas primitivas se pueden usar en
algoritmos con dos puntos de vista diferentes: el punto de vista pesimista que
considera que muchas transacciones tienen conflictos con otras, o el punto de vista
optimista que supone que no se presentan muchos conflictos entre transacciones.
Los algoritmos pesimistas sincronizan la ejecución concurrente de las transacciones
en su etapa inicial de su ciclo de ejecución. Los algoritmos optimistas retrasan la
sincronización de las transacciones hasta su terminación. Ambos grupos de métodos,
7. pesimistas y optimistas, consisten de algoritmos basados en bloqueos y algoritmos
basados en marcas de tiempo, entre otros.
Los protocolos basados en bloqueos son los más utilizados por los DBMS
comerciales. Los demás tienen un alcance más teórico que práctico.
BLOQUEOS
Un bloqueo en general es cuando una acción que debe ser realizada está esperando
a un evento. Para manejar los bloqueos hay distintos acercamientos: prevención,
detección, y recuperación. También es necesario considerar factores como que hay
sistemas en los que permitir un bloqueo es inaceptable y catastrófico, y sistemas en
los que la detección del bloqueo es demasiado costosa.
En el caso específico de las bases de datos distribuidas usar bloqueo de recursos,
peticiones para probar, establecer o liberar bloqueos requiere mensajes entre los
manejadores de transacciones y el calendarizado. Para esto existen dos formas
básicas:
Autónoma: cada nodo es responsable por sus propios bloqueos de recursos.
Una transacción sobre un elemento con n replicas requiere 5n mensajes
Petición del recurso
Aprobación de la petición
Mensaje de la transacción
Reconocimientos de transacción exitosa
Peticiones de liberación de recursos
Copia Primaria: un nodo primario es responsable para todos los bloqueos de
recursos
8. Una transacción sobre un elemento con n copias requiere n mensajes
Una petición del recurso
Una aprobación de la petición
Podemos definir que dos operaciones entran en conflicto que debe ser resuelto si
ambas acceden a la misma data, y una de ellas es de escritura y si fueron realizadas
por transacciones distintas.
BLOQUEO DE DOS FASES
El algoritmo 2PL utiliza bloqueos de lectura y escritura para prevenir conflictos entre
operaciones.
Consiste en los siguientes pasos para una transacción T:
Obtiene bloqueo de lectura para un elemento L (bloqueo compartido)
Obtiene bloqueo de escritura para un elemento E (bloqueo exclusivo)
Lee el elemento L
Escribe en el elemento E
Libera el bloqueo de L
Libera el bloqueo de E
Las reglas básicas para manejar los bloqueos son: transacciones distintas no pueden
tener acceso simultáneamente a un elemento (lectura-escritura o escritura-escritura),
y una vez se libere un bloqueo no se puede pedir otro, es decir, los bloqueos de la
transacción crecerán mientras no libere ninguno y luego de liberar alguno solo puede
liberar los demás.
9. Ejemplos del algoritmo 2PL son:
La básica en la que se sigue el esquema previamente explicado con la variante
que el bloqueo de escritura se pide para todas las copias del elemento.
2PL de copia primaria: en vez de pedir bloqueo para cada copia del elemento
de escritura se le pide a una copia primaria o principal.
2PL de voto: se pide a todos los nodos que voten para ver si se concede el
bloqueo.
2PL centralizado: el manejador de bloqueos está centralizado y todas las
peticiones de bloqueo las maneja el.
Antes de implementar un algoritmo de control de concurrencia 2PL es necesario
considerar distintos factores como cuál es la unidad atómica más pequeña que el
sistema permite bloquear, cual es el intervalo de sincronización para todas las copias
de un elemento, donde se deben colocar las tablas con la información de los bloqueos
y por último que tan probable es que ocurra por los factores anteriores un bloqueo
mutuo.
10. CONCLUSIÓN
Si mantenemos un buen control de concurrencia podemos mantener información
consistente en las bases de datos, así como también evita la aparición de errores en
las recuperaciones y o respaldos que se realicen de una base de datos.
Problemas siempre habrá cuando la concurrencia no se controla y algunos de los
mecanismos de bloqueo que nos permiten manejar la concurrencia en las
transacciones.
De esta manera, los sistemas de control de concurrencia deben garantizar la
consistencia de la información en la Base de Datos. El tema tratado nos muestra que
sin un óptimo control de la concurrencia las bases, podemos diseñar un sistema muy
bueno, pero puede no ser productivo por sus tiempos de respuesta o dejar las bases
de datos sin su consistencia necesaria, además del riesgo de entregar una
información de mala calidad.