UbuntuのLinux manページによると
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.
ウェブスターのオンライン辞書によると、単調は以下を意味します:
2:独立変数または項の添字の値が増加しても、プロパティが増加しない、または減少しないというプロパティを持つ。
つまり、後方にジャンプしません。コードのタイミングを調整している場合、これは重要なプロパティになることがわかります。
ただし、通常バージョンと生バージョンの違いは明確ではありません。誰かがNTPがまだCLOCK_MONOTONICに影響を与える可能性があるかどうかに光を当てることはできますか?
CLOCK_MONOTONIC
はNTP時間調整による不連続性を経験することはありませんが、does NTPは局部発振器とアップストリームサーバー。
CLOCK_MONOTONIC_RAW
はローカルオシレーターであり、NTPによって制御されません。これは、NTPのせいであなたと戦っていないクロックに対して他の時間同期アルゴリズムを実装したい場合に非常に便利です。 ntpd(NTPプロトコルと最も広く普及しているNTPデーモンのリファレンス実装)は、時間調整が「穏やか」であると評価されていますが、絶対時間は穏やかであると言う方が正確です。クロックを500ppm回転させても構いません。これは、他の標準に対してクロック周波数を測定する立場にある場合、非常に劇的です。
CLOCK_MONOTONIC_RAW
のユーティリティは、pthread_timedwait_monotonic
などの機能がそのタイムベースを使用するオプションを提供するまで制限されます。
ntpd
は、差が特定のしきい値を下回っている場合、jumpになりません。代わりにadjtimeのような調整が使用され、CLOCK_MONOTONIC
およびCLOCK_REALTIME
(だがしかし CLOCK_MONOTONIC_RAW
、どうやら)。