Please enable JavaScript.
Coggle requires JavaScript to display documents.
Programación Concurrente: Ejecución simultánea de múltiples tareas. -…
Programación Concurrente:
Ejecución simultánea de múltiples tareas.
Conceptos Básicos:
Procesos y Hilos: Instancias de programas en ejecución (procesos) y unidades de procesamiento más pequeñas (hilos).
Comunicación entre Procesos: Intercambio de información o coordinación de acciones entre procesos
Sincronización: Coordinación de la ejecución para evitar problemas de concurrencia
Exclusión Mutua: Acceso exclusivo de un proceso o hilo a un recurso compartido.
Condición de Carrera: Resultado dependiente del orden de ejecución de instrucciones.
Problemas:
Orden de Ejecución: Incertidumbre en el orden de ejecución de tareas concurrentes.
Exclusión Mutua: Conflictos por el acceso a recursos compartidos.
Sincronización: Interbloqueo e inanición por falta de coordinación
Complejidad: Mayor dificultad en el diseño, implementación y depuración.
Corrección: Cumplimiento de especificaciones funcionales y de concurrencia.
Ventajas:
Mayor Velocidad de Ejecución: Tareas simultáneas para mejor rendimiento.
Mejor Aprovechamiento de la CPU: Distribución de la carga de trabajo entre procesadores.
Solución de Problemas Concurrentes: Adecuada para tareas simultáneas o coordinadas.
Escalabilidad: Crecimiento del sistema mediante la adición de recursos.
Mejora en la Experiencia del Usuario: Mayor capacidad de respuesta y fluidez.
Desventajas:
Complejidad: Mayor dificultad de gestión de concurrencia, comunicación y sincronización
Problemas de Concurrencia: Condición de carrera, exclusión mutua, interbloqueo e inanición.
Depuración y Corrección: Dificultad para reproducir errores por orden de ejecución no determinista.
Consumo de Recursos: Mayor consumo de memoria y procesamiento.
Arquitecturas:
Monoprocesador: Tareas secuenciales en un solo procesador.
Multiprocesador: Ejecución simultánea de tareas en múltiples procesadores.
Procesamiento Distribuido: Tareas en múltiples nodos de un sistema distribuido.
Computación en la Nube: Ejecución de aplicaciones concurrentes en servidores remotos.
Acoplamiento Fuerte y Débil: Comunicación entre procesadores a través de memoria compartida o mensajes.
Problema de la Sección Crítica:
Requerimientos:
Exclusión Mutua: Un proceso a la vez en la sección crítica.
Sincronización: Coordinación del acceso a la sección crítica.
Espera Activa: Espera de procesos que no pueden acceder a la sección crítica.
Acceso y modificación simultánea de recursos compartidos por múltiples procesos.
Soluciones:
Técnicas de Exclusión Mutua: Semáforos, mutex, variables de condición.
Prevención de la Condición de Carrera, Interbloqueo e Inanición.