日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

jiffies:内核中的时间观念

發(fā)布時(shí)間:2023/12/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jiffies:内核中的时间观念 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

jiffies在內(nèi)核中是一個(gè)全局變量,聲明包含在#include <linux/jiffies.h>中,

幾個(gè)內(nèi)核中常用的的概念:

1. HZ

內(nèi)核常量,ARM架構(gòu)HZ=100,X86架構(gòu)HZ=1000

例如HZ=100,表示硬件定時(shí)器1秒鐘給CPU發(fā)送100個(gè)定時(shí)器中斷信號(hào)

每發(fā)生一次中斷的時(shí)間間隔為10ms

注意:不同的環(huán)境HZ的值都是可能不一樣的,我曾經(jīng)遇到過(guò)一個(gè)TI的開發(fā)板,他的jiffies比較特殊一點(diǎn),HZ = 128表示1秒,所以大家使用的時(shí)候,一定要確認(rèn)好HZ的值

2. jiffies_64, jiffies

?jiffies_64是內(nèi)核全局變量,64位,unsigned long long,

記錄自開機(jī)以來(lái)發(fā)生了多少次的定時(shí)器中斷,每發(fā)生一次,"自動(dòng)"加1?

jiffies也是內(nèi)核全局變量,32位,unsigned long,值取得jiffies_64 的低32位,每發(fā)生一次定時(shí)器中斷,同樣"自動(dòng)"加1,一般用來(lái)記錄流失時(shí)間(時(shí)間間隔)

注意:只要在內(nèi)核代碼中看到j(luò)iffies,就等于此刻為當(dāng)前時(shí)間

由于在內(nèi)核中經(jīng)常使用的jiffies,下邊給出一個(gè)小例子(本代碼只是一個(gè)使用jiffies的框架,具體使用,只需做稍微的修改) ? ? ?
?參考代碼:

unsigned long timeout = jiffies + 5*HZ;

說(shuō)明:

?jiffies:表示當(dāng)前時(shí)間

5*HZ:時(shí)間間隔為5秒

timeout:表示5秒以后的時(shí)間,也就是超時(shí)時(shí)間

?參考代碼:判斷是否超時(shí)

?unsigned long timeout = jiffies + 5*HZ;
? ? ? ...
? ? ? ...
?... //若干條代碼,代碼執(zhí)行需要時(shí)間
if (jiffies > timeout)
超時(shí)
else
? ? ? ? 沒有超時(shí)
? ? ?
?解決方法:

if(time_after(jiffies, timeout)) {
? ? ? 超時(shí)
? ? ? } else {
? ? ? 沒有超時(shí)
? ? ? }//此函數(shù)不需要死機(jī),只需要用sourceinsignt查看內(nèi)核大神們?cè)趺词褂眉纯?#xff0c;里面很多都是經(jīng)典的用法


總結(jié)

以上是生活随笔為你收集整理的jiffies:内核中的时间观念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。