亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1801 | 回復(fù): 5
打印 上一主題 下一主題

[內(nèi)核入門] 關(guān)于select和poll的問(wèn)題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-11-29 17:24 |只看該作者 |倒序?yàn)g覽
新手第一次發(fā)帖好緊張,也不知道這個(gè)問(wèn)題是不是太淺顯了,但是還希望各大牛能幫幫小弟。廢話不多說(shuō)

1.我使用系統(tǒng)調(diào)用select去檢測(cè)是否有設(shè)備文件可讀,首先運(yùn)行./monitor
此時(shí)打印的信息是,顯示無(wú)文件可讀(因?yàn)槲疫沒(méi)有執(zhí)行寫操作),這個(gè)可以理解。
2.說(shuō)道第一步的monitor,通過(guò)printk,發(fā)現(xiàn)底層驅(qū)動(dòng)的poll函數(shù)被調(diào)用了一次,記住僅僅是一次,我使用的dmesg命令查看的,
在這里有個(gè)問(wèn)題。因?yàn)槲以谕砩喜殚嗁Y料,有人說(shuō),隔一段時(shí)間會(huì)調(diào)用一次poll?
3.執(zhí)行完monitor后,我這邊的效果是進(jìn)入睡眠了,所以我就執(zhí)行write,寫數(shù)據(jù)進(jìn)去。此時(shí)monitor突然活了,也就是說(shuō)被喚醒了。因?yàn)槲以诘讓拥膚rite函數(shù)中實(shí)現(xiàn)了喚醒操作
這個(gè)也沒(méi)有問(wèn)題,之后,程序就跑完了。

現(xiàn)在我的理解是:select會(huì)去檢測(cè)一類設(shè)備文件,測(cè)試其是否可以讀寫,如果沒(méi)有則進(jìn)入休眠,記住如果需要用到它,一定記得喚醒。
如果有設(shè)備可讀寫呢?就不會(huì)進(jìn)入阻塞。那它的優(yōu)勢(shì)到底體現(xiàn)在什么地方呢?

這是我不解的地方,上面的理解也不知道有沒(méi)有錯(cuò)誤,還請(qǐng)各位指教!

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2013-11-29 18:29 |只看該作者
自己思考了一下。小小總結(jié)了一下,把心得發(fā)出來(lái),希望高人指點(diǎn)
以下內(nèi)容為我自己的理解,有誤之處,請(qǐng)指出。
1.假設(shè)有A、B、C、D四個(gè)設(shè)備文件
2.如果我們?cè)谝粋(gè)應(yīng)用程序中打開了這四個(gè)設(shè)備文件
3.如果這四個(gè)設(shè)備文件都不具備讀寫屬性的時(shí)候,那么該進(jìn)程阻塞
4.假如四個(gè)設(shè)備中,至少有一個(gè)設(shè)備文件是可讀或者可寫(這個(gè)由poll返回值表示)的話,那么改進(jìn)程將不會(huì)發(fā)生阻塞,同時(shí)select函數(shù)會(huì)返回具有可讀或是寫屬性的
設(shè)備文件的個(gè)數(shù)。值得注意的是:select函數(shù)會(huì)遍歷各個(gè)設(shè)備文件中的底層poll函數(shù),以探測(cè)其屬性。

那么,這樣做有什么原因呢?
1.在之前已經(jīng)提到過(guò),當(dāng)我們程序中的設(shè)備文件A不具讀寫屬性(我暫且這樣叫),而其他幾個(gè)是具有這種屬性的話。那么當(dāng)我們讀取設(shè)備文件A的時(shí)候,將會(huì)引起整個(gè)
進(jìn)程的阻塞,這樣將會(huì)使得BCD 四個(gè)設(shè)備文件也無(wú)法讀取,極大影響系統(tǒng)的執(zhí)行效率
2.當(dāng)引入poll機(jī)制的話, 那么在select函數(shù)的探測(cè)中,只要含有可讀寫設(shè)備文件,那么該進(jìn)程就不會(huì)阻塞,我們可以在進(jìn)程中,對(duì)各個(gè)設(shè)備文件進(jìn)行輪流read。
3.我用一個(gè)偽代碼來(lái)表示

