Вы находитесь на странице: 1из 14

Sistemas Operativos Distribuidos

Sincronizacin en Sistemas Distribuidos

Sistemas Operativos Distribuidos

Ms compleja que en los centralizados


Propiedades
P i d d dde algoritmos
l it
di
distribuidos:
t ib id

Sincronizacin,
Concurrencia y
Transacciones

La informacin relevante se distribuye entre varias mquinas.


Se toman decisiones slo en base a la informacin local.
Debe evitarse un punto nico de fallo.
No existe un reloj comn.

Problemas a considerar:

Tiempo y estados globales.


Exclusin mutua.
Algoritmos de eleccin.
Operaciones atmicas distribuidas: Transacciones

Sistemas Operativos Distribuidos


2

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sincronizacin de Relojes Fsicos

Sistemas Operativos Distribuidos

Tiempo y Estados

Relojes hardware de un sistema distribuido no estn


sincronizados.
Necesidad de una sincronizacin para:
En aplicaciones de tiempo real.
Ordenacin natural de eventos distribuidos (fechas de ficheros).

Concepto de sincronizacin:

Relojes
Relojes Distribuidos
Relojes Lgicos

Mantener relojes sincronizados entre s.


Mantener relojes sincronizados con la realidad.

UTC: Universal Coordinated Time


Transmisin de seal desde centros terrestres o satlites.
Una o ms mquinas del sistema distribuido son receptoras de seal
UTC.
Sistemas Operativos Distribuidos
4

5-Sincronizacin

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


Algoritmo de Cristian
Servidor
de tiempos

Cliente
petici
n

tiempo
o

T0

T1

Algoritmo de Berkeley

Tiempo del manejador


de interrupciones

tiempo

Adecuado para sincronizacin con UTC.


Tiempo de transmisin del mensaje: (T1-T0)/2
Ti
Tiempo
en propagar ell mensaje:
j (T1
(T1-T0-I)/2
T0 I)/2
Valor que devuelve el servidor se incrementa en (T1-T0-I)/2
Para mejorar la precisin se pueden hacer varias mediciones y
descartar cualquiera en la que T1-T0 exceda de un lmite

Sistemas Operativos Distribuidos


5

Mara S. Prez

Fernando Prez
Jos Mara Pea

Protocolo de Tiempo de Red

3:00

3:00

3:00

3:00

2:50

+5

-20

3:00

3:25

3:00

+25
-10

3:25

Sistemas Operativos Distribuidos


6

2:50

+15

3:25

Mara S. Prez

2:50

Fernando Prez
Jos Mara Pea

Protocolo de Tiempo de Red

NTP (Network Time Protocol).

La sincronizacin entre cada par de elementos de la jerarqua:

Aplicable a redes amplias (Internet).


La latencia/retardo de los mensajes
j es significativa
g
y variable.

Objetivos:

El servidor de tiempo realiza un muestreo peridico de todas


las mquinas para pedirles el tiempo.
Calcula el tiempo promedio e indica a todas las mquinas que
avancen su reloj a la nueva hora o que disminuyan la
velocidad.
Si cae servidor: seleccin de uno nuevo (alg. de eleccin)

Permitir sincronizar clientes con UTC sobre Internet.


Proporcionar un servicio fiable ante fallos de conexin.
Permitir resincronizaciones frecuentes.
Permitir proteccin ante interferencias del servicio de tiempo.

Organizacin:

Modo multicast: Para redes LAN. Se transmite por la red a todos los
j pprecisin.
elementos de forma pperidica. Baja
Modo de llamada a procedimiento: Similar al algoritmo de Cristian.
Se promedia el retardo de transmisin. Mejor precisin.
Modo simtrico: Los dos elementos intercambian mensajes de
sincronizacin que ajustan los relojes. Mayor precisin.

Los mensajes intercambiados entre dos servidores son


datagramas UDP.

Jerarqua de servidores en diferentes estratos.


Los fallos se solventan por medio de ajustes en la jerarqua.
Sistemas Operativos Distribuidos
7

5-Sincronizacin

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


8

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


Causalidad Potencial

Relojes Lgicos (Algoritmo de Lamport)

