tick

二つの時間概念
• ハードウェア時刻
– RTC (Real Time Clock)
– コンピュータの電源が入っていないときでも、
バッテリーを用いて計測
• システム時刻
– Software Clockとも
– 起動時にRTCを参照して現在時刻を設定
以後は、タイマ割り込み時にインクリメント
tick (clock tick)
• 時分割処理の契機となるタイマ割り込み
– 時計の音「チクタク(tick-tack)」から
• 伝統的に10msとされる
– 環境や条件によって異なり、変更も可能
• Linux kernel 2.6では1ms
– 1tickが10msから離れる毎に時計の精度が低下
adjtimex(8)
• 時間に関係するカーネル変数を変更
• より正確なtickを刻むのに必要
– 1tick = 10.0msと 1tick = 9.96msでは?
• 一日8640000tick * 0.04 ms = 345.6sec ≒ 6分
adjtime(2)
• システム時刻を調整
– 時間は連続的でなければならない
• 12:25:05だったのに12:24:38になってはいけない
– 徐々にシステム時刻を調整
• システム時刻12:25:05、本来の時刻が12:24:05
1分経つ間に、本来の1秒毎に0.5秒しか変化させない
hwclock
• ハードウェア時刻とシステム時刻の同期
– ハードウェア時刻からシステム時刻を設定
– システム時刻からハードウェア時刻を設定
• /etc/adjtime
– ハードウェアクロックは正確ではないが
「不正確さ」は予想の範疇
– 規則的な時間のずれを記載