Programación Concurrente
Programación Concurrente
Programación Concurrente
Se conoce por programacin concurrente a la rama de la informtica que trata de las tcnicas de programacin que se usan para expresar el paralelismo entre tareas y para resolver los problemas de comunicacin y sincronizacin entre procesos. El principal problema de la programacin concurrente corresponde a no saber en que orden se ejecutan los programas en especial los programas que se comunican. Se debe tener especial cuidado en que este orden no afecte el resultado de los programas. Programa Concurrente:
Es un programa diseado para tener 2 o ms contextos de ejecucin decimos que este tipo de programa es multi-hilo, porque tiene ms de un contexto de ejecucin. Un programa concurrente es un programa que tiene ms de una lnea lgica de ejecucin, es decir, es un programa que parece que varias partes del mismo se ejecutan simultneamente. Un ejemplo de esto es un programa que realice determinada funcin y, simultneamente, exponga datos en la pantalla. Un programa concurrente puede correr en varios procesadores simultneamente o no. Esta importancia de la concurrencia es especialmente destacable en sistemas operativos como Linux, que adems de concurrentes, presentan unos mecanismos de concurrencia estables. La concurrencia puede presentarse en tres contextos diferentes: Varias aplicaciones: La multiprogramacin se cre para permitir que el tiempo de procesador de la maquina fuese compartido dinmicamente entre varios trabajos o aplicaciones activas. Aplicaciones estructuradas: Como aplicacin de los principios del diseo modular y la programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes. Estructura del Sistema Operativo: Las mismas ventajas de estructuracin son aplicables a los programadores de sistema y se han comprobado que algunos sistemas operativos estn implementados con un conjunto de procesos.
Fundamentos De La Programacin Concurrente Concurrencia: Es un trmino genrico utilizado para indicar un programa nico en el que puede haber ms de un contexto de ejecucin activo simultneamente. Cuando dos o ms procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o ms procesos sean concurrentes, es necesario que tengan alguna relacin entre ellos como puede ser la cooperacin para un determinado trabajo o el uso de informacin o recursos compartidos, por ejemplo: en un sistema de un procesador, la multiprogramacin es una condicin necesaria pero no suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse de forma totalmente independiente.