INVESTIGACIÓN PROGRAMACIÓN CONCURRENTE

La programación concurrente es una técnica de programación que permite ejecutar múltiples procesos al mismo tiempo. Esto permite resolver problemas de forma no secuencial, sin necesidad de esperar a que una tarea termine para que comience la siguiente.

Características
  • Permite dividir los procesos o funciones en diferentes "Threads" para acelerar la ejecución de los programas.
  • Los módulos concurrentes interactúan enviándose mensajes entre sí.
  • Se utiliza para desarrollar software que ejecuta eventos o circunstancias que están sucediendo o existen al mismo tiempo.
  • Clasifica como un método de computación modular.
  • Funciona bajo el concepto de procesos.
  • Si un proceso no logra su ejecución en el tiempo que le corresponde, el sistema se encargará de ponerlo en pausa.
  • Uso es común en contextos de desarrollo mobile, inteligencia artificial, robótica.

Riesgos:

  •     Puede haber un uso ineficiente de recursos compartidos.
  •     Si Varios Threads tratan de acceder a un recurso compartido, uno o más de ellos pueden tener que esperar.
                  

Conceptos fundamentales de la programación concurrente

    Proceso

  • Un cálculo secuencial con su propio flujo de control
  • Una entidad pesada con espacio en el núcleo
        Hilo

  • Una secuencia de control dentro de un proceso que ejecuta sus instrucciones de forma independiente
  •       Una entidad ligera en el espacio de usuario
Concurrencia:

  • La existencia de diversos flujos de control en un mismo programa colaborando para resolver un problema

  • La ejecución simultánea de múltiples tareas interactivamente 

La programación concurrente es una técnica de programación que permite a los desarrolladores diseñar aplicaciones que pueden ejecutar tareas simultáneamente. Esto aumenta la eficiencia y la capacidad de respuesta generales.

La computación concurrente es una forma de cómputo en la cual varios cálculos se realizan concurrentemente, y no uno a la vez de forma secuencial.

Es una característica propia de un sistema, ya sea un programa, una computadora o una red, en la cual existe un punto separado de ejecución o "hilo de control" para cada proceso. Un sistema concurrente es aquel donde un cálculo puede avanzar sin esperar a que el resto de los cálculos se completen.



Concurrencia y Paralelismo:

Una de las formas más sencillas de comprender la concurrencia es imaginar a una persona la cual trabaja en múltiples tareas al mismo tiempo, y que rápidamente cambia de una tarea a otra. Por ejemplo, imaginemos a una persona la cual se encuentra programando, realizando cálculos en Excel y contestando correos electrónicos, todo esto al mismo tiempo.

El paralelismo es el poder de ejecutar dos o más acciones de forma simultánea, en lugar de concurrentemente. Si recordamos, en nuestro ejemplo anterior, el desarrollador realiza tres tareas al mismo tiempo, realizaba cálculos programaba y contestaba correos, sin embargo, ninguna de estas tareas se realizaba de forma simultánea.

Comentarios

Entradas populares