Beruflich Dokumente
Kultur Dokumente
Programacin Concurrente y
Distribuida
manuelibarra@gmail.com
http://www.dcc.uchile.cl/~mibarra/
2/33
Programacin
3/33
Definiciones
Multi-programacin
Dos o ms procesos compartiendo la memoria principal y ejecutados al
mismo tiempo
Si tenemos un nico procesador tenemos Pseudo-Paralelismo
Cambiar rapidamente de proceso a proceso
Computacin Paralela
Varias Instrucciones ejecutandose simultaneamente
Tipos:
Paralelismo a nivel de bit
Incrementar el tamao de la palabra
Imagine un procesador de 8 bits sumar dos enteros de 16 bits
Paralelismo a nivel de instruccin
Varias instrucciones por ciclo de reloj
Paralelismo de Datos
Se distribuyen los datos y se replican las tareas
Paralelismo de Tareas
Asignar distintas tareas a cada uno de los procesadores
Definiciones
Tipos de Paralelismo
Definiciones
Condiciones de Bernstein
Para que dos programas se puedan ejecutar
de forma paralela
Para dos procesos P1 y P2
I1 O2 =
I2 O1 =
O1 O2 =
Donde Ii es la entrada el proceso i, Oi es la
salida del proceso i
Es conmutativa pero no transitiva
Definiciones
Concurrencia
Paralelismo potencial, que puede o no darse
Formas de concurrencia
Concurrencia implcita: concurrencia interna
del programa
Ejemplo: un programa contiene instrucciones independientes que
se pueden ejecutar en paralelo
Concurrencia explcita: concurrencia que
existe cuando el comportamiento
concurrente es especificado por el diseador
del programa
Definiciones
Programa concurrente
Es aquel que define acciones que pueden realizarse
simultaneamente
Programa paralelo
Es un programa concurrente diseado para su
ejecucin en un ambiente paralelo
Programa distribuido
Es un programa paralelo diseado para su ejecucin
en una red de procesadores autnomos que no
comparten memria
Definiciones
Caractersticas de la concurrencia
Indeterminismo
No existe un orden total, sin un orden parcial, no se puede
determinar como ser la ejecucin