Concurrencia

Capacidad de ejecutar múltiples actividades en paralelo o simultáneamente. Permite a distintos objetos actuar al mismo tiempo. Factor relevante para el diseño de hardware, sistemas operativos, multiprocesadores, computación distribuida, programación y diseño.

No determinismo: no hay un orden preestablecido en la ejecución. Ejecuciones con la misma “entrada” pueden generar diferentes “salidas”.

Objetivo de los sistemas concurrentes:

Ventajas:

Comunicación entre procesos

La comunicación entre procesos concurrentes indica el modo en que se organizan y transmiten datos entre tareas concurrentes. Esta organización requiere especificar protocolos para controlar el progreso y la correción. Los procesos se comunican por memoria compartida o por pasaje de mensajes.

Memoria compartida

Pasaje de mensajes