Paralelismo y Concurrencia

Paralelismo y Concurrencia

Cuando se realizan varios procesos al mismo tiempo exactamente, estamos hablando de paralelismo, mientras que la ejecución de varios procesos, pero en tiempo compartido se denomina concurrencia.

La capacidad de un procesador para ejecutar varios procesos al mismo tiempo o en tiempo compartido es posible gracias a procesos paralelos o concurrentes. Naturalmente, entre ellos hay diferencias claves y a veces depende de la capacidad del procesador sobre el que se trabaja. 

Paralelismo y concurrencia son un tanto similares, pero no totalmente. Concurrencia es la capacidad de un sistema para procesar más de un hilo de ejecución al mismo tiempo. Son procesos que comparten un tiempo de ejecución, son concurrentes. Si un proceso termina y empieza otro, son secuenciales. No es necesario tener más de un procesador para concurrencia ya que se puede dar en un sistema monoprocesador. Si tenemos un solo procesador, en un instante de tiempo solo un proceso puede ejecutarse, entonces se divide el tiempo para cada proceso. 

Por el otro lado, el paralelismo es la capacidad de un sistema para ejecutar más de un hilo de ejecución al mismo tiempo 

La mayor diferencia entre estos dos conceptos reside en que el paralelismo implica concurrencia: si varios procesos se ejecutan al mismo tiempo (paralelos), eso implica que conviven a la vez. Por tanto, son concurrentes. 

En el caso de concurrencia, esta no implica paralelismo: si varios procesos conviven a la vez (son concurrentes), esto no implica que deban ejecutarse a la vez. Por tanto, no necesariamente son paralelos. 

Es importante tener en cuenta los siguientes puntos para conocer realmente la diferencia entre paralelismo y concurrencia: 

  • La concurrencia y el paralelismo son conceptos diferentes, pero relacionados. 

  • Concurrencia implica que varios procesos o tareas coexistan, pero no necesariamente al mismo tiempo. Normalmente se desconoce el orden en que se ejecutan. 

  • Paralelismo implica que varios procesos o tareas se ejecutan al mismo tiempo. Normalmente se desconoce el orden en el que se ejecutan. 

  • Paralelismo implica concurrencia, pero concurrencia no implica paralelismo. 

En definitiva, son conceptos un tanto similares, pero no totalmente iguales. Por un lado tenemos la capacidad de realizar varias tareas al mismo tiempo, mientras que por el otro lado se realizan esas mismas tareas con tiempo compartido. La habilidad de poder hacer tareas en paralelo o de forma concurrente, depende del procesador. 

Referencias

Rauber, T., & Rünger, G. (2015). Parallel Programming: For Multicore and Cluster Systems (2nd 2013 ed.). Berlin, Germany: Springer. 

Grande, R. (2020, 10 julio). Paralelismo y Concurrencia - Rubén Cougil Grande. Medium. https://medium.com/@rcougil/software-paralelismo-y-concurrencia-ae6018f68d75 

Dorky Desarrollo. (s. f.). ¿Cuál es la diferencia entre concurrencia y paralelismo? DOKRY Desarrollo. Recuperado 12 de diciembre de 2020, de https://www.dokry.com/2208 

No comments

Comentarios en artículos

No comments

Nobody has submitted a comment yet.