Escolar Documentos
Profissional Documentos
Cultura Documentos
Tema 1. Introducci
on.
Curso 14-15
Indice
Sistemas Concurrentes y Distribuidos.
Tema 1. Introducci
on.
Conceptos b
asicos y motivacion
Indice de la seccion
Seccion 1
Conceptos b
asicos y motivaci
on
1.1. Conceptos b
asicos relacionados con la concurrencia
1.2. Motivacion de la Programacion concurrente
Programaci
on paralela: Su principal objetivo es acelerar la
resolucion de problemas concretos mediante el aprovechamiento de
la capacidad de procesamiento en paralelo del hardware disponible.
Programaci
on distribuida: Su principal objetivo es hacer que
varios componentes software localizados en diferentes ordenadores
trabajen juntos.
Programaci
on de tiempo real: Se centra en la programacion de
sistemas que est
an funcionando continuamente, recibiendo entradas
y enviando salidas a/desde componentes hardware (sistemas
reactivos), en los que se trabaja con restricciones muy estrictas en
cuanto a la respuesta temporal (sistemas de tiempo real).
Indice de la seccion
Seccion 2
Modelo abstracto y consideraciones sobre el hardware
2.1. Consideraciones sobre el hardware
2.2. Modelo Abstracto de concurrencia
Mecanismos de implementaci
on de la concurrencia
Dependen fuertemente de la arquitectura.
Consideran una m
aquina virtual que representa un sistema
(multiprocesador o sistema distribuido), proporcionando base
homogenea para ejecucion de los procesos concurrentes.
Multiprogramaci
on: El sistema operativo gestiona como m
ultiples
procesos se reparten los ciclos de CPU.
Programaci
on distribuida: adem
as de la concurrencia, trata con
otros problemas como el tratamiento de los fallos, transparencia,
heterogeneidad, etc.
No se ver
a afectada cuando el funcionamiento de dicha instruccion
no dependa nunca de como se esten ejecutando otras instrucciones.
Ejemplos de sentencias at
omicas.
A modo de ejemplo de instrucciones atomicas, cabe citar muchas de las
instrucciones m
aquina del repertorio de un procesador, por ejemplo
estas tres:
Ejemplos de sentencias no at
omicas.
La mayora de las sentencias en lenguajes de alto nivel son tpicamente
no atomicas, por ejemplo, la sentencia
x := x + 1 ; { incrementa el valor de la variable entera x (en RAM) en una unidad }
Para ejecutarla , el compilador o interprete podra usar una secuencia
de tres sentencias como esta:
1. leer el valor de x y cargarlo en un registro r del procesador
2. incrementar en un unidad el valor almacenado en el registro r
3. escribir el valor del registro r en la variable x
El resultado (es decir, el valor que toma x justo al acabar) depende de
que haya o no haya otras sentencias ejecut
andose a la vez y
escribiendo simult
aneamente sobre la variable x. Podra ocurrir que el
valor al final no sea igual al valor al empezar m
as uno.
Abstraccion
El modelo basado en el estudio de todas las posibles secuencias de
ejecucion entrelazadas de los procesos constituye una abstracci
on
sobre las circunstancias de la ejecucion de los programas concurrentes,
ya que:
Se consideran exclusivamente las caracter
sticas relevantes que
determinan el resultado del c
alculo
Esto permite simplificar el an
alisis o creacion de los programas
concurrentes.
Se ignoran los detalles no relevantes para el resultado, como por
ejemplo:
las a
reas de memoria asignadas a los procesos
los registros particulares que est
an usando
el costo de los cambios de contexto entre procesos
la pol
tica del S.O. relativa a asignacion de CPU
las diferencias entre entornos multiprocesador o monoprocesador
....
SCD (13-14). Fecha creaci
on: September 22, 2014. P
agina: 17/48.
Sistemas Est
aticos
N
umero de procesos fijado en el fuente del programa.
Sistemas Din
amicos
N
umero variable de procesos/hebras que se pueden activar en
cualquier momento de la ejecucion.
Grafo de Sincronizacion
P3
P2
P5
P4
P6
P7
{ vars. compartidas }
process NomUno ;
var ....
{ vars. locales }
begin
....
{ codigo }
end
process NomDos ;
var ....
{ vars. locales }
begin
....
{ codigo }
end
...
{ otros procesos }
inicio
NomUno
NomDos
fin
{ vars. compartidas }
inicio
process NomP[ ind : a..b ] ;
var ....
{ vars. locales }
begin
....
{ codigo }
....
{ aqui ind vale a, a + 1,...,b }
end
...
{ otros procesos }
NomP[a]
....
NomP[b]
fin
El n
umero total de procesos ser
a b a + 1 (se supone que a <= b)
SCD (13-14). Fecha creaci
on: September 22, 2014. P
agina: 25/48.
procedure P1 ;
begin
A ;
fork P2 ;
B ;
join P2 ;
C ;
end
procedure P2 ;
begin
D ;
end
fork
join
D
C
Ventajas: pr
actica y potente, creacion din
amica.
Inconvenientes: no estructuracion, difcil comprension de los
programas.
SCD (13-14). Fecha creaci
on: September 22, 2014. P
agina: 26/48.
cobegin
B
C
coend
A
D
Indice de la seccion
Seccion 3
Exclusi
on mutua y sincronizaci
on
3.1. Concepto de exclusion mutua
3.2. Condicion de sincronizacion
Exclusion mutua
La restriccion se refiere a una o varias secuencias de instrucciones
consecutivas que aparecen en el texto de uno o varios procesos.
Ocurre exclusi
on mutua (EM) cuando los procesos solo funcionan
correctamente si, en cada instante de tiempo, hay como mucho uno
de ellos ejecutando cualquier instrucci
on de la secci
on crtica.
add ri , 1
P1
x
0
add r0 , 1
store r0 x
1
load r1 x
add r1 , 1
store r1 x
P0
load r0 x
P1
x
0
load r1 x
add r0 , 1
0
add r1 , 1
store r0 x
0
1
store r1 x
Condicion de sincronizacion.
En general, en un programa concurrente compuesto de varios procesos,
una condici
on de sincronizaci
on establece que:
no son correctas todas las posibles interfoliaciones de las
secuencias de instrucciones atomicas de los procesos.
{ Proceso Consumidor: lee x }
process Consumidor ;
var b : integer ; { no compartida }
begin
while true do begin
{ leer de mem. compartida }
b := x ; { sentencia L }
{ utilizar el valor leido }
UsarValor(b) ;
end
end
La secuencia v
alida asegura la condicion de sincronizacion:
Indice de la seccion
Seccion 4
Propiedades de los sistemas concurrentes
4.1. Correccion de un sistema concurrente
4.2. Propiedades de seguridad y vivacidad
Ejemplos:
Exclusi
on mutua: 2 procesos nunca entrelazan ciertas
subsecuencias de operaciones.
Ausencia Interbloqueo (Deadlock-freedom): Nunca ocurrir
a que
los procesos se encuentren esperando algo que nunca suceder
a.
Propiedad de seguridad en el Productor-Consumidor El
consumidor debe consumir todos los datos producidos por el
productor en el orden en que se van produciendo.
SCD (13-14). Fecha creaci
on: September 22, 2014. P
agina: 40/48.
Ejemplos:
Ausencia de inanici
on (starvation-freedom): Un proceso o grupo
de procesos no puede ser indefinidamente pospuesto. En alg
un
momento, podr
a avanzar.
Indice de la seccion
Seccion 5
Verificaci
on de programas concurrentes
5.1. Verificacion de programas concurrentes. Introduccion
5.2. Enfoque axiom
atico para la verificacion
process P ;
var x : integer := 0 ;
cobegin
x := x+1 ; x := x+2 ;
coend
Enfoque operacional: An
alisis exhaustivo de casos. Se chequea la
correccion de todas las posibles historias.
{Q}
Invariante global
Fin de la presentaci
on del tema 1.