Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Concurrencia




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    INTRODUCCIÓN
    La definición de concurrencia en términos generales es:
     Coincidencia de varios sucesos o cosas a un mismo tiempo

    La concurrencia en las bases de datos :
    Se refiere al hecho de que los Sistemas Administradores de Base de Datos permiten que muchas transacciones accedan a una misma Base de Datos a la vez.

    Cuando existen varios usuarios intentando modificar los datos al mismo tiempo, se necesita establecer algún tipo de control para que dichas modificaciones de un usuario no interfieran en las de los otros, a este sistema se le denomina control de concurrencia.

    Los sistemas de control de concurrencia deben garantizar la propiedad de aislamiento de transacciones que se ejecutan de manera concurrente.

    Monografias.com

    DEFINICIÓN DE CONCURRENCIA
    En el campo informático, el termino concurrencia se refiere a la capacidad de los Sistemas de Administración de Base de Datos (DBMS), de permitir que múltiples procesos sean ejecutados al mismo tiempo, y que también puedan interactuar entre sí.

    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.

    Algunos casos de concurrencia
    La multiprogramación: El procesador es compartido dinámicamente por varios procesos.
    Aplicaciones estructuradas: 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. Las dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de programación y conceptos que permitan hacer la concurrencia más manejable.

    Monografias.com

    TRANSACCIONES
    El control de concurrencia permite 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

    Informalmente, una transacción es la ejecución de ciertas instrucciones que acceden a una base de datos compartida.

    Cada transacción accede a información compartida sin interferir con otras, si una transacción termina normalmente, todos sus efectos son permanentes, en caso contrario no tiene afecto alguno.
    Durante una transacción la base de datos pierde su consistencia, la que debe restituirse al momento de finalizar la transacción.

    Monografias.com

    PROPIEDADES FUNDAMENTALES DE UNA TRANSACCIÓN
    Atomicidad: Se refiere al hecho de que una transacción se trata como una unidad de operación.
    Consistencia: La consistencia de una transacción es simplemente su correctitud.
    las transacciones no violan las restricciones de integridad de una base de datos.
    Aislamiento: Una transacción en ejecución no puede revelar sus resultados a otras transacciones concurrentes antes de finalizar.
    Permanencia: Es la propiedad de las transacciones que asegura que una vez que una transacción finaliza exitosamente, sus resultados son permanentes y no pueden ser borrados de la base de datos por alguna falla posterior.  
    En esencia, lo que se persigue con el procesamiento de transacciones es, por una parte obtener una transparencia adecuada de las acciones concurrentes a una base de datos y por otra, manejar adecuadamente las fallas que se puedan presentar en una base de datos.
    El procesamiento de transacciones es una de las tareas más importantes dentro de un sistema de base de datos, pero a la vez, es una de las más difíciles de manejar debido a diversos aspectos, tales como:

    Confiabilidad: Puesto que los sistemas de base de datos en línea no pueden fallar.
    Disponibilidad: Debido a que los sistemas de base de datos en línea deben estar actualizados correctamente todo el tiempo.
    Tiempos de Respuesta: el tiempo de respuesta de las transacciones no debe ser mayor a doce segundos  
    Throughput: Los sistemas de base de datos en línea requieren procesar miles de transacciones por segundo. 
    Atomicidad: en el procesamiento de transacciones: No se aceptan resultados parciales.

    Monografias.com

    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.

    El problema de la Actualización Perdida
    El problema de la Dependencia No Confirmada
    El problema del Análisis Inconsistente

    Monografias.com

    Actualización Perdida
    Procedure Depositar(Cuenta, Monto)
    begin
    Start;
    temp := Leer(Cuentas[Cuenta]);
    temp := temp + Monto;
    Escribir(Cuentas[Cuenta],temp);
    Commit;
    End

    Leer1(Cuentas[7]) devuelve el valor de $1000
    Leer2(Cuentas[7]) devuelve el valor de $1000
    Escribir2(Cuentas[7], $101000)
    Commit2
    Escribir1(Cuentas[7], $1100)
    Commit1

    Monografias.com

    Análisis Inconsistente
    Procedure ImprimirSuma(Cuenta1, Cuenta2)
    begin
    Start;
    temp1 := Leer(Cuentas[Cuenta1]);
    output(temp1);
    temp2 := Leer(Cuentas[Cuenta2]);
    output(temp2);
    temp1 := temp1 $+$ temp2;
    output(temp1);
    Commit;
    end

    Leer4(Cuentas[8]) devuelve el valor de $200
    Escribir4(Cuentas[8], $100)
    Leer3 (Cuentas[8]) devuelve el valor de $100
    Leer3 (Cuentas[9]) devuelve el valor de $200
    Leer4 (Cuentas[9]) devuelve el valor de $200
    Escribir4 (Cuentas[9], $300)
    Commit4
    Commit3

    Monografias.com

    Sincronizador o Serializador

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter