新聞中心
linux是今天被廣泛應(yīng)用的作業(yè)系統(tǒng)中最受歡迎的一種。隨著其今日的普及,Kernel的驅(qū)動(dòng)開發(fā)是必不可少的。實(shí)際上,網(wǎng)絡(luò)、磁盤、設(shè)備驅(qū)動(dòng)作為Operating System的核心,對(duì)于OS的性能有著重要意義。所以,為了獲得高性能,優(yōu)化Linux驅(qū)動(dòng)代碼是必不可少的,其中優(yōu)化延時(shí)尤為重要。下面我們將討論如何優(yōu)化linux驅(qū)動(dòng)延時(shí)。

首先,我們要根據(jù)自己的應(yīng)用場(chǎng)景,綜合考慮CPU、內(nèi)存和IO處理能力,以確定合理的延時(shí)策略,而非恣意給出延時(shí)。其次,對(duì)于重復(fù)頻繁的操作,應(yīng)使用“自旋”方式。自旋也稱為強(qiáng)準(zhǔn)備,也就是等到有可操作資源時(shí)立即跳出循環(huán),而不需要進(jìn)行進(jìn)行實(shí)質(zhì)性的等待。同時(shí),在可能容易觸發(fā)中斷時(shí),也可以使用“輕中斷”。輕中斷在操作系統(tǒng)中指在操作系統(tǒng)控制訪問內(nèi)存前要求快速確認(rèn)中斷已經(jīng)響應(yīng),以便之后無需等待而直接執(zhí)行正常的指令序列。
此外,linux驅(qū)動(dòng)中盡量避免使用頻繁的系統(tǒng)調(diào)用,如read,write等系統(tǒng)調(diào)用本身往往比較耗時(shí),若利用好緩存或直接使用內(nèi)存來存取數(shù)據(jù),可以有效地避免調(diào)用系統(tǒng)函數(shù),從而降低系統(tǒng)的耗時(shí)。
最后,對(duì)于新的內(nèi)核,利用新的API更新內(nèi)核可以改善應(yīng)用程序性能。例如,Linux內(nèi)核在Linux 2.6及以上中,提供了針對(duì)延時(shí)優(yōu)化的API delay_usecs(),能夠通過函數(shù)內(nèi)無需使用全局變量計(jì)數(shù),更有利于延時(shí)優(yōu)化。使用時(shí),只需修改以下代碼:
//原始代碼
udelay( WAIT_TIME);
//優(yōu)化后
delay_usecs(WAIT_TIME);
綜上所述,在Linux驅(qū)動(dòng)編程中,為了獲得高性能,優(yōu)化延時(shí)技巧是非常必要的。這些技巧包括:根據(jù)應(yīng)用場(chǎng)景綜合考慮CPU、內(nèi)存和IO處理能力,重復(fù)頻繁的操作使用自旋,觸發(fā)中斷時(shí)使用輕中斷,盡量避免使用頻繁的系統(tǒng)調(diào)用,并且利用新的API更新內(nèi)核,可有效地優(yōu)化Linux驅(qū)動(dòng)延時(shí)。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)站名稱:Linux驅(qū)動(dòng)延時(shí)優(yōu)化技巧(linux驅(qū)動(dòng)延時(shí))
URL分享:http://www.5511xx.com/article/cocsdcj.html


咨詢
建站咨詢
