El siguiente libro gratuito está dirigido para todas aquellas personas interesadas en aprender sobre la programación concurrente.
- ¡No te pierdas el curso gratuito! Aprende los conceptos básicos de las herramientas de Swagger
- No te pierdas el Curso Gratis de la Guía Definitiva de SVG: crea proyectos web con animaciones espectaculares
- ¡No te pierdas este curso gratis y acreditado para manejar el estrés con técnicas científicas de relajación y afrontamiento!
¡¿Quieres más contenido GRATIS?!
La computación concurrente es una manera de cómputo en la cual diversos cálculos se hacen concurrentemente, y no uno a la vez de manera secuencial.
Es una característica propia de un sistema, así sea un programa, una PC o una red, en la cual existe un punto separado de ejecución o “hilo de control” para cada proceso. Un sistema concurrente es ese donde un cálculo puede seguir sin aguardar a que lo demás de los cálculos se completen.
La computación concurrente se estima una forma de programación modular. En este paradigma un cálculo completo es facturado en diversos sus cálculos que podrían ejecutarse concurrentemente. Los pioneros en este campo integran a Edsger Dijkstra, Per Brinch Hansen, y C. A. R. Hoare.
El término de la computación concurrente suele ser confundido con el término de la computación paralela, las cuales permanecen en relación empero son diversas.
Aunque las dos tienen la posibilidad de ser descriptas como “múltiples procesos ejecutándose dentro del mismo lapso de tiempo”.
En la computación paralela, la ejecución pasa en el mismísimo momento físico: ejemplificando, en los diferentes procesadores o núcleos de una PC multiprocesador.
La computación paralela es imposible en una PC con un procesador de un solo núcleo, la ejecución paralela es imposible debido a que solo un cómputo puede procesarse en un momento dado (sin considerar casos especiales tales como la existencia de un coprocesador).
Sin embargo, la computación concurrente se basa en que la vida de los procesos comparte el mismo tiempo, sin embargo, la ejecución de todos ellos no pasa en el mismo momento.
Uno de los más grandes retos en el momento de diseñar programas concurrentes es el control de concurrencia: Garantizar el orden conveniente de las colaboraciones o comunicaciones entre diferentes ejecuciones computacionales, y coordinar la entrada a los recursos compartidos entre estas ejecuciones.
Los inconvenientes potenciales integran el bloqueo recíproco, las condiciones de carrera y la inanición. Consideremos Ejemplificando el siguiente algoritmo para retirar dinero de una cuenta bancaria, representada por el recurso compartido balance.

Como consecuencia del rápido desarrollo de Internet, la programación distribuida está haciéndose rápidamente popular día a día.
Internet provee de los primeros mecanismos básicos para una infraestructura global en las aplicaciones distribuidas, un espacio de nombres global (basado en las URL) y protocolos de comunicación globales (TCP/IP).
La mayoría de las plataformas de sistemas distribuidos toman esta base para poder implementar diferentes modelos de aplicaciones y de sus usos.
Por otro lado, cuando generalizamos hacia el concepto de concurrencia, como habilidad de ejecutar múltiples actividades en paralelo o simultáneas, introducimos diferentes tipos de programación, como la paralela, la distribuida y la de memoria compartida.
El conjunto de las cuales (lo denominaremos programación concurrente) se aplica en mayor o menor medida a diferentes sistemas distribuidos según el ámbito de aplicación.
En cuanto examinamos la programación concurrente, nos damos cuenta de su importancia actual, y de la prospección de futuro que tiene, ya sea desde el desarrollo de Internet y sus aplicaciones, o desde el nuevo hardware de las CPU (por ejemplo, en la forma de multicores), que nos introducirá la programación concurrente como un elemento básico para todo desarrollador de aplicaciones.
Detalles del libro
Año: 2007
Editor: UOC
Páginas: 100 páginas
Idioma: Español
Licencia: CC-BY-SA
Puedes ver o descargar el PDF Gratuito, desde este enlace.