Programación Concurrente

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Programación Concurrente por Mind Map: Programación Concurrente

1. Problema de la sección crítica

1.1. Definición

1.1.1. Región del código donde múltiples procesos acceden a recursos compartidos.

1.2. Problemas

1.2.1. Accesos simultáneos generan resultados inconsistentes.

1.3. Soluciones

1.3.1. -Mutex: Bloqueos para garantizar acceso exclusivo. -Semáforos: Variables de control para gestionar acceso concurrente. -Monitores: Estructuras que encapsulan datos compartidos y métodos sincronizados.

2. Conceptos

2.1. Programacion concurrente: Técnica de programación donde múltiples tareas se ejecutan de manera simultánea o en paralelo.

2.2. Programación Secuencial: Técnica de programación donde las instrucciones se ejecutan una tras otra en un único hilo de ejecución.

3. Problemas asociados

3.1. Programación secuencial

3.1.1. Bloqueo: Una tarea debe esperar a que otra finalice. Ineficiencia: Uso subóptimo de recursos.

3.2. Programación concurrente

3.2.1. Interbloqueo: Dos o más procesos esperan recursos entre sí indefinidamente. Starvation: Un proceso no obtiene recursos necesarios porque otros acaparan los recursos.

4. Ventajas

4.1. -Eficiencia por mejor uso de CPU y otros recursos del sistema -Escalabilidad -Rapidez Modularidad para dividir tareas complejas en subtareas concurrentes.

5. Desventajas

5.1. -Difícil de implementar y depurar debido a problemas de sincronización. -Requiere más memoria y potencia de CPU para gestionar hilos/procesos. -Presenta errores difíciles de detectar

6. Arquitectura Utilizada

6.1. -Modelos de programacion concurrente

6.1.1. Hilos, eventos y callbacks, memoria compartida, pipelines

6.2. Hardware

6.2.1. Sistemas multiprocesador y multinúcleo,clústeres, AWS o Azure, GPUs, TPUs y sistemas embebidos como Arduino o ESP32.

6.3. Entornos

6.3.1. Sistemas operativos, lenguajes y librerías, frameworks como Akka o Hadoop.