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

Concurrencia: exclusión mutua y sincronización. Comunicación entre procesos




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    1 Programación concurrente.
    El sistema operativo, y los programas de usuario, son un conjunto de procesos que se ejecutan de forma asíncrona.
    Algunos de ellos cooperan. Cuando es necesaria comunicación entre ellos ha de existir una coordinación o sincronización.
    La comunicación entre los procesos es necesaria (tuberías).

    Atendiendo a la concurrencia los procesos se pueden clasificar en:
    Procesos independientes:
    No puede ser afectado por el resto de los procesos.
    Su estado no es compartido por ningún otro proceso.
    Son deterministas, para unas entradas dadas la salida es siempre la misma.
    Son reproducibles.
    Pueden ser detenidos y arrancados sin ningún problema. Su ejecución termina sin mayor problema que un mayor tiempo.
    Procesos cooperantes:
    Cuando comparten su estado (mismo sistema de ficheros, memoria, etc.).
    Pueden No ser deterministas.
    Pueden ser irreproducibles.
    1. Introducción. Exclusión mutua (1).

    Monografias.com

    1 Programación concurrente.
    Labores del sistema operativo.
    Seguir la pista de los distintos procesos activos.
    Controlar la asignación y retirada los recursos:
    Tiempo de procesador.
    Memoria.
    Archivos.
    Dispositivos de E/S.
    Proteger los datos y los recursos físicos.
    Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la ejecución de otros procesos concurrentes.
    1. Introducción. Exclusión mutua (2).

    Monografias.com

    1 Programación concurrente.
    Condiciones de Carrera (Race Conditions)
    Los procesos necesitan intercambiar información.
    Los intercambios de información se realizan compartiendo espacios de almacenamiento donde leer y escribir: disco, memoria.
    Ej: Escritura en una PRN.
    Proceso enviando a un directorio.
    Proceso de SPOOLing demonio que imprime.
    Existe una misma estructura de datos para los dos procesos.

    Concurrencia.
    Comunicación entre procesos.
    Compartición y competencia por los recursos.
    Sincronización de la ejecución de varios procesos.
    Asignación del tiempo de procesador a los procesos.

    1. Introducción. Exclusión mutua (3).

    Monografias.com

    Un ejemplo sencillo
    void echo()
    {
    ent = getchar();
    sal = ent;
    putchar(sal);
    }
    (Gp:) Proceso P1 Proceso P2
    . .
    ent = getchar(); .
    . ent = getchar();
    sal = ent; sal = ent;
    putchar(sal); . . putchar(sal);
    . .

    Monografias.com

    1 Programación concurrente.
    Problema ejemplo a estudio.
    Sea un sistema con N slots para situar archivos para impresión en el SPOOLing.
    Sean dos procesos A y B queriendo acceder a una sección crítica.
    Si A selecciona el sloti para imprimir.
    Al comenzar la operación A es desplanificado.
    B es planificado y selecciona el sloti a imprimir.
    B almacena su información en el sloti.
    A es planificado y continua salvando información en sloti.
    La información almacenada por B es reemplazada por A.
    1. Introducción. Exclusión mutua (4).

    Monografias.com

    1 Programación concurrente.
    Dificultades con la concurrencia.
    Compartir recursos globales.
    Gestionar la asignación óptima de recursos.
    Localizar un error de programación.
    No determinismo.

    El acceso a los recursos no siempre puede simultanearse.
    La requisa no es siempre posible.
    Las operaciones de escritura deben ser mutuamente excluyentes.
    Las secciones críticas garantizan la integridad de los datos.

    1. Introducción. Exclusión mutua (5).

    Monografias.com

    1 Programación concurrente.
    1. Introducción. Exclusión mutua (6).
    Sección Crítica:
    Zonas de programa o recursos que solo pueden ser poseídos en un instante determinado por un proceso dado.
    Archivos, memoria, recursos compartidos.
    Directrices:
    No puede existir dos procesos simulteneamente en una Sección Crítica.
    Un proceso que se interrumpe en una sección crítica debe hacerlo sin interferir con los otros procesos.
    Ningún proceso puede esperar indefinidamente para entrar en la SC (inanición o interbloqueo ).
    Cuando ningún proceso está en su sección crítica, cualquier proceso que solicite la entrada debe poder hacerlo. Ningún proceso fuera de su SC puede bloquear a otro.
    No se deben hacer suposiciones sobre la velocidad relativa de los procesos o el número de procesadores.
    Un proceso permanece en su sección crítica sólo por un tiempo finito.
    Los procesos se autoexcluyen (exclusión mutua).
    Resultado:
    Interbloqueo.
    Inanición.

    Monografias.com

    1 Programación concurrente.
    Se supone la existencia de mecanismos básicos de exclusión por hardware.
    Ej. Solo se puede acceder a una posición de memoria en un instante dado. Posición en memoria de turno.
    Espera activa:
    Un proceso siempre está esperando a entrar en su sección crítica.
    Un proceso no puede hacer nada productivo hasta que obtiene permiso para entrar en su sección crítica.
    Variable cerrojo.
    Varible que controla el acceso a la SC.
    El proceso chequea el valor y si está libre entra.
    El problema se puede plantear si el proceso es requisado tras recibir un OK de la variable.
    1.1. Soluciones por software (1).

    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