Clase 1: Introducción

Qué es la concurrencia?

Es la 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”.

La programación concurrente es necesaria para aplicaciones con una estructura más natural, mejoras en la respuesta y para ser usada en sistemas distribuidos.

Objetivo de los sistemas concurrentes:

Ventajas:

Soluciones paralelas

Consecuencias:

Dificultades: