新聞中心
poll技術(shù)是一種硬件驅(qū)動(dòng)程序或協(xié)議棧等機(jī)制循環(huán)檢查狀態(tài)的技術(shù)。與中斷(interrupt)技術(shù)比較,poll技術(shù)更加節(jié)能,因?yàn)樗梢栽诓灰鹣到y(tǒng)中斷的情況下檢測(cè)到狀態(tài)的變化。在linux系統(tǒng)中,poll技術(shù)的使用也越來(lái)越多。

poll技術(shù)的關(guān)鍵組件是poll()系統(tǒng)調(diào)用。poll()用于處理未向必經(jīng)文件(及其他描述符)請(qǐng)求讀取或?qū)懭霐?shù)據(jù)而沒(méi)有反饋結(jié)果的情況。poll()將所有這些描述符對(duì)象存入 epoll 系統(tǒng)調(diào)用中,它會(huì)一致地檢查(busy poll)這些描述符對(duì)象,并在發(fā)現(xiàn)任何改變時(shí)返回結(jié)果。
poll技術(shù)的應(yīng)用領(lǐng)域也非常廣泛,例如在硬編碼(hard-coded)型網(wǎng)絡(luò)驅(qū)動(dòng)程序中,它常常用于檢查設(shè)備收到的幀是否正確。此外,poll技術(shù)也廣泛應(yīng)用于多任務(wù)系統(tǒng),通過(guò)將多個(gè)任務(wù)放入一個(gè)epoll集中進(jìn)行檢查,可以減少碎片化任務(wù)檢查,從而提高系統(tǒng)的效率。
從上文可以看出,poll技術(shù)非常有用,它比中斷技術(shù)更加節(jié)能,這使得它在Linux系統(tǒng)中越來(lái)越受歡迎。下面是一個(gè)簡(jiǎn)單的poll技術(shù)的實(shí)現(xiàn)代碼:
/*poll技術(shù)的實(shí)現(xiàn)*/
#include
int pollfd;
struct pollfd fds;
void init_pollfd()
{
fds.fd = pollfd;
fds.events = POLLIN;
}
int main()
{
//我們分別檢查pollfd中文件描述符的可讀性,超時(shí)時(shí)間為60秒
int ret = poll(&fds, 1, 60000);
if (ret == 0)
{
//超時(shí),不做任何操作
}
else if (ret == -1)
{
//poll出錯(cuò)
}
else
{
if (fds.revents & POLLIN)
//pollfd中有數(shù)據(jù)可讀
// else if (fds.revents & POLLOUT)
// pollfd中可以寫(xiě)數(shù)據(jù)
}
return 0;
}
以上就是關(guān)于Linux驅(qū)動(dòng)中poll技術(shù)的一些深入探究。poll技術(shù)與中斷技術(shù)相比具有節(jié)能、檢測(cè)效率高等優(yōu)點(diǎn),因此在Linux系統(tǒng)中被廣泛應(yīng)用。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)站欄目:深入探究:Linux驅(qū)動(dòng)中的poll技術(shù)(linux驅(qū)動(dòng)poll)
當(dāng)前鏈接:http://m.fisionsoft.com.cn/article/ccdogej.html


咨詢
建站咨詢