En ausencia de un reloj global la relacin causa-efecto (tal como


precede a) es una posibilidad de ordenar eventos.
Relacin de causalidad potencial (Lamport)

eij = evento j en el proceso i


Si j < k entonces eij eik
Si ei=send(m) y ej=receive(m), entonces ei ej
La relacin es transitiva.

Mara S. Prez

Cada proceso P mantiene una variable entera LCP (reloj lgico)


Cuando un pproceso P ggenera un evento,, LCP=LCP+1
Cuando un proceso enva un mensaje incluye el valor de su reloj
Cuando un proceso Q recibe un mensaje m con un valor t:
LCQ=max(LCQ,t)+1

Que si a b entonces LCa < LCb


Pero LCa < LCb no implica
p a b (p
(pueden ser concurrentes))

Fernando Prez
Jos Mara Pea

Algoritmo de Lamport
No sincronizado

El algoritmo asegura:

Dos eventos son concurrentes (a || b) si no se puede deducir


entre ellos una relacin de causalidad potencial.
Sistemas Operativos Distribuidos
9

tiles para ordenar eventos en ausencia de un reloj comn.

Relojes lgicos slo representan una relacin de orden parcial.


Orden total entre eventos si se aade el nmero del
procesador.
Sistemas Operativos Distribuidos
10

Mara S. Prez

Fernando Prez
Jos Mara Pea

Relojes de Vectores (Mattern y Fidge)

Sincronizado

+1
+1

Para evitar los casos en los que LCa < LCb no implica a b.
Cada reloj es un array V de N elementos siendo N el nmero de
procesadores (nodos) del sistema.
sistema
Inicialmente Vi[j]=0 para todo i,j
Cuando el proceso i genera un evento Vi[i]=Vi[i]+1
Cuando en el nodo i se recibe un mensaje del nodo j con un vector
de tiempo t entonces:
para todo k: Vi[k]=max(Vi[k],t[k]) (operacin de mezcla) y
Vi[i]
[i]=V
Vi[i] + 1

Por medio de este mecanismo siempre es posible evaluar si dos


marcas de tiempo tienen o no relacin de precedencia.
Sistemas Operativos Distribuidos
11

5-Sincronizacin

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


12

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


Algoritmo de Mattern y Fidge
A (100)

(200)

B (300)

C (400)

Uso de los Relojes Lgicos


D (662)

(562)

La utilizacin de relojes lgicos (Lamport, Vectoriales o


Matriciales) se aplica a:
Mensajes peridicos de sincronizacin.
sincronizacin
Campo adicional en los mensajes intercambiados (piggybacked).

E (010)

(020)

(230) (242) F (252) (262)

G (286)

(276)

Por medio de relojes lgicos se pueden resolver:


Ordenacin de eventos (factores de prioridad o equitatividad).
Deteccin de violaciones de causalidad.
Multicast causal (ordenacin de mensajes).
mensajes)

H (001)

(002)

I (003) (024)

J(025) (026)

K (027)

AF (100)<(252)
(000)

B||J (300)<(025) AND (300)>(025)

Sistemas Operativos Distribuidos


13

Mara S. Prez

Fernando Prez
Jos Mara Pea

Estados Globales

Recoleccin de basura: Cuando un objeto deja de ser referenciado


por ningn elemento del sistema.
Deteccin de interbloqueos: Condiciones de espera cclica en grafos
de espera (wait-for graphs).
Deteccin de estados de terminacin: El estado de actividad o
espera no es suficiente para determinar la finalizacin de un proceso.

5-Sincronizacin

Mara S. Prez

Mara S. Prez

Fernando Prez
Jos Mara Pea

Snapshots

En un sistema distribuido existen ciertas situaciones que no es


posible determinar de forma exacta por falta de un estado
global:

Sistemas Operativos Distribuidos


15

Sistemas Operativos Distribuidos


14

Fernando Prez
Jos Mara Pea

El anlisis de los estados globales de un sistema se realiza por


medio de snapshots: Agregacin del estado local de cada
componente as como de los mensajes actualmente en
transmisin.
Debido a la imposibilidad de determinar el estado global de todo
el sistema en un mismo instante se define una propiedad de
consistencia en la evaluacin de dicho estado.
estado

