Please enable JavaScript.
Coggle requires JavaScript to display documents.
Programación Concurrente - Coggle Diagram
Programación Concurrente
-
Beneficios
Velocidad de ejecución
Cuando la puesta en ejecución de un programa conlleva la creación de varios procesos y el sistema consta de más de un procesador, existe la posibilidad de asignar un proceso a cada procesador de tal forma que el programa se ejecuta de una forma más rápida. Los programas de cálculo numérico son grandes beneficiados de este hecho.
-
-
Facilita el diseño orientado a objeto de las aplicaciones, ya que los objetos reales son concurrentes.
-
-
Facilita la programación de tiempo real, ya que se pueden concebir como procesos cuya ejecución se planifican de acuerdo con la urgencia.
Facilita la realización de programas fiables por despliegue dinámico de los procesos en los procesadores.
Desventajas
Violación de la exclusión mutua : Es cuando más de un hilo trata de ejecutar la sección critica de un programa y lo logra, obteniendo asi resultados indeseados.
Deadlock : Tambien conocido como abrazo mortal, ocurre cuando un proceso espera un evento que nunca va a pasar. Aunque se puede dar por comunicación entre procesos , es más frecuente que se de por manejo de recursos.
Aplazamiento indefinido : O tambien conocido como "starvation" o "lockout", se da cuando el algoritmo que maneja los recursos no tiene en cuenta el tiempo que lleva esperando ese proceso.
Injusticia : Tambien conocido como "unfairness", ocurre cuando el programa no tiene mecanismos para asegurar que se da un progreso "parejo" en las tareas concurrentes, este es un aspecto que el diseñador debe tener en cuenta al desarrollar el programa, cualquier descuido a la "justicia" de un programa podria generar un aplazamiento indefinido.
Arquitectura
-
Multiprocesador
-
-
Suele denominarse multiproceso a la gestión de varios procesos dentro de un sistema multiprocesador donde cada procesador puede acceder a una memoria común y procesamiento distribuido a la gestión de varios procesos en procesadores separados, cada uno con su memoria local.
-
-