app.c

1. fd_num = select (.......)
2.if(fd_num)
{
  read 1;
  read 2;
  read 3;
}

上面是我個(gè)人的理解,肯定有許多地方有問(wèn)題。
縱然如此,我還是有地方不懂:
1.我知道在真正的應(yīng)用中,肯定不是輪流去read,那么是如何做的呢?
2.即使是我們讀取到了fd_num,那又怎么樣呢?那又該如何知道哪些設(shè)備文件是已經(jīng)具有讀寫屬性的呢?linux肯定會(huì)有讀出這類設(shè)備文件的機(jī)制吧?
但是,很遺憾,我沒(méi)有找到。
在此懇請(qǐng)大神。

論壇徽章:
6
金牛座
日期:2013-10-08 10:19:10技術(shù)圖書徽章
日期:2013-10-14 16:24:09CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34獅子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亞洲杯之阿聯(lián)酋
日期:2015-05-09 14:36:15
3 [報(bào)告]
發(fā)表于 2013-11-30 11:57 |只看該作者
回復(fù) 2# wsshopping
1.在之前已經(jīng)提到過(guò),當(dāng)我們程序中的設(shè)備文件A不具讀寫屬性(我暫且這樣叫),而其他幾個(gè)是具有這種屬性的話。那么當(dāng)我們讀取設(shè)備文件A的時(shí)候,將會(huì)引起整個(gè)
進(jìn)程的阻塞,這樣將會(huì)使得BCD 四個(gè)設(shè)備文件也無(wú)法讀取,極大影響系統(tǒng)的執(zhí)行效率
2.當(dāng)引入poll機(jī)制的話, 那么在select函數(shù)的探測(cè)中,只要含有可讀寫設(shè)備文件,那么該進(jìn)程就不會(huì)阻塞,我們可以在進(jìn)程中,對(duì)各個(gè)設(shè)備文件進(jìn)行輪流read。


你的理解完全錯(cuò)誤,建議先從書上或者網(wǎng)絡(luò)上了解一下基本的基礎(chǔ)知識(shí),然后再看內(nèi)核代碼。網(wǎng)絡(luò)資料很多,隨便搜索一個(gè)http://www.jb51.net/article/37416.htm




   

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2013-11-30 12:18 |只看該作者
回復(fù) 3# 瀚海書香


    謝謝版主的回復(fù),我說(shuō)的第1點(diǎn)提到整個(gè)進(jìn)程阻塞指的是 阻塞IO方式 訪問(wèn)(并沒(méi)有引入select/poll)。這些也是我結(jié)合書本/網(wǎng)絡(luò) 產(chǎn)生的理解。你指的那個(gè)鏈接博文我看過(guò)了。可是并沒(méi)有說(shuō)明
這個(gè)問(wèn)題:

假如select返回了當(dāng)前可讀寫設(shè)備文件的個(gè)數(shù)num,那么我們?nèi)绾沃谰唧w哪些設(shè)備文件是可讀寫得呢?  (難道是一個(gè)一個(gè)去輪詢么?)


另外,我確實(shí)是結(jié)合書本來(lái)看的,或許有些地方描述的不清楚,版主,還請(qǐng)指點(diǎn)迷津,哪些地方理解有誤  謝謝。。

論壇徽章:
6
金牛座
日期:2013-10-08 10:19:10技術(shù)圖書徽章
日期:2013-10-14 16:24:09CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34獅子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亞洲杯之阿聯(lián)酋
日期:2015-05-09 14:36:15
5 [報(bào)告]
發(fā)表于 2013-11-30 12:27 |只看該作者
回復(fù) 4# wsshopping
假如select返回了當(dāng)前可讀寫設(shè)備文件的個(gè)數(shù)num,那么我們?nèi)绾沃谰唧w哪些設(shè)備文件是可讀寫得呢?  (難道是一個(gè)一個(gè)去輪詢么?)


select和poll的機(jī)制是去輪詢。
epoll是通過(guò)注冊(cè)回調(diào)的方式,不需要輪詢。
   

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2013-12-02 09:55 |只看該作者
回復(fù) 5# 瀚海書香


    好的,謝謝版主了。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP