< Programación en Ada

Concurrencia

Para más información, véase el artículo «Programación concurrente» en Wikipedia.

La concurrencia es la simultaneidad de hechos. Un programa concurrente es aquel en el que ciertas unidades de ejecución internamente secuenciales (procesos o threads), se ejecutan paralela o simultáneamente.

Existen 3 formas básicas de interacción entre procesos concurrentes:

  • Comunicación (p.e. uso de memoria compartida).

La concurrencia o procesamiento paralelo se ha implementado en leguajes de programación de distinta manera:

  • Programación concurrente clásica: se basa en la utilización de variables compartidas. Es el caso de Modula-2 o Concurrent Pascal. Para ello, se emplean herramientas como semáforos, regiones críticas y monitores.
  • Programación concurrente distribuida: se basa en la transferencia de mensajes entre los procesos o threads. Es el caso de C/POSIX, Occam o Ada. Se emplean herramientas como canales, buzones y llamadas a procedimiento remoto.

En Ada se emplea una programación concurrente distribuida y la principal forma de sincronizar las unidades de ejecución, conocidas como tareas, son los puntos de entrada a la tarea o citas.

Subsecciones

  1. Tareas
  2. Sincronización de tareas mediante puntos de entrada o citas (entry)
    1. Aceptación de citas (accept)
    2. Selección de citas (select)
    3. Llamadas a punto de entrada complejas
  3. Tareas dinámicas: creación dinámica de tareas (tipos tareas)
    1. Dependencia de tareas
Este artículo ha sido escrito por Wikibooks. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.