linux - check - set time ubuntu
¿Cuál es la diferencia entre CLOCK_MONOTONIC y CLOCK_MONOTONIC_RAW? (2)
De acuerdo con la página man de Linux bajo Ubuntu
CLOCK_MONOTONIC
Clock that cannot be set and represents monotonic time since
some unspecified starting point.
CLOCK_MONOTONIC_RAW (since Linux 2.6.28; Linux-specific)
Similar to CLOCK_MONOTONIC, but provides access to a raw hard‐
ware-based time that is not subject to NTP adjustments.
De acuerdo con el diccionario en línea webster Monotonic significa:
2: tener la propiedad de nunca aumentar o nunca disminuir a medida que aumentan los valores de la variable independiente o los subíndices de los términos.
En otras palabras, no saltará hacia atrás. Puedo ver que esto sería una propiedad importante si estuvieras sincronizando algún código.
Sin embargo, la diferencia entre la versión normal y la versión en bruto no está clara. ¿Alguien puede arrojar algo de luz sobre cómo el NTP aún puede afectar a CLOCK_MONOTONIC?
CLOCK_MONOTONIC
nunca experimenta discontinuidades debido a ajustes de tiempo de NTP, pero sí cambia en frecuencia a medida que NTP aprende qué error existe entre el oscilador local y los servidores ascendentes.
CLOCK_MONOTONIC_RAW
es simplemente el oscilador local, no disciplinado por NTP. Esto podría ser muy útil si desea implementar algún otro algoritmo de sincronización de tiempo contra un reloj que no está luchando contra usted debido a NTP. Mientras que ntpd (la implementación de referencia del protocolo NTP y el daemon NTP más extendido) tiene fama de ser "suave" con los ajustes de tiempo, es más exacto decir que es suave con el tiempo absoluto. Está dispuesto a mover el reloj en 500ppm, lo cual es bastante dramático si estás en posición de medir tu frecuencia de reloj contra algún otro estándar.
La utilidad de CLOCK_MONOTONIC_RAW
va a estar limitada hasta que instalaciones como pthread_timedwait_monotonic
ofrezcan una opción para usar esa base de tiempo.
ntpd
no causa el tiempo para saltar si la diferencia está por debajo de un cierto umbral. En su lugar, se utiliza el ajuste parecido a ajuste de tiempo, lo que afecta tanto a CLOCK_MONOTONIC
como a CLOCK_REALTIME
(pero no a CLOCK_MONOTONIC_RAW
, aparentemente).