Académique Documents
Professionnel Documents
Culture Documents
FUNDAMENTOS
DE LA CONCURRENCIA
Ingeniera en Informtica
Contenidos
Introduccin
ProgramacinConcurrente
Bibliografa
Programcin Concurrente
Concurrent Programming
ProgramacinConcurrente
Contenidos
Introduccin
ProgramacinConcurrente
Qu es la concurrencia?
ProgramacinConcurrente
Concurrencia
ProgramacinConcurrente
Concurrencia
simultnea
arquitecturas paralelas
procesamiento paralelo
algoritmos paralelos
programacin paralela
ProgramacinConcurrente
Dnde se encuentra la
concurrencia?
ejemplos?
ProgramacinConcurrente
Concurrencia inherente o
potencial
ProgramacinConcurrente
Programa y Proceso
ProgramacinConcurrente
10
Procesos
Independientes
Cooperantes
ProgramacinConcurrente
11
Programacin Concurrente
Disciplina que se encarga del estudio de las
notaciones que permiten especificar la ejecucin
concurrente de las acciones de un programa, as
como las tcnicas para resolver los problemas
inherentes a la ejecucin concurrente (comunicacin
y sincronizacin)
ProgramacinConcurrente
12
Programacin Concurrente
Hilo
Aparicin de lenguajes de alto nivel que da soporte a la P.C.
La aparicin de Internet
ProgramacinConcurrente
13
Programacin concurrente
ProgramacinConcurrente
14
Contenidos
Introduccin
ProgramacinConcurrente
15
Beneficios de la programacin
concurrente
Velocidad de ejecucin
Sistemas de control
Tecnologas web
Aplicaciones basadas en interfaces de usuarios
Simulacin
SGDB
ProgramacinConcurrente
16
Contenidos
Introduccin
ProgramacinConcurrente
17
Concurrencia y arquitecturas
hardware
ProgramacinConcurrente
18
Sistemas monoprocesador
el sistema operativo
el propio ejecutable (gracias
al compilador) -> runtime
scheduler (RTSS)
Variables compartidas
ProgramacinConcurrente
19
Sistemas multiprocesador o
sistemas paralelos
ProgramacinConcurrente
20
Sistemas estrechamente
acoplados
Ventaja:
Inconveniente:
ProgramacinConcurrente
21
Sistemas estrechamente
acoplados
ProgramacinConcurrente
22
ProgramacinConcurrente
23
escalabilidad ilimitada
aumento de fiabilidad:
ProgramacinConcurrente
24
Sistemas distribuidos
ProgramacinConcurrente
25
Contenidos
Introduccin
ProgramacinConcurrente
26
Especificacin de ejecucin
concurrente
Cmo especificarlo?
Lenguaje concurrente
ProgramacinConcurrente
27
Condiciones de Bernstein
Sea
ProgramacinConcurrente
28
Condiciones de Bernstein
ProgramacinConcurrente
29
De forma automtica
ProgramacinConcurrente
30
ProgramacinConcurrente
31
abstraccin de la concurrencia?
ProgramacinConcurrente
32
Abstraccin de la concurrencia
ProgramacinConcurrente
33
Lenguajes concurrentes
ProgramacinConcurrente
34
Sentencia concurrente:
cobegin
P; Q; R
coend;
type vector is
array(1..10) of int;
var a,b,c : vector;
a := b*c + 2*a;
P(i);
Tuberas (unix):
grep palabra | sort | lpr
Instrucciones vectoriales:
35
Contenidos
Introduccin
ProgramacinConcurrente
36
Indeterminismo
ProgramacinConcurrente
37
La programacin
secuencial define un
orden total de las
instrucciones
Ante un conjunto de
datos de entrada el flujo
de ejecucin es siempre
el mismo
ProgramacinConcurrente
38
ProgramacinConcurrente
39
Indeterminismo
ProgramacinConcurrente
40
Indeterminismo: ejemplo
ProgramacinConcurrente
41
No determinismo
ProgramacinConcurrente
42
Contenidos
Introduccin
ProgramacinConcurrente
43
Problemas inherentes a la
programacin concurrente
Verificacin
Exclusin mutua
Condicin de sincronizacin
ProgramacinConcurrente
44
Exclusin mutua
ProgramacinConcurrente
45
Exclusin mutua
ProgramacinConcurrente
46
Condicin de sincronizacin
ProgramacinConcurrente
47
Condicin de sincronizacin
ProgramacinConcurrente
48
Contenidos
Introduccin
ProgramacinConcurrente
49
Verificacin de programas
concurrentes
ProgramacinConcurrente
50
Peculiaridades de los
programas concurrentes
ProgramacinConcurrente
51
Verificacin de programas
concurrentes
ProgramacinConcurrente
52
Verificacin de programas
concurrentes
Exclusin mutua
Condicin de sincronizacin
Interbloqueo (pasivo) - deadlock
ProgramacinConcurrente
53
Anlisis de algoritmos
concurrentes
...
ProgramacinConcurrente
54