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

El escenario de la concurrencia




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    1
    El escenario de la Concurrencia

    Múltiples automóviles tratando de ir desde el punto A al punto B.
    Una ruta, un carril =? secuencialidad, colisiones.
    Una ruta, múltiples carriles ? paralelismo, interacciones (?)
    Múltiples rutas? procesamiento distribuido, heterogeneidad.
    El ejemplo tiene la esencia de la concurrencia:

    Los automóviles son tareas que deben ejecutarse.
    Los carriles y las rutas alternativas son los múltiples procesadores.
    Siempre los automóviles deberán sincronizarse (por ejemplo por las luces del tráfico) para no colisionar.
    La noción de paralelo y distribuido.

    Monografias.com

    2
    Conceptos de Concurrencia

    Un thread de control =? programación secuencial, monoprocesador.
    Múltiples threads de control? procesos? concurrencia.

    Los procesos se comunican y sincronizan, en base a dos criterios:
    Exclusión mútua en el acceso a secciones críticas de código.
    Espera por condición.
    La historia de la concurrencia=?
    En los 60’s ==? Evolución de los sistemas operativos. Controladores de dispositivos independientes(canales). Multiprogramación.
    En los 70´s==? Formalización de la concurrencia en los lenguajes.
    En los 80’s==? Redes, procesamiento distribuido.
    En los 90’s ==? MPP , InterNet, CS, Web computing…
    Hoy==? Cluster computing, Grid computing, Procesamiento masivo de datos distribuidos, Real Time Distributed systems…

    Monografias.com

    3
    Algunos conceptos del Hardware.

    Procesadores y niveles de memoria.
    Memoria primaria. Memoria Caché.
    Niveles de memoria Caché.
    Multiprocesadores de memoria compartida.
    Esquemas UMA (Uniform memory access) con Bus o Swith. (arquitecturas SMP- Symmetric multiprocessors)
    Esquemas NUMA para mayor número de procesadores distribuidos.
    Multiprocesadores con memoria distribuida.
    Grado de acoplamiento de los procesadores.
    Memoria compartida distribuida.

    Monografias.com

    4
    Concurrencia: Clases de Aplicaciones

    El primer tipo de aplicaciones se corresponde cuando ejecutamos N procesos independientes sobre M procesadores, con N > M. Un sistema de software de “multithreading” maneja simultáneamente tareas independientes, asignando (por ejemplo por tiempos) los procesadores de que dispone.
    Ejemplos típicos:
    Sistemas de ventanas en PCs o WS.
    Time sharing en sistemas operativos multiprocesador.
    Sistemas de tiempo real en plantas industriales.

    Monografias.com

    5
    Concurrencia: Clases de Aplicaciones

    El segundo tipo de aplicaciones es el cómputo distribuido: una red de comunicaciones vincula procesadores diferentes sobre los que se ejecutan procesos que se comunican esencialmente por mensajes. Cada componente del sistema distribuido puede hacer a su vez multithreading.
    Ejemplos típicos:
    Servidores de archivos (recursos) en una red.
    Sistemas de Bases de datos distribuidas (bancos, reservas de vuelos).
    Servidores WEB distribuidos.
    Arquitecturas clienteservidor.
    Sistemas tolerantes a fallas.

    Monografias.com

    6
    Concurrencia: Clases de Aplicaciones

    El procesamiento paralelo es el tercer tipo de aplicaciones. Se trata de resolver un dado problema en el menor tiempo posible, utilizando una arquitectura multiprocesador en la que se pueda distribuir la tarea global en tareas (independientes? interdependientes?) que puedan ejecutarse en diferentes procesadores.
    Paralelismo de datos y paralelismo de procesos.
    Ejemplos típicos:
    Cálculo científico. Modelos de sistemas (meteorología, movimiento planetario).
    Gráficos, procesamiento de imágenes, realidad virtual, procesamiento de video.
    Problemas combinatorios y de optimización lineal y no lineal. Modelos econométricos.

    Monografias.com

    7
    Paradigmas de resolución de programas concurrentes

    Si bien el número de aplicaciones es muy grande, en general los “patrones” de resolución concurrente son pocos:
    1-Paralelismo iterativo, 2-paralelismo recursivo, 3-productores y consumidores, 4-clientes y servidores, 5-pares que interactúan.
    En el paralelismo iterativo un programa tiene un conjunto de procesos (posiblemente idénticos) cada uno de los cuáles tiene uno o más loops. Es decir cada proceso es un programa iterativo.
    La idea es que si estos procesos cooperan para resolver un único problema (ejemplo un sistema de ecuaciones) pueden trabajar independientemente y sincronizar por memoria compartida o envío de mensajes.

    Monografias.com

    8
    Paradigmas de resolución de programas concurrentes

    En el paralelismo recursivo el problema general (programa) puede descomponerse en procesos recursivos que trabajan sobre partes del conjunto total de datos.
    Ejemplos clásicos son por ejemplo el sorting by merging o el cálculo de raíces en funciones continuas.
    Los esquema productor-consumidor muestran procesos que se comunican. Es habitual que estos procesos se organicen en pipes a través de los cuáles fluye la información. Cada proceso en el pipe es un filtro que consume la salida de su proceso predecesor y produce una salida para el proceso siguiente.

    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