ハードウェアを導入したLinuxカーネルのjiffiesとその機能は、カーネルが時間を計算して管理するためのシステムタイマーを提供しますカーネルは、システムタイマーの周波数、すなわちティックレートを毎サイクルプリセットします。チェックを入れます。 Linuxカーネルは2.5カーネルから始まり、100から1000に頻度を上げます(もちろん、それは多くの利点といくつかの欠点をもたらします。)

jiffiesはシステム起動を記録するために使用されるカーネルのグローバル変数です。ビートの数たとえば、コンピューティングシステムが長時間稼働している場合は、jiffies /tick率を使用して計算できます。 jiffはファイル内で定義されています。

extern unsigned long volatile jiffies;

タイムアウトを設定するには、jiffを使用できます。

unsigned long timeout = jiff + tick_rate * 2; //2秒後のタイムアウト

if(time_before(jiffies、timeout)){

//タイムアウトはありません

else <

//タイムアウトしました

}

カーネルには、ビート数を比較するための4つのマクロが用意されています。これらのマクロは、ファイルで定義されています。

time_before(unknown、known)

time_after(不明、既知)

time_before_eq(不明、既知)

time_after_eq(不明、既知)

比較を避けるためにこれらのマクロを使用してください過度の巻き戻しの問題が原因で発生します。

システムタイマーの他に、時間に関連したクロックがあります。リアルタイムクロック(RTC)は、システム時間を保存するために使用されるハードウェアクロックです。システムの起動時に、カーネルはRTCを読み取ることによって起動します。 Wall Timeを初期化し、それをRTCの主な役割であるxtime変数に格納します。

Copyright © Windowsの知識 All Rights Reserved