Please enable JavaScript.
Coggle requires JavaScript to display documents.
:PROGRAMACIÓN CONCURRENTE, *Problemas asociados - Coggle Diagram
:
PROGRAMACIÓN CONCURRENTE
CONCEPTOS
FUNDAMENTALES
Programación paralela
: ejecución
al mismo tiempo los dos procesos
Programa:
Conjunto de instrucciones
Programación concurrente:
Se compone de una colección de actividades (hilos) que pueden ejecutarse en paralelo. Es la disciplina que se encarga del estudio de las notaciones que permiten especificar la ejecución concurrente de las acciones de un programa, así como las técnicas para resolver los problemas inherentes a la ejecución concurrente
Exclusión mutua
Sección crítica
Condición de Sincronización
Proceso:
Es algo dinámico. Es un programa en ejecución
Programación secuencial:
es un camino recto, desde un inicio hasta el final. Y se irán ejecutando una serie de instrucciones o pasos
Hilo: Se puede definir como una unidad básica de ejecución del Sistema Operativo para la utilización del CPU
DESVENTAJAS
Depuración compleja
Programación delicada
Dificulta su verificación
No es fácil
En programas de pocos procesos es más lento
VENTAJAS
Gestión de comunicaciones
Flexibilidad
Escalabilidad
Diseño modular y estructurado
Eficiencia (aprovechamiento de recursos)
Mejor administración de los datos
Velocidad de ejecución
Solución de problemas
inherentemente concurrentes
Tecnologías web
Aplicaciones basadas en GUI
Simulación
Sistemas Gestores de Bases de datos
Sistemas de Control
CARACTERÍSTICAS
Indeterminismo:
Orden de ejecución de las instrucciones
ARQUITECTURA
Hardware
Nos estamos refiriendo fundamentalmente al número de procesadores en el sistema
Multiprocesador:
Es aquel en el que existe más de un procesador, permitiendo la existencia de un paralelismo entre los procesos ya que idealmente cada procesador podría ejecutar un proceso
Sistemas fuertemente acoplados
Sistemas débilmente acoplados
Monoprocesador
un sistema con un solo procesador. Aquí todos los procesos comparten la misma memoria. La forma de sincronizar y comunicar procesos será mediante el uso de variables compartidas
Proporciona un servicio interactivo a múltiples usuarios
Variables compartidas
Se comparte la misma memoria
Software
Semáforos
Mensajes
Regiones críticas
Regiones críticas condicionales
Monitores
*Problemas asociados