新聞中心
Linux系統(tǒng)中的時(shí)鐘滴答是一種很重要的機(jī)制,它可用于測(cè)量時(shí)間、同步外部事件、管理進(jìn)程、以及處理計(jì)時(shí)器相關(guān)的事件。在許多情況下,時(shí)鐘滴答往往是系統(tǒng)構(gòu)建、網(wǎng)絡(luò)通信、設(shè)備驅(qū)動(dòng)、實(shí)時(shí)處理等應(yīng)用的核心基礎(chǔ),因此,了解時(shí)鐘滴答的意義和作用是十分必要的。

創(chuàng)新互聯(lián)建站自2013年起,先為京口等服務(wù)建站,京口等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為京口企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
1. 時(shí)鐘滴答的意義
時(shí)鐘滴答可以被理解為系統(tǒng)中一個(gè)定期的時(shí)間間隔,常見(jiàn)的時(shí)間間隔有10ms、100ms、1s等。這個(gè)時(shí)間間隔是由Linux內(nèi)核根據(jù)硬件時(shí)鐘頻率(一般為1~10MHz)來(lái)確定的,也就是說(shuō),時(shí)鐘滴答的產(chǎn)生是由硬件時(shí)鐘驅(qū)動(dòng)中斷,而不是由軟件程序控制的。
時(shí)鐘滴答是Linux系統(tǒng)中一個(gè)重要的概念,它對(duì)系統(tǒng)的運(yùn)行、時(shí)間測(cè)量、事件調(diào)度、信號(hào)處理等都有很大的影響。從系統(tǒng)運(yùn)行來(lái)看,時(shí)鐘滴答是在后臺(tái)運(yùn)行的,它的頻率高達(dá)1000Hz,不僅能夠精確地維護(hù)系統(tǒng)時(shí)間,還能夠在系統(tǒng)啟動(dòng)時(shí)完成許多基礎(chǔ)環(huán)境的建立工作;從信號(hào)處理來(lái)看,時(shí)鐘滴答能夠監(jiān)聽(tīng)并處理一系列的虛擬時(shí)鐘信號(hào),從而執(zhí)行相應(yīng)的操作;從事件調(diào)度來(lái)看,時(shí)鐘滴答能夠區(qū)分不同的時(shí)間片,并且分配CPU時(shí)間片給不同的進(jìn)程,從而保證系統(tǒng)的穩(wěn)定性。
2. 時(shí)鐘滴答的作用
時(shí)鐘滴答在Linux系統(tǒng)中具有多種應(yīng)用價(jià)值,如下所示:
(1)時(shí)間測(cè)量
時(shí)鐘滴答是系統(tǒng)中最基礎(chǔ)和最精確的時(shí)鐘源,在Linux內(nèi)核中,許多重要的時(shí)間參數(shù)都與時(shí)鐘滴答有關(guān),如系統(tǒng)時(shí)間、進(jìn)程執(zhí)行時(shí)間、內(nèi)核延遲、系統(tǒng)啟動(dòng)時(shí)間等。通過(guò)時(shí)鐘滴答的計(jì)時(shí),系統(tǒng)可以實(shí)現(xiàn)更加精確和準(zhǔn)確地測(cè)量時(shí)間,從而保證系統(tǒng)運(yùn)行的穩(wěn)定性和準(zhǔn)確性。
(2)同步外部事件
時(shí)鐘滴答不僅可以測(cè)量時(shí)間,還可以同步外部事件。在許多需要精確時(shí)間同步的應(yīng)用中,通過(guò)時(shí)鐘滴答的計(jì)時(shí)可以實(shí)現(xiàn)對(duì)外部事件的同步。例如,在網(wǎng)絡(luò)通信領(lǐng)域,時(shí)鐘滴答能夠協(xié)同網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)同步和時(shí)間同步,從而保證網(wǎng)絡(luò)傳輸?shù)臏?zhǔn)確性和穩(wěn)定性。
(3)管理進(jìn)程
時(shí)鐘滴答還可以用于管理進(jìn)程。在Linux系統(tǒng)中,每個(gè)進(jìn)程都有一個(gè)時(shí)間片,用于分配給該進(jìn)程可以運(yùn)行的時(shí)間。時(shí)間片的大小與系統(tǒng)的時(shí)鐘滴答有關(guān),不同的時(shí)間片大小會(huì)導(dǎo)致不同的進(jìn)程調(diào)度結(jié)果。通過(guò)時(shí)鐘滴答的計(jì)時(shí)和分配,系統(tǒng)可以更加合理和高效地管理各個(gè)進(jìn)程,從而保證系統(tǒng)的效率和穩(wěn)定性。
(4)處理計(jì)時(shí)器相關(guān)的事件
時(shí)鐘滴答還可以用于處理計(jì)時(shí)器相關(guān)的事件。在Linux系統(tǒng)中,計(jì)時(shí)器有許多種類(lèi),如周期性計(jì)時(shí)器、延遲計(jì)時(shí)器、超時(shí)計(jì)時(shí)器等。這些計(jì)時(shí)器都與系統(tǒng)的時(shí)鐘滴答有關(guān),通過(guò)時(shí)鐘滴答的計(jì)時(shí)和計(jì)算,系統(tǒng)可以實(shí)現(xiàn)對(duì)各種計(jì)時(shí)器的處理,從而保證系統(tǒng)的正常運(yùn)行。
在Linux系統(tǒng)中,時(shí)鐘滴答是一個(gè)至關(guān)重要的機(jī)制,它能夠影響系統(tǒng)的時(shí)間測(cè)量、事件調(diào)度、進(jìn)程管理和信號(hào)處理等方面。了解時(shí)鐘滴答的意義和作用可以幫助我們更好地理解Linux系統(tǒng)的運(yùn)行機(jī)制和性能特點(diǎn),從而提高系統(tǒng)的可靠性和效率。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專(zhuān)注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220代碼timeafter=3500什么意思
錯(cuò)誤代碼530什么意思
530表示用戶(hù)未逗銷(xiāo)登陸,對(duì)不起,更大客戶(hù)數(shù)從你的主機(jī)已經(jīng)連接,那么出現(xiàn)的這個(gè)原因就碼毀是您本地的ftp工具的問(wèn)題,或者是用戶(hù)本地的連接質(zhì)量不好導(dǎo)致山模游的。
博客園首頁(yè)聯(lián)系管理
jiffies相關(guān)時(shí)間比較函數(shù)time_after、time_before詳解
1. jiffies簡(jiǎn)介
首先,操作系統(tǒng)有個(gè)系統(tǒng)專(zhuān)用定時(shí)器(system timer),俗稱(chēng)滴答定時(shí)器,或者系統(tǒng)心跳。
全局變量jiffies取值為自操作系統(tǒng)啟動(dòng)以來(lái)的時(shí)鐘滴答的數(shù)目,數(shù)據(jù)類(lèi)型為 unsigned long volatile (32位無(wú)符號(hào)長(zhǎng)整型),更大取值是2^32-1。
2. jiffies與秒的轉(zhuǎn)換
將 jiffies轉(zhuǎn)換為秒,可采用公式:(jiffies/HZ) 計(jì)算。
將 秒轉(zhuǎn)換為jiffies,可采用公式:(seconds*HZ) 計(jì)算。
示例(本博客后面將介紹運(yùn)運(yùn)涉及到的time_before):
unsgned long delay = jiffies + 2*HZ;
while(time_before(jiffies, delay)); // 忙等待兩秒,占用CPU的一個(gè)核心,期間不執(zhí)行調(diào)度
3. jiffies的溢出介紹
當(dāng)時(shí)鐘中斷發(fā)生時(shí),jiffies值就加1。
假定HZ=100,那么1個(gè)jiffies等于1/100 秒,jiffies可記錄的更大秒數(shù)為(2^32 -1)/100=.95秒,約合497天或1.38年,
當(dāng)取值到達(dá)更大值時(shí)仍繼續(xù)加1,就變?yōu)榱?!
即HZ=100時(shí),連續(xù)累加的溢出時(shí)間是一年又四個(gè)多月,如果程序?qū)iffies的溢出沒(méi)有加以充分考慮,那么在連續(xù)運(yùn)行一年又四個(gè)多月后,這些程序還能夠穩(wěn)定運(yùn)行嗎?
4. 示例1,一個(gè) jiffies溢出造成程序邏輯出錯(cuò) 的示例
復(fù)制代碼
unsigned long timeout = jiffies + HZ/2; /* timeout in 0.5s */
/* do some work … */
do_somework();
/* then see whether we took too long */
if (timeout > jiffies) {
/* we did not time out, call no_timeout_handler() … */
no_timeout_handler();
} else {
/* we timed out, call timeout_handler() … */
timeout_handler();
}
復(fù)制代碼
本例的意圖:
從當(dāng)前時(shí)間起,如果在0.5秒內(nèi)源祥執(zhí)行完do_somework(),則調(diào)用no_timeout_handler()。如果在0.5秒后執(zhí)行完do_somework(),則調(diào)用timeout_handler()。
旁裂梁然后當(dāng)溢出時(shí)呢? 該意圖會(huì)被打破嗎?
假設(shè)程序開(kāi)始執(zhí)行前,timeout值已經(jīng)接近更大值(即2^32-1 ) ,jiffies的值是(timeout-HZ/2),
之后do_some_work執(zhí)行了挺久(超過(guò)0.5秒),jiffies的值也發(fā)生了溢出(jiffies做自增操作的中途超過(guò)了32位無(wú)符號(hào)數(shù)的更大值),
溢出后的值,可能是很小的一個(gè)數(shù)字,所以造成jiffies的值
日一二三四五六
314
2023
2728
搜索
找找看
谷歌搜索
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
我的標(biāo)簽
我的標(biāo)簽
linux(24)
系統(tǒng)編程(21)
C++(16)
BOOST(10)
ffmpeg(7)
更多
隨筆分類(lèi)
C++之QT(4)
C++之STL、Boost(12)
C++之語(yǔ)言與時(shí)俱進(jìn)(17)
C語(yǔ)言活用(9)
C語(yǔ)言自身(12)
GUI(3)
Linux驅(qū)動(dòng)(8)
Linux系統(tǒng)編程(32)
Linux應(yīng)用(13)
MCU和物聯(lián)網(wǎng)等(20)
RTOS(10)
shell 和 makefile(9)
uboot(3)
編程思維技巧(5)
編譯器特性(2)
操作系統(tǒng)(2)
電路-EDA設(shè)計(jì)(2)
電路-基礎(chǔ)知識(shí)(2)
調(diào)試篇(3)
匯編(1)
密碼學(xué)|安全|(2)
配置相關(guān)(8)
嵌入式外設(shè)相關(guān)(2)
設(shè)計(jì)模式(12)
數(shù)據(jù)結(jié)構(gòu)(3)
網(wǎng)絡(luò)(13)
我的程序人生(1)
音視頻(10)
隨筆檔案
2023年2月(3)
2023年1月(1)
2023年12月(5)
2023年11月(2)
2023年10月(1)
2023年8月(1)
2023年7月(2)
2023年5月(1)
2023年4月(6)
2023年3月(6)
2023年2月(6)
2023年1月(23)
2023年12月(11)
2023年11月(4)
2023年10月(29)
2023年9月(12)
2023年8月(12)
2023年5月(4)
2023年2月(6)
2023年1月(4)
2023年12月(2)
2023年11月(2)
2023年10月(3)
2023年8月(9)
2023年7月(2)
2023年6月(1)
2023年5月(1)
2023年4月(2)
2023年3月(5)
2023年2月(11)
2023年1月(6)
2023年1月(2)
2023年5月(1)
相冊(cè)
大話西游經(jīng)典照片(1)
閱讀排行榜
1. C++函數(shù)默認(rèn)參數(shù) 詳解(29043)
2. 玩轉(zhuǎn)Libmodbus(一) 搭建開(kāi)發(fā)環(huán)境(16605)
3. 玩轉(zhuǎn)Libmodbus(二) 寫(xiě)代碼體驗(yàn)(7565)
4. RTThread DFS文件系統(tǒng)使用: 基于使用SFUD驅(qū)動(dòng)的SPI FLASH之上的ELM FATFS文件系統(tǒng)(4537)
5. std(標(biāo)準(zhǔn)庫(kù))和STL(標(biāo)準(zhǔn)模板庫(kù))的關(guān)系(4149)
6. STM32CubeMX HAL庫(kù)串口: 使用DMA數(shù)據(jù)發(fā)送、使用DMA不定長(zhǎng)度數(shù)據(jù)接收(4016)
7. Arduino+ESP32 之 SD卡讀寫(xiě)(3673)
8. KEIL查看ARM-Cortex M架構(gòu)soc的內(nèi)核寄存器之 MSP(3668)
9. 圖解MQTT概念、mosquitto編譯和部署 ,寫(xiě)代碼,分別使用外網(wǎng)和本地服務(wù)器進(jìn)行測(cè)試(3275)
10. RT Thread的SPI設(shè)備驅(qū)動(dòng)框架的使用以及內(nèi)部機(jī)制分析(2787)
11. STM32的CCM RAM以及使用方式(2540)
12. vscode廢掉了,跳轉(zhuǎn)不到函數(shù)定義,無(wú)法自動(dòng)補(bǔ)全,重裝也沒(méi)用的解決辦法(2511)
13. jiffies相關(guān)時(shí)間比較函數(shù)time_after、time_before詳解(2508)
14. Arduino+ESP32 之 驅(qū)動(dòng)GC9A01圓形LCD(一),基于Arduino_GFX庫(kù)(2504)
15. 圖解連接阿里云(一)創(chuàng)建阿里云物聯(lián)網(wǎng)平臺(tái)產(chǎn)品和設(shè)備,使用MQTT.fx快速體驗(yàn)(2372)
16. MDK內(nèi)的KEEP關(guān)鍵字以及$$Base $$Limit(2358)
17. RT Thread SPI設(shè)備 使用(2246)
18. ESP32的Linux開(kāi)發(fā)環(huán)境搭建,將示例程序編譯、下載、運(yùn)行(2243)
19. AD設(shè)置過(guò)孔蓋油和過(guò)孔開(kāi)窗, 過(guò)孔塞油科普(2186)
20. Linux 串口工具 lsz lrz 移植(2172)
評(píng)論排行榜
1. 在KEIL下查看單片機(jī)編程內(nèi)存使用情況(2)
2. 玩轉(zhuǎn)Libmodbus(一) 搭建開(kāi)發(fā)環(huán)境(2)
3. C語(yǔ)言普通寫(xiě)法實(shí)現(xiàn):針對(duì)多次同步失敗的節(jié)能處理機(jī)制(2)
推薦排行榜
1. C++函數(shù)默認(rèn)參數(shù) 詳解(5)
2. 如何更好地謀生,從事嵌入式軟件開(kāi)發(fā)五年的感悟和職業(yè)焦慮(4)
3. Arduino+ESP32 之 SD卡讀寫(xiě)(2)
4. 玩轉(zhuǎn)Libmodbus(一) 搭建開(kāi)發(fā)環(huán)境(2)
5. Arduino+ESP32 之 驅(qū)動(dòng)GC9A01圓形LCD(一),基于Arduino_GFX庫(kù)(1)
最新評(píng)論
1. Re:在KEIL下查看單片機(jī)編程內(nèi)存使用情況
@HQ_嗨海 謝謝…
–一匹夫
2. Re:如何更好地謀生,從事嵌入式軟件開(kāi)發(fā)五年的感悟和職業(yè)焦慮
說(shuō)的不錯(cuò)
–Chance_21_12_12
3. Re:在KEIL下查看單片機(jī)編程內(nèi)存使用情況
感謝大佬
–HQ_嗨海
Copyright ? 2023 一匹夫
Powered by .NET 7.0 on Kubernetes
time after(這個(gè)沒(méi)有…)
after 在…之后, 在此銀慧…后面, 后來(lái), 過(guò)后
time 時(shí)間, 時(shí)侯
after time 余輝森答時(shí)間
time after time 一次又一次,屢次,無(wú)數(shù)次 多搏遲次, 反復(fù), 不斷地
系統(tǒng)時(shí)鐘怎么老是滴答滴答響?
肯定是裝了別的仿VISTA的軟件了.刪了就好了.
估計(jì)你安裝了其他桌面時(shí)鐘軟件,建議卸載刪除為好,可以用一些優(yōu)化軟件處理
關(guān)于linux 時(shí)鐘滴答的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專(zhuān)業(yè)從事成都網(wǎng)站制作設(shè)計(jì),高端小程序APP定制開(kāi)發(fā),成都網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣等一站式服務(wù)。
新聞標(biāo)題:Linux系統(tǒng)時(shí)鐘滴答:了解它的意義和作用(linux時(shí)鐘滴答)
網(wǎng)站URL:http://www.dlmjj.cn/article/ccoodcg.html


咨詢(xún)
建站咨詢(xún)