Sistemas Operativos Distribuidos


16

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


Cortes Consistentes
Corte no consistente

p1

p2

p3

p1

Corte consistente
p2

m1

m2

m3
m4

Exclusin Mutua

m3

m4 ya ha
ll d
llegado

m4

m5

m5

Sistemas Operativos Distribuidos


17

Sistemas Operativos Distribuidos

m1

m2

m4 no se
ha enviado

p3

Mara S. Prez

Algoritmos
Algoritmos de
Exclusin Mutua

Fernando Prez
Jos Mara Pea

Exclusin Mutua

Exclusin Mutua

Mecanismo de coordinacin entre varios procesos concurrentes


a la hora de acceder a recursos/secciones compartidas.
Las soluciones definidas para estos problemas son:
Algoritmos centralizados.
Algoritmos distribuidos.
Algoritmos basados en marcas de tiempo.

Seguridad: Como mximo un proceso puede estar ejecutado en la


seccin crtica a la vez.
Vivacidad: Eventualmente se producen entradas y salidas en la
seccin crtica.
Ordenacin: Los procesadores acceden a la regin crtica en base a
unos criterios de ordenacin (causalidad temporal/Lamport).

No existen variables compartidas


Riesgo de interbloqueos
Riesgo de inanicin

5-Sincronizacin

Mara S. Prez

enter(): Acceso a la regin critica (bloqueo).


operations():
p
() Manipulacin
p
de los recursos compartidos.
p
exit(): Liberacin del recurso (despierta a procesos en espera).

Propiedades:

Problemtica:

Sistemas Operativos Distribuidos


19

Funciones bsicas de exclusin mutua:

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


20

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


Exclusin Mutua

Exclusin Mutua Centralizado

La evaluacin de los algoritmos de exclusin mutua se evala en


base a los siguientes factores:
Ancho de banda: Proporcional al nmero de mensajes transmitidos.
transmitidos
Retardo del cliente: En la ejecucin de cada una de las operaciones
enter()y en cada operacin exit().
Throughput del sistema: Ratio de acceso al recurso por una batera
de procesos que lo solicitan. Evala el retardo de sincronizacin
entre clientes.
Tolerancia a fallos: Comportamiento
p
del algoritmo
g
ante diferentes
modalidades de fallo.

El algoritmo ms simple:
Los clientes solicitan el acceso a un elemento de control que
ggestiona la cola de ppeticiones ppendientes.
Tres mensajes: enter, exit y OK .
No cumple necesariamente la propiedad de ordenacin.
0

1
OK

exit

Cola de Espera

OK

Cola de Espera

1 2

Sistemas Operativos Distribuidos


22

Exclusin Mutua Centralizado

1
Mara S. Prez

No hay respuesta
(bloquea al cliente)

Cola de Espera
Fernando Prez
Jos Mara Pea

enter

enter

Sistemas Operativos Distribuidos


21

2
Mara S. Prez

Fernando Prez
Jos Mara Pea

Exclusin Mutua Distribuida

Rendimiento:

Algoritmos distribuido de paso de testigo:

