Linux I O多路轉接 poll模型

2021-08-02 21:56:11 字數 702 閱讀 2556

1.poll模型屬於i/o多路轉接模型,是對select模型的一種優化;

int  poll(struct pollfd *fds,nfd_t  nfds,int timeout);

2.poll的優點:

①poll使用陣列儲存檔案描述符,所以能描述的檔案描述個數在理論上沒有上限;

②poll將輸入輸出型引數進行了分離,因此使用時不需要重新設定;

③不要求計算最大檔案描述符加1的值,處理大數目檔案描述符時比select的速度快;

3.poll的缺點:

①poll是系統呼叫,每次都要將檔案描述符數字組從使用者態拷貝到核心態,開銷很大;

②雖然poll在理論上對描述的檔案描述個數沒有上限,但每次呼叫poll,都要遍歷所有的檔案描述符,當數量很多時,開銷很大,會降低效能和效率;

4.實現乙個poll伺服器,監控輸入:

#include

#include

int main()} }

}}

return

0;}

結果如圖所示: 

Linux I O多路轉接poll

不同與select使用三個點陣圖來表示三個fdset的方式,poll使用 乙個 pollfd的指標實現。poll函式和select函式的任務相似 等待一組檔案描述符來準備執行i 0。引數 1 第乙個引數 fds struct pollfd 2 第二個引數 nfds nfds用來表示要監視檔案描述符的...

Linux I O多路轉接poll技術

上篇部落格i o多路轉接select技術筆者已經為大家詳細介紹了select函式的使用方式以及特點。我們在文章最後總結的時候我們提到,select雖然已經很大程度上解決了i o過程中等待的問題,但是由於函式本身介面設計的不友好 能夠檢測的檔案描述符有上限,以及函式多次迴圈遍歷的效率問題導致selec...

Linux I O多路轉接select

系統提供select函式來實現多路復用輸入 輸出模型,那為什麼提供select函式?首先要知道乙個概念,一次i o分兩個部分 等待資料就緒 進行i o 減少等待資料的的比重,增加i o的比重就可以達到高效伺服器的目的。select工作原理就是減少等的比重,同時監控多個檔案描述符 或者說檔案控制代碼 ...