Está en la página 1de 23

2.

3 Sincronización:
Relojes físicos,
relojes lógicos, usos
de la sincronización

1
Sincronización.
“La sincronización es la coordinación de procesos que
se ejecutan simultáneamente para completar una tarea,
con el fin de obtener un orden de ejecución correcto y
evitar así estados inesperados”.
“La sincronización de relojes en un sistema distribuido
consiste en garantizar que los procesos se ejecuten en
forma cronológica, y a la vez respetando el orden de los
eventos dentro del sistema”.

2
Relojes físicos.
Los relojes físicos son relojes que: Deben ser iguales
(estar sincronizados). No deben desviarse del
tiempo real más allá de cierta magnitud. En ciertos
sistemas es importante la hora real del reloj:

• Se precisan relojes físicos externos (más de uno).


• Se deben sincronizar: Con los relojes del mundo
real.
3
Relojes físicos.
• Cada computador tiene un reloj hardware, que consta de:
• Un cristal de cuarzo que oscila a una frecuencia bien
definida: Según el tipo y forma del cristal, y la tensión
que soporta.
Un registro contador.
Un registro constante.
• El registro contador se decrementa con cada oscilación:
Cuando llega a cero, genera una interrupción (tick de reloj),
y
El registro contador se reinicia al valor del registro
constante.

4
Relojes lógicos.
Imita a un reloj normal a partir del reloj hardware.
• Necesita:
Una fecha y hora de origen: P. ej. en UNIX: 00:00 del 1 de
enero de 1970.
Número de ticks desde esa fecha:
Al arrancar pide la fecha y hora actual.
Calcula el nº de ticks desde la fecha de origen.
Con cada tick, incrementa el nº de ticks y recalcula la fecha
actual a partir de la fecha de origen.
• Básicamente, realiza un escalado (ticks -> segundos) y un
5
Relojes lógicos.
La principales funciones del software manejador del reloj son:
• Mantener la hora del día o tiempo real.
• Evitar que los procesos se ejecuten durante más tiempo del permitido.
• Mantener un registro del uso del CPU:
Controlar llamadas al sistema tipo "alarm" por parte de los procesos
del usuario.
Proporcionar cronómetros guardianes de partes del propio sistema.
Realizar resúmenes, monitoreo y recolección de estadísticas.

6
Algoritmos

7
El Algoritmo de Lamport .
Lamport define una relación temporal llamada: ocurre antes de. Por
ejemplo, (a → b) se interpreta como “a ocurre antes de b”. Para ilustrar esto,
consideremos la siguiente situación:

1. Si a y b son eventos del mismo proceso y a ocurre antes que b, entonces a


→ b es verdadero.
2. Si a es un envío de un mensaje por un proceso y b es la recepción del
mensaje por otro proceso, entonces
a → b es verdadero.
3. Eventos concurrentes: si a → b no es verdadero ni b → a tampoco.

Se requieren valores de tiempo para medir el tiempo:


• Si a → b, entonces C (a) < C (b).
• C siempre es creciente (se pueden hacer correcciones hacia adelante pero
no hacia atrás).
• Para todos los eventos a y b, tenemos que C(a) ≠ C (b). 8
Ejemplo:

9
El Algoritmo de Christian .
En este algoritmo un servidor central provee el tiempo
por petición del usuario, este servidor es conocido
como servidor del tiempo.

10
La operación de este algoritmo se resume a
continuación:
• Periódicamente cada máquina envía un mensaje para
solicitar el tiempo actual a este servidor.
• El servidor de tiempos responde con un mensaje que
contiene el tiempo actual t.
• La máquina emisora puede poner su tiempo en t +
Ttrans.

Un problema es el tiempo de propagación (Ttrans), el


cuál es distinto de 0 y varía según la carga en la red.
11
• Una estimación del tiempo de propagación sería realizado
por el reloj de la máquina emisora calculando (T1 - T0)/2
e incrementándolo al llegar el valor t.

• Si se conoce el tiempo que tarda el servidor en manejar la


interrupción (tI), la estimación de tiempo puede mejorar
con base en la siguiente expresión: (T1- T0 - tI) / 2.
12
El Algoritmo de Berkeley .

En este algoritmo una computadora maestra pide periódicamente a las


computadoras esclavas sus relojes y efectúa la sincronización.

Se calcula un tiempo promedio, el cual es tomado como base si este no se


diferencia más de un valor base. La computadora maestra envía los desfases
de tiempo a los esclavos para que avancen su reloj o disminuyan la
velocidad del mismo hasta lograr una reducción específica.

13
14
El Algoritmo de servidor
centralizado .

• Estealgoritmo simula un solo procesador para realizar la


exclusión. El algoritmo nombra a un proceso coordinador.
• En este algoritmo el coordinador da acceso a la región
crítica al que posea un token (lo devuelve al coordinador).
• Cuando un proceso sale de la región crítica libera el token.

15
• El coordinador permite la entrada enviando el
token o no (para lo cual no envía algo o puede
enviar un permiso denegado).

• Los problemas de este algoritmo se presentan


cuando el coordinador falla o cuando falla el
poseedor del token.

• Un solo coordinador en un gran sistema puede


ocasionar un cuello de botella. 16
17
Usos de la
sincronización

18
Memoria Caché

En los sistemas de archivos convencionales, el


fundamento para la memoria caché es la reducción
de la E/S de disco (lo que aumenta el rendimiento),
en un Sistema de Archivos Distribuidos el objetivo
es reducir el tráfico en la red.

19
Exclusión mutua
La condición de exclusión mutua se aplica a los
que no pueden ser compartidos. Por ejemplo,
varios procesos no pueden compartir
simultáneamente una impresora.
Los archivos de sólo lectura son un buen ejemplo
de recurso que puede compartirse. Si varios
procesos intentan abrir un archivo de sólo lectura
al mismo tiempo, puede concedérseles acceso al
archivo de forma simultánea. Un proceso no
necesita esperar nunca para acceder a un recurso
compartible
20
Algoritmos de Elección
Son los algoritmos para la elección de un proceso
coordinador, iniciador, secuenciador. El objetivo
de un algoritmo de elección es garantizar que
iniciada una elección ésta concluya con el
acuerdo de todos los procesos con respecto a la
identidad del nuevo coordinador.

21
Transacción atómica,
transacción o acción atómica:
• La principal propiedad de la transacción atómica es el “todo o
nada”: O se hace todo lo que se tenía que hacer como una unidad
o no se hace nada.
• Un esquema para garantizar la adecuada sincronización de la
información en sistemas centralizados como distribuidos es el uso
de transacciones.
• Las transacciones manejan 4 propiedades básicas: atómicas,
consistentes, aisladas y durables (ACID por sus siglas en inglés).

22
INTERBLOQUEO
Una situación de interbloqueo tiene lugar cuando ninguno
de los procesos que compiten por los recursos del sistema
o interactúan entre sí puede avanzar por carecer de algún
recurso o esperar a que se produzca algún tipo de evento.
El interbloqueo se define como el conjunto de procesos
que compiten por los recursos del sistema o bien se
comunican unos con otros. A diferencia de otros
problemas de la gestión de concurrente de procesos, para
el caso general no existe una solución eficiente.

23

También podría gustarte