欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

八、網(wǎng)絡服務I/O模型

8.1、四種的I/O模型

創(chuàng)新互聯(lián)公司是一家專業(yè)提供吉首企業(yè)網(wǎng)站建設,專注與成都做網(wǎng)站、網(wǎng)站制作、H5建站、小程序制作等業(yè)務。10年已為吉首眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

  在操作系統(tǒng)中,進程無法直接操作I/O設備,其必須通過系統(tǒng)調(diào)用請求kernel來協(xié)助完成I/O動作,而內(nèi)核會為每個I/O設備維護一個buffer。進程與I/O之間的通信模型如圖所示。

八、網(wǎng)絡服務I/O模型

  對于輸入而言,等待(wait)數(shù)據(jù)輸入至buffer需要時間,而從buffer復制(copy)數(shù)據(jù)至進程也需要時間。根據(jù)調(diào)用者與被調(diào)用者的不同就有四種I/0模型。

調(diào)用者處理措施:
  阻塞:進程發(fā)起 I/O 調(diào)用, 未完成之前,當前進程會被掛起;

  非阻塞:進程發(fā)起 I/O 調(diào)用,被調(diào)用函數(shù)完成之前不會阻塞當前進程,而是立即返回;

被調(diào)用者響應:

  同步:進程發(fā)起一個過程調(diào)用(功能、函數(shù))調(diào)用后,在沒得到結(jié)果之前,該調(diào)用將不會返回;
  異步:進程發(fā)起一個過程調(diào)用后,即使調(diào)用者不能立即得結(jié)果,但調(diào)用卻會返回,返回是未未完成     狀態(tài);當調(diào)用完成后,內(nèi)核會自行通知調(diào)用者結(jié)果已經(jīng) OK;

八、網(wǎng)絡服務I/O模型

8.2、五種網(wǎng)絡服務I/0模型

 根據(jù)等待模式不同,I/O動作可分為五種模式:

同步阻塞:進程會一直阻塞,直到數(shù)據(jù)拷貝完成。

八、網(wǎng)絡服務I/O模型

同步非阻塞:非阻塞IO通過進程反復調(diào)用IO函數(shù)(多次系統(tǒng)調(diào)用,并馬上返回);在數(shù)據(jù)拷貝的過程中,進程是阻塞的。

八、網(wǎng)絡服務I/O模型

I/O 復用:主要是select和epoll;對一個IO端口,兩次調(diào)用,兩次返回,比阻塞IO并沒有什么優(yōu)越性;關鍵是能實現(xiàn)同時對多個IO端口進行監(jiān)聽。

八、網(wǎng)絡服務I/O模型

異步IO:數(shù)據(jù)拷貝的時候進程無需阻塞。

八、網(wǎng)絡服務I/O模型

信號驅(qū)動:兩次調(diào)用,兩次返回。

八、網(wǎng)絡服務I/O模型

五種IO模型的比較:

八、網(wǎng)絡服務I/O模型

8.3、select/poll/epoll

select

  本質(zhì)上是通過設置或者檢查存放fd標志位的數(shù)據(jù)結(jié)構(gòu)來進行下一步處理,但是單個進程可監(jiān)視的fd數(shù)量被限制,即能監(jiān)聽端口的大小有限。對socket進行掃描時是線性掃描,即采用輪詢的方法,效率較低,需要維護一個用來存放大量fd的數(shù)據(jù)結(jié)構(gòu),這樣會使得用戶空間和內(nèi)核空間在傳遞該結(jié)構(gòu)時復制開銷大。 

# cat /proc/sys/fs/file-max    #查看可監(jiān)聽fd的數(shù)量

poll

  本質(zhì)上和select沒有區(qū)別,它將用戶傳入的數(shù)組拷貝到內(nèi)核空間,然后查詢每個fd對應的設備狀態(tài),其沒有最大連接數(shù)的限制,原因是它是基于鏈表來存儲的,但是同樣有一個缺點:大量的fd的數(shù)組被整體復制于用戶態(tài)和內(nèi)核地址空間之間,而不管這樣的復制是不是有意。 poll還有一個特點是“水平觸發(fā)”,如果報告了fd后,沒有被處理,那么下次poll時會再次報告該fd。

epoll

  支持水平觸發(fā)和邊緣觸發(fā),最大的特點在于邊緣觸發(fā),它只告訴進程哪些fd剛剛變?yōu)榫托钁B(tài),并且只會通知一次。 使用“事件”的就緒通知方式,通過epoll_ctl注冊fd,一旦該fd就緒,內(nèi)核就會采用類似callback的回調(diào)機制來激活該fd,epoll_wait便可以收到通知。

  其優(yōu)點是沒有最大并發(fā)連接的限制:能打開的FD的上限遠大于1024(1G的內(nèi)存上能監(jiān)聽約10萬個端口)效率提升:非輪詢的方式,不會隨著FD數(shù)目的增加而效率下降;只有活躍可用的FD才會調(diào)用callback函數(shù),即epoll最大的優(yōu)點就在于它只管理“活躍”的連接,而跟連接總數(shù)無關。使用內(nèi)存拷貝方式,利用mmap()文件映射內(nèi)存加速與內(nèi)核空間的消息傳遞;即epoll使用mmap減少復制開銷。 

  

名稱欄目:八、網(wǎng)絡服務I/O模型
標題URL:http://chinadenli.net/article18/jhjodp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管網(wǎng)站建設響應式網(wǎng)站面包屑導航網(wǎng)站排名網(wǎng)頁設計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設