Ancho de banda:
El acceso al recurso implica
p dos mensajes
j ((aunque
q el recurso est
libre).

Retardo del cliente:

enter(): El retardo de transmisin de los dos mensajes.


exit(): Con comunicacin asncrona no implica retraso en cliente.

Throughput del sistema:

Se distribuyen los elementos en un anillo lgico.


Se circula un token qque ppermite el acceso a la regin
g critica.
El token se libera al abandonar la regin.
No cumple la propiedad de ordenacin
token

La finalizacin de un acceso a la regin critica implica un mensaje de


salida y un OK al siguiente proceso en espera.
espera

Tolerancia a fallos:
La cada del elemento de control es crtica (alg. de eleccin).
La cada de los clientes o la perdida de mensajes se puede solucionar
por medio de temporizadores.
Sistemas Operativos Distribuidos
23

5-Sincronizacin

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


24

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


Exclusin Mutua Distribuida

Exclusin Mutua con Relojes Lgicos

Rendimiento:

Algoritmo de Ricart y Agrawala: Usa relojes lgicos y broadcast


Pasos:

Ancho de banda:
El algoritmo
g
consume ancho banda de forma continua.

Un proceso que quiere entrar en seccin crtica (SC) enva mensaje


de solicitud a todos los procesos.
Cuando un proceso recibe un mensaje

Retardo del cliente:


La entrada en la seccin critica requiere de 0 a N mensajes.
La salida slo implica un mensaje.

Throughput del sistema:


La entrada del siguiente proceso tras la salida del que ocupa la regin
critica implica de 1 a N mensajes.

Tolerancia a fallos:
Perdida del token: Deteccin y regeneracin
Cada de un elemento del anillo: Reconfiguracin del anillo.

Sistemas Operativos Distribuidos


25

Mara S. Prez

23

Si menor que marca tiempo de su mensaje de solicitud: enva OK.


En caso contrario ser l el que entre.

Cuando un proceso recibe todos (N-1) los mensajes puede entrar.

Garantiza todas las propiedades incluida ordenacin

Fernando Prez
Jos Mara Pea

Exclusin Mutua con Relojes Lgicos


23

Si receptor no est en SC ni quiere entrar enva OK al emisor


Si receptor ya est en SC no responde
Si receptor desea entrar, mira marca de tiempo del mensaje:

Sistemas Operativos Distribuidos


26

Mara S. Prez

Fernando Prez
Jos Mara Pea

Exclusin Mutua con Relojes Lgicos


Rendimiento:

WANTED

Ancho de banda:

2
OK

Throughput del sistema:


Si dos procesos compiten por el acceso a la seccin critica ambos
habrn recibido N-2
N 2 respuestas
respuestas. El de menor reloj tendr la respuesta
del otro. Al salir ste el siguiente se indicar con slo 1 mensaje.

3
21

Tolerancia a fallos:
Retardo de respuesta elevado o perdida de mensajes: Se reduce por
medio de mensajes NO-OK (asentimientos negativos).

Los procesos 1 y 3 quieren acceder a la seccin crtica.


Los relojes lgicos son respectivamente 23 y 21.
Sistemas Operativos Distribuidos
27

5-Sincronizacin

Retardo del cliente:


La entrada en la seccin critica requiere de N-1 mensajes.
La salida no implica ningn mensaje.

23
WANTED

El pprotocolo consume 2(N-1)


( ) mensajes.
j N-1 ppara la ppeticin y N-1
respuestas. Si existen comunicacin multicast slo N mensajes.

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


28

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


Algoritmos de Votacin

Algoritmos de Votacin

Algoritmo de Maekawa: Algoritmos de votacin.


Anlogo
A
l
all algoritmo
l it dde relojes
l j l
lgicos
i
pero reduce
d
ell nmero

dde
mensajes:
El procesador elegido es aquel que obtiene la mitad ms 1 votos.
Cada procesador es consultado sobre la eleccin emitiendo un voto.
Para reducir el nmero de mensajes cada uno de los procesadores
que intentan acceder a la seccin critica tiene un distrito (Si), tal que:
Si S
Sj
para todo
t d 11i,jN
ij N
De esta forma slo se necesitan N mensajes.

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

Componente
Decisivo

Distrito de Sj

Distrito de Si
Sistemas Operativos Distribuidos
29

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


30

Mara S. Prez

Fernando Prez
Jos Mara Pea

Otras Variantes
Para solucionar los problemas de interbloqueo de los algoritmos
de acceso a regiones crticas en base a mecanismos de votacin
tradicionales (Maekawa) existen otras alternativas,
alternativas por ejemplo:
Saunders: Algoritmos de votacin con marcas de tiempo:
Previene problemas de interbloqueo entre 3 o ms procesos.
Permite retirar votos si la nueva peticin tiene una marca de tiempo
menor.

Sistemas Operativos Distribuidos


31

5-Sincronizacin

Mara S. Prez

Sistemas Operativos Distribuidos

Problemas de
Consenso
Algoritmos
Algoritmos de Eleccin
Consenso & Acuerdo

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


Algoritmos de Eleccin

Algoritmo del Matn

Son algoritmos diseados para problemas en los cuales uno de


los procesos ha de realizar una tarea especial:

Objetivo
Elige al procesador vivo con un ID mayor

Eleccin de un coordinador.
coordinador

Proceso ve que el coordinador no responde. Inicia una eleccin:


Estos mecanismos se activan tambin cuando el coordinador
ha fallado.

Enva mensaje de ELECCIN a procesos con ID mayor


Si ninguno responde: Se hace nuevo coordinador
Manda mensajes COORDINADOR a procesadores con ID menor

Si alguno responde con mensaje OK abandona la eleccin

Obj ti Eleccin
Objetivo:
El i nica
i
Si procesador recibe ELECCIN:
Si tiene ID menor, entonces responde OK e inicia eleccin (si todava
no lo haba hecho).
Sistemas Operativos Distribuidos
33

Fernando Prez
Jos Mara Pea

Mara S. Prez

Algoritmo del Matn


1

El
ec

ci
n

OK

6
3

6
3

1
2

1
2

5
Coordinador

OK

Fernando Prez
Jos Mara Pea

Sobre un anillo lgico de procesos se emite un mensaje de


eleccin.

1
2

Ele
cci
n

i
Eleccin
El

Mara S. Prez

Algoritmos en Anillo

Sistemas Operativos Distribuidos


34

Si un proceso recibe el mensaje:


Si el ID del mensaje es menor que el suyo, lo retransmite con el
suyo.
Si es mayor lo retransmite como tal.
Si es igual, entonces no retransmite y es el coordinador.

6
Coordinador

3
7

Sistemas Operativos Distribuidos


35

5-Sincronizacin

3
7

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


36

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


Algoritmo de Invitacin

Algoritmo de Invitacin

Problemtica de los algoritmos anteriores:


Se basan en timeouts: Retrasos de transmisin pueden causar la
p lideres.
eleccin de mltiples
La perdida de conexin entre dos grupos de procesadores puede
aislar permanentemente los procesadores.

Algoritmo de Invitacin, caracterstica:


Definicin de grupos de procesadores con lder nico.
Deteccin y agregacin de grupos.
grupos
Reconocimiento por parte del lder de los miembros del grupo.

Pasos:
Si un procesador detecta la
perdida del lder, entonces se
declara lder y forma su
propio grupo.
Peridicamente el lder de
cada grupo busca otros
lderes de otros grupos.
Dos grupos se unen por
medio
di dde mensajes
j dde
aceptacin:
Como respuesta a mensajes
de invitacin.
De forma explcita.

Sistemas Operativos Distribuidos


37

Mara S. Prez

Fernando Prez
Jos Mara Pea

Problema de consenso general: Los procesos intercambian


candidatos y cada elemento elige el mayoritario. Debe ser comn.
Consistencia interactiva: Cada proceso aplica un valor diferente y se
debe identificar el vector de valores usado por cada proceso.
Problema de los generales bizantinos: Por ejemplo, Qu pasa si un
proceso transmite valores diferentes a distintos procesos?

Los procesos del sistema pueden encontrase en dos estados:


Correcto: estado vlido.
Incorrecto: procesador cado o funcionando anmalamente.

5-Sincronizacin

5
4

accept

L
L

invitation

accept

invitation

invitation

[1] accept

[2] invitation

Mara S. Prez

4
Fernando Prez
Jos Mara Pea

Problema de Consenso General

Presentes en tareas en las cuales varios procesos deben


ponerse de acuerdo en una valor u operacin a realizar.

Mara S. Prez

Sistemas Operativos Distribuidos


38

Problemas de Consenso

Sistemas Operativos Distribuidos


39

L
invitation

Fernando Prez
Jos Mara Pea

Condiciones:
Terminacin: Cada proceso correcto fija un valor.
Acuerdo: El valor decidido es igual
g ppara todos los pprocesos correctos.
Integridad: Si todos los procesos correctos eligen el mismo valor
entonces dicho valor ser el vlido.
V=3

p1

Algoritmo
de
Consenso

V=3

p3

p2

p1

Algoritmo
de
Consenso

V=2

p4

V=5

Sistemas Operativos Distribuidos


40

p2

D=3

p3
Proceso
Cado

D=3

p4

D=3

Mara S. Prez

Fernando Prez
Jos Mara Pea

10

Sistemas Operativos Distribuidos


Consistencia Interactiva

Generales Bizantinos

Condiciones:

Error bizantino: Un proceso genera valores de forma arbitraria.

Terminacin: Cada proceso correcto fija un vector valores.


Acuerdo: El vector decidido es igual
g ppara todos los pprocesos correctos
Integridad: La posicin i-esima del vector se corresponde con el valor
propuesto por el proceso pi
V=3

p1

Algoritmo
de
Consistencia

V=3

p3

p2

V=2

p4

V=5

Sistemas Operativos Distribuidos


41

p1

D=(3,3,5,2)

p2

ataque

p4

Fernando Prez
Jos Mara Pea

TRAIDOR
retirada

retirada
ataque

ataque

ataque
retirada

ataque
TRAIDOR ataque

ataque

TRAIDOR

ataque=1
retirada=1

G3T

ataque

ataque

retirada

TRAIDOR
C
retirada
ataque
retirada

ataque

ataque=1
retirada=1
ataque

D =(3,3,5,2)

Mara S. Prez

D =(3,3,5,2)

Algoritmo
de
Consistencia
p3
Proceso
Cado

ataque

ataque

ataque=2
retirada=1

Sistemas Operativos Distribuidos


42

C
ataque

ataque
ataque

ataque

retirada
ataque
Mara S. Prez

L
ataque=2
retirada=1
Fernando Prez
Jos Mara Pea

Transacciones

Sistemas Operativos Distribuidos

Transacciones
Concurrentes
Operaciones
Operaciones Atmicas

Conjuntos de operaciones englobadas dentro de un bloque cuya


ejecucin es completa.
Cumplen las propiedades ACID:
Atomicity (Atomicidad): La transaccin se realiza completa o no se
realiza nada.
Consistency (Consistencia): Los estados anterior y posterior a la
transaccin son estados estables (consistentes).
Isolation
I l ti (Aislamiento):
(Ai l i t ) LLos estados
t d iintermedios
t
di dde lla ttransaccin
i
son slo visibles dentro de la propia transaccin.
Durability (Durabilidad): Las modificaciones realizadas por una
transaccin completada se mantienen.
Sistemas Operativos Distribuidos
44

5-Sincronizacin

Mara S. Prez

Fernando Prez
Jos Mara Pea

11

Sistemas Operativos Distribuidos


Transacciones

Transacciones Concurrentes

La gestin de transacciones admite tres operaciones:

beginTransaction(): Comienza un bloque de operaciones


qque corresponden
p
a una transaccin.
endTransaction(): Concluye el bloque de operaciones que
conforman la transaccin. Todas las operaciones se completan.
abortTransaction(): En cualquier punto se aborta la
transaccin y se regresa al estado anterior al comienzo de
transaccin.

Se dispone de tres cuentas corrientes A, B y C con saldos 100,


200 y 300 respectivamente.
Las operaciones sobre una cuenta son:

balance=A.getBalance(): Obtener el saldo.


A.setBalance(balance): Modificar el saldo.
A.withdraw(amount): Retirar una cierta cantidad.
A.deposit(amount): Deposita una cierta cantidad.

Otra condicin para abortar la transaccin es debido a errores.

Sistemas Operativos Distribuidos


45

Mara S. Prez

Fernando Prez
Jos Mara Pea

Transacciones Concurrentes

Sistemas Operativos Distribuidos


46

Mara S. Prez

Fernando Prez
Jos Mara Pea

Transacciones Concurrentes

Actualizacin perdida:

Recuperaciones inconsistentes:

bal=B.getBalance()

bal=B.getBalance()

A.withdraw(100)

B.setBalance(bal*1.1)

B.setBalance(bal*1.1)

B.deposit(100)

A.withdraw(bal*0.1)

C.withdraw(bal*0.1)

bal=B.getBalance() 200

<suma de saldos>

A.withdraw(100) 0
bal=B.getBalance() 200

tot=A.getBalance() 0

B.setBalance(bal*1.1) 220

tot+=B.getBalance() 300

B.setBalance(bal*1.1) 220

tot+=C.getBalance() 500

A.withdraw(bal*0.1) 80

B.deposit(100) 400
C.withdraw(bal*0.1) 280

Sistemas Operativos Distribuidos


47

5-Sincronizacin

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


48

Mara S. Prez

Fernando Prez
Jos Mara Pea

12

Sistemas Operativos Distribuidos


Transacciones Concurrentes

Cerrojos

La problemtica de las transacciones concurrentes se debe a:

Cada objeto compartido por dos procesos concurrentes tiene


asociado un cerrojo.

Operaciones de lectura y escritura simultnea.


Varias operaciones
p
de escritura simultnea.

El cerrojo se cierra al comenzar el uso del objeto.


objeto
El cerrojo se libera al concluir la operacin.

La alternativa es la reordenacin de las operaciones a lo que se


denominan operaciones secuenciales equivalentes.
Los mtodos de resolucin aplicados son:
C
Cerrojos
j (Locks):
(L k ) Aplicados
A li d sobre
b llos objetos
bj t afectados.
f t d
Control de concurrencia optimista: Las acciones se realizan sin
verificacin hasta que se llega a un commit.
Ordenacin en base a marcas de tiempo.
Sistemas Operativos Distribuidos
49

Mara S. Prez

El uso de cerrojos puede ser definido a diferentes niveles del


objeto a controlar (niveles de granularidad).
Modelos de cerrojo:
Lectura
Escritura

Los cerrojos son susceptibles de sufrir interbloqueos.

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos


50

Cerrojos

Mara S. Prez

Fernando Prez
Jos Mara Pea

Interbloqueos

Actualizacin perdida:
bal=B.getBalance()

bal=B.getBalance()

B.setBalance(bal*1.1)

B.setBalance(bal*1.1)

Un interbloqueo se produce cuando varios procesos compiten


por cerrojos de forma cclica:
Deteccin de interbloqueos: Grafos de espera.
espera
A

bal=B.getBalance()200
lock

Lb

T
bal=B.getBalance()200

Lb

lock
wait

B.setBalance(bal*1.1)220 Lb
unlock

bal=B.getBalance()200

Lb

B.setBalance(bal*1.1)220
Sistemas Operativos Distribuidos
51

5-Sincronizacin

Mara S. Prez

Fernando Prez
Jos Mara Pea

B
Prevencin de interbloques: Cierre de todos los cerrojos de una
transaccin antes de comenzar (Poco eficiente).
Resolucin de interbloqueos: Lo ms habitual es por medio de
Timeouts y abortando la transaccin propietaria del cerrojo.
Sistemas Operativos Distribuidos
52

Mara S. Prez

Fernando Prez
Jos Mara Pea

13

Sistemas Operativos Distribuidos


Control de Concurrencia Optimista
Muy pocas operaciones concurrentes tiene conflictos entre s.

Control de Concurrencia Optimista


T1

Trabajo

T2

Di i i dde una operacin


Divisin
i en:
Fase de trabajo: Los objetos usados por la transaccin pueden ser
copiados en valores tentativos. Una lectura tome este valor si
existe sino el ltimo valor validado. Las escrituras se realizan
siempre sobre los valores tentativos.
Fase de validacin: Al cerrar la transaccin se verifica colisiones con
otras transacciones.
transacciones
Fase de actualizacin: Los valores tentativos son copiados como
valores validados.

Sistemas Operativos Distribuidos


53

5-Sincronizacin

Mara S. Prez

Fernando Prez
Jos Mara Pea

T3

Validacin

Actualizacin

T4

Validacin:
Validacin hacia atrs: Se anula una transaccin si otra transaccin
activa escribe un valor que sta lee.
Validacin hacia delante: Todos los procesos de escritura realizados
anulan
l a llas ttransacciones
i
que llos llean.

Problemtica:
Si la fase de validacin falla la transaccin se aborta y se reinicia.
Puede causar inanicin.
Sistemas Operativos Distribuidos
54

Mara S. Prez

Fernando Prez
Jos Mara Pea

14

Вам также может понравиться