Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CONCURRENTE Y
PARALELA
BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA
FACULTAD DE CIENCIAS DE LA COMPUTACIÓN
Luz A. Sánchez Gálvez
lgalvez@cs.buap.mx
luzsg@hotmail.com
Programación Concurrente y
Paralela
La programación concurrente desempeña un
papel vital en los sistemas donde muchos
sucesos ocurren simultáneamente.
Introducción
Proceso:
Instancia ejecutada de un programa.
“es una actividad asíncrona susceptible de ser
asignada a un procesador”
Introducción
Procesos independientes
Sin interacción
Relativamente poco frecuente.
Colaborando
Los procesos se combinan para resolver una tarea común.
Son necesarias reglas o protocolos.
Mediante Sincronización y Comunicación
Compitiendo
Típico en un SO y Redes, debido a los recursos
compartidos.
Son necesarias reglas o protocolos.
Mediante Sincronización
Comportamiento de un proceso
Colaborando
Los procesos se combinan para resolver una tarea
común
Son necesarias reglas o protocolos.
Mediante Sincronización y Comunicación
Comportamiento de un proceso
Compitiendo
Típico en SO y redes, debido a los recursos
compartidos
Son necesarias reglas o protocolos.
Mediante Sincronización
Comportamiento de un proceso
Compitiendo
Típico en SO y redes, debido a los recursos
compartidos
Son necesarias reglas o protocolos.
Mediante Sincronización
Interbloqueo
Comportamiento de un proceso
Compitiendo
Típico en SO y redes, debido a los recursos
compartidos
Son necesarias reglas o protocolos.
Mediante Sincronización
Inanición
Requisitos de la programación
concurrente
Sincronización
Capacidad de informar de la situación de un
proceso a otro.
Comunicación
Capacidad de transmitir información desde
un proceso a otro.
Objetivo: Intercambio de información entre
procesos.
Prioridad
Capacidad de establecer un orden de
importancia en los procesos.
Objetivo: Permitir la ejecución de procesos más
importantes (prioritarios) antes que otros.
Características de los programas
concurrentes
Indeterminismo
Orden de ejecución de las
instrucciones
Formar
Leer Dividir en
Sum filas 1 matriz
matrices filas
resultado
Sum filas 2
Aplicaciones clásicas:
Sistemas operativos.
Programación de sistemas multicomputadoras.
Control y monitorización de sistemas físicos reales.
Aplicaciones de los programas
concurrentes
Aplicaciones actuales:
Servicios Web
Sistemas multimedia
Cálculo numérico
Procesamientos entrada/salida
Simulación de sistemas dinámicos
Interacción Humano/Computadora
Tecnologías de componentes
Dispositivos móviles
Sistemas embebidos
Arquitecturas que soportan la
programación concurrente
Arquitecturas:
Sistemas monoprocesador
Sistemas multiprocesador
Sistemas monoprocesador
Ventajas
Compartición de recursos dispersos
Ayuda al trabajo cooperativo de equipos
humanos
Aumento de velocidad de ejecución
Escalabilidad ilimitada
Aumento de fiabilidad:
tolerancia a fallos (fault tolerance)
alta disponibilidad (availability)
Programación Paralela