使用jiffies的時間比較函式time_after、time_before

一匹夫發表於2021-01-30

 

1. jiffies簡介

  首先,作業系統有個系統專用定時器(system timer),俗稱滴答定時器,或者系統心跳。

       全域性變數jiffies取值為自作業系統啟動以來的時鐘滴答的數目,在標頭檔案<linux/sched.h>中定義,資料型別為 unsigned long volatile (32位無符號長整型)。

 

2.  jiffies與秒的轉換

        將 jiffies轉換為秒,可採用公式:(jiffies/HZ)  計算。

        將 秒轉換為jiffies,可採用公式:(seconds*HZ)  計算。

 

3.  jiffies的溢位介紹

          當時鍾中斷髮生時,jiffies值就加1。

           假定HZ=100,1個jiffies等於1/100 秒,jiffies可記錄的最大秒數為(2^32 -1)/100=42949672.95秒,約合497天或1.38年,

           當取值到達最大值時仍繼續加1,就變為了0!

           即HZ=100時,連續累加的溢位時間是一年又四個多月,如果程式對jiffies的溢位沒有加以充分考慮,那麼在連續執行一年又四個多月後,這些程式還能夠穩定執行嗎?

 

4.  

 

 

.

相關文章