46

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にどのように影響を与えることができるかについて、誰かが光を当てることができますか?

4

2 に答える 2

39

CLOCK_MONOTONICNTP の時間調整による不連続が発生することはありませんが、NTP がローカル オシレーターとアップストリーム サーバーの間に存在するエラーを学習するにつれて、頻度が変化します。

CLOCK_MONOTONIC_RAWNTP によって統制されていない単なるローカル オシレータです。これは、NTP のために競合していないクロックに対して、他の時刻同期アルゴリズムを実装したい場合に非常に便利です。ntpd (NTP プロトコルのリファレンス実装であり、最も広く普及している NTP デーモン) は時間調整に関しては「穏やか」であると言われていますが、絶対時間に関しては穏やかであると言う方が正確です。他の基準に対してクロック周波数を測定する立場にある場合、それはかなり劇的な500ppmでクロックをスルーしても構わないと思っています.

の有用性は、そのタイムベースを使用するオプションを提供するCLOCK_MONOTONIC_RAWような機能が提供されるまで制限されます。pthread_timedwait_monotonic

于 2013-01-11T01:51:23.840 に答える
2

ntpd差が特定のしきい値を下回っている場合、時間はジャンプしません。代わりに adjtime のような調整が使用され、 と の両方に影響CLOCK_MONOTONICしますCLOCK_REALTIME(明らかに ではありませんCLOCK_MONOTONIC_RAW)。

于 2013-01-11T01:43:33.637 に答える