Hola resumo un poco de información que he encontrado, esperando que sea leida y corregida:
Concurrencia: Varias tareas se ejecutan de forma simultanea, compartiendo los recursos disponibles segun sea el caso. Se utiliza la asignación de tiempos alternando entre distintas tareas que ocurren todas a la vez.
Un programa concurrente es un conjunto de tareas secuenciales ejecutadas en paralelismo abstracto o real y puede incrementar la velocidad, eficiencia, desempeño y tiempo de respuesta adaptándose a situaciones multitarea.
La programación concurrente se puede clasificar por la forma en que se ejecuta en:
- Multiprogramación (se cuenta con un solo procesador)
- Programacion paralela (multiprocesador o multicomputadora)
- Programación distribuida (red de estaciones de trabajo)
La asignación de tiempos se llama time-slicing.
La multiprogramación es un paralelismo abstracto porque el procesador asigna recursos a cada tarea.
En un paralelismo real el programa concurrente corre en una maquina con mas de un procesador (multicore)
saludos!