Concurrencia vs Paralelismo

  • Luis Angel Tellez Beas

  • Primeros sistemas de computo

    Las primeras máquinas de la era moderna,
    operaban secuencialmente, pero algunos
    sistemas comenzaron a hacer multitarea
    a través de conmutación rápida de tareas
  • Multiprogramacion

    La concurrencia comienza a ser más
    formalizada, permitiendo que diferentes
    programas se ejecuten de manera intercalada
    en un solo procesador. Los sistemas permiten
    la ejecución simultánea de múltiples procesos
    a través de la alternancia
  • Sincornizacion y primeros multitarea

    Los primeros sistemas operativos como UNIX introducen la
    multitarea cooperativa. Se empiezan a
    desarrollar primitivas de sincronización
    (como semáforos y monitores) para
    gestionar el acceso concurrente a los
    recursos.
  • Aparicion del paralelizacion

    El paralelismo comienza a tomar
    relevancia con los primeros procesadores
    multiproceso. Se introducen arquitecturas
    como la de múltiples núcleos, que
    permiten ejecutar varias tareas de manera
    realmente paralela.
  • Programacion avanzada

    Lenguajes como Erlang y los conceptos
    de threads (hilos) y deadlock (bloqueos)
    se empiezan a implementar de forma
    estándar.
  • Multi nucleos

    Las CPUs modernas se construyen con
    múltiples núcleos, lo que permite una
    verdadera ejecución paralela de procesos. Se
    popularizan los sistemas de
    multiprocesamiento y la programación de
    alto rendimiento
  • Concurrencia y nube

    A medida que los sistemas distribuidos y las
    plataformas en la nube se vuelven más
    comunes, las técnicas de concurrencia y
    paralelismo se aplican no solo a los hilos
    locales, sino a máquinas distribuidas a gran
    escala.
  • Inteligencia Artificial y Big Data

    El uso de la concurrencia y el paralelismo en
    el procesamiento de grandes volúmenes de
    datos se amplía significativamente,
    impulsado por avances en la inteligencia
    artificial y el aprendizaje automático. Las
    arquitecturas especializadas como las GPUs
    (unidades de procesamiento gráfico) son
    ampliamente utilizadas para realizar
    procesamiento paralelo masivo.