Académique Documents
Professionnel Documents
Culture Documents
SistemasConcurrentes
Sistemas Distribuidos
SistemasConcurrentes
Definición de sistema distribuido
SistemasConcurrentes
Ventajas de los ss.dd.
SistemasConcurrentes
Más ventajas
SistemasConcurrentes
Características problemáticas de
un s.distr.
SistemasConcurrentes
Inconvenientes
SistemasConcurrentes
Hardware
SistemasConcurrentes
Software
SistemasConcurrentes
Software
SistemasConcurrentes
Software
SistemasConcurrentes
Software
SistemasConcurrentes
Aspectos de diseño
• Transparencia
Transparencia de Los recursos tienen nombres que no
localización denotan la máquina en la que están
Transparencia de Los recursos deben poder moverse de
migración una posición a otra sin tener que
cambiar sus nombres
Transparencia de Se debe poder mantener copias de los
réplica recursos sin que lo noten los usuarios
Transparencia de Varios usarios deben poder compartir
concurrencia recursos sin problemas
Transparencia de Los programas deberían aprovechar el
paralelismo paralelismo sin intervención de los
usuarios
SistemasConcurrentes
Aspectos de diseño
SistemasConcurrentes
Aspectos de diseño
SistemasConcurrentes
Aspectos de diseño
SistemasConcurrentes
Aspectos de diseño
SistemasConcurrentes
Comunicación en los ss.dd.
SistemasConcurrentes
Comunicación en los ss.dd.
SistemasConcurrentes
Comunicación en los ss.dd.
SistemasConcurrentes
Comunicación en los ss.dd.
SistemasConcurrentes
Comunicación en los ss.dd.
SistemasConcurrentes
Comunicación en los ss.dd.
• Tipo de conexión:
SistemasConcurrentes
Comunicación en los ss.dd.
SistemasConcurrentes
El modelo cliente-servidor
SistemasConcurrentes
El modelo cliente-servidor
SistemasConcurrentes
El modelo cliente-servidor
SistemasConcurrentes
El modelo cliente-servidor
SistemasConcurrentes
El modelo cliente-servidor
1 1
cliente 3 servidor cliente 2 (respuesta) servidor
4 3
kernel kernel kernel kernel
2
SistemasConcurrentes
Llamada a procedimiento remoto
(RPC)
SistemasConcurrentes
Llamada a procedimiento remoto
(RPC)
SistemasConcurrentes
Llamada a procedimiento remoto
(RPC)
SistemasConcurrentes
Llamada a procedimiento remoto
(RPC)
SistemasConcurrentes
Llamada a procedimiento remoto
(RPC)
SistemasConcurrentes
Llamada a procedimiento remoto
(RPC)
SistemasConcurrentes
Llamada a procedimiento remoto
(RPC)
SistemasConcurrentes
Comunicación en grupo
SistemasConcurrentes
Comunicación en grupo
SistemasConcurrentes
Comunicación en grupo
SistemasConcurrentes
Comunicación en grupo
0 3
0 1 2 3 4
4 2
SistemasConcurrentes
5
Comunicación en grupo
SistemasConcurrentes
Comunicación en grupo
0 B 1
A D
3 2
C
SistemasConcurrentes
Sincronización en los ss.dd.
SistemasConcurrentes
Sincronización en los ss.dd
SistemasConcurrentes
Sincronización de relojes
SistemasConcurrentes
Sincronización de relojes
SistemasConcurrentes
Sincronización de relojes
SistemasConcurrentes
Sincronización de relojes
• Tipos de relojes:
relojes lógicos: las máquinas tienen el mismo valor
de reloj, aunque marquen una hora distinta de la real
relojes físicos: las máquinas tienen el mismo valor de
reloj, y éste no debe desvíarse de la hora real más
alla de cierta magnitud
SistemasConcurrentes
Sincronización de relojes lógicos
SistemasConcurrentes
Sincronización de relojes lógicos
SistemasConcurrentes
Sincronización de relojes lógicos
0 0 0
6 A 8 10
12 16 20
18 24 B 30
24 32 40
30 40 50
36 48 C 60 Con los mensajes C y D
42 56 70 no se cumplen las reglas
48 D 64 80 anteriores!
54 72 90
60 80 100
SistemasConcurrentes
Sincronización de relojes lógicos
SistemasConcurrentes
Sincronización de relojes físicos
I, tiempo de procesamiento de
la petición
T1
SistemasConcurrentes
Sincronización de relojes físicos
• Y si conocemos el valor de I:
(T1-T0-I)/2
SistemasConcurrentes
Sincronización de relojes físicos
SistemasConcurrentes
Sincronización de relojes físicos
SistemasConcurrentes
Sincronización de relojes físicos
SistemasConcurrentes
Sincronización de relojes físicos
SistemasConcurrentes
Exclusión mutua
SistemasConcurrentes
Exclusión mutua
SistemasConcurrentes
Exclusión mutua
SistemasConcurrentes
Exclusión mutua
SistemasConcurrentes
Exclusión mutua
(Entra en R.C)
0 0 0
8 12 OK OK OK
8
1 2 1 2 1 2
12 OK
(Entra en R.C)
SistemasConcurrentes
Exclusión mutua
SistemasConcurrentes
Exclusión mutua
SistemasConcurrentes
Exclusión mutua
SistemasConcurrentes
Exclusión mutua
SistemasConcurrentes
Elección de coordinador
SistemasConcurrentes
Elección de coordinador
SistemasConcurrentes
Elección de coordinador
SistemasConcurrentes
Transacciones atómicas
SistemasConcurrentes
Transacciones atómicas
Retirar(cantidad, cuenta1)
Ingresar(cantidad, cuenta)
BEGIN_TRANSACTION
END_TRANSACTION
ABORT_TRANSACTION
SistemasConcurrentes
Transacciones atómicas
SistemasConcurrentes
Transacciones atómicas
x=0;
y=0; Bitácora Bitácora Bitácora
BEGIN_TRANSACTION x=0/1 x=0/1
x=0/1
x=x+1;
y=y+2; y=0/2 y=0/2
x=y*y;
END_TRANSACTION x=1/4
• Podemos hacer los cambios en los objetos reales, pues con la bitácora
tenemos información para deshacer: partimos del final hacia atrás
• La bitácora se almacenaría en almacenamiento estable
SistemasConcurrentes
Transacciones atómicas
SistemasConcurrentes
Control de concurrencia
SistemasConcurrentes
Control de concurrencia
SistemasConcurrentes
Control de concurrencia
SistemasConcurrentes
Bloqueos en SS.DD
SistemasConcurrentes
Bloqueos en SS.DD
SistemasConcurrentes
Bloqueos en SS.DD
SistemasConcurrentes
Bloqueos en SS.DD
• Ejemplo:
(0,8,0)
(0,4,6)
(0,2,3) 1 1 0
0 1 2 0 (0,5,7)
2 2
Máquina 0 Máquina 1 Máquina 2
SistemasConcurrentes
Bloqueos en SS.DD
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Tolerancia a fallos
SistemasConcurrentes
Sistemas distribuidos de
archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
• Una forma de evitar los problemas de actualización de
copias del archivo y duplicación es la de imponer que los
archivos sean inmutables => solo se permiten las
operaciones CREATE y READ
• Los servicios de archivos se pueden dividir en:
modelo de carga/descarga: solo se proporciona la lectura de un
archivo y la escritura del mismo. La lectura transfiere todo el
archivo de uno de los servidores de archivos al cliente. La
escritura transfieren el archivo completo en sentido contrario
modelo de acceso remoto: el servicio de archivos proporciona
un gran nº de operaciones (abrir, cerrar, leer, escribir, moverse
por el archivo...)
• El modelo de carga/descarga es conceptualmente simple
pero muchas veces el traslado del archivo completo es
absurdo SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes
Sistemas distribuidos de archivos
SistemasConcurrentes