Unix網(wǎng)絡(luò)編程中有哪些模型
Unix和Windows同樣是由美國的貝爾實(shí)驗(yàn)室所開發(fā)的獨(dú)立分時操作系統(tǒng),它的操作簡潔,界面優(yōu)化好,是編程人員必須熟悉理解的一類操作系統(tǒng)之一。而網(wǎng)絡(luò)編程是操作系統(tǒng)開發(fā)的一項重要內(nèi)容,尤其是在網(wǎng)絡(luò)編程中的I/O模型研究是非常重要的一項任務(wù),那么在Unix網(wǎng)絡(luò)編程中,都有哪些I/O模型呢?學(xué)習(xí)啦小編來告訴你
1. 信號驅(qū)動I/O模型
顧名思義,信號驅(qū)動模型就是在運(yùn)轉(zhuǎn)過程中會產(chǎn)生信號信息的一種I/O模型,當(dāng)我們在同樣的操作情況下,如果內(nèi)核為我們的相關(guān)操作已經(jīng)準(zhǔn)備好了數(shù)據(jù)信息,就會發(fā)送相關(guān)的SIGIO 信號, 在此基礎(chǔ)上我們能夠使用sigaction 安裝 SIGIO 信號的相關(guān)處理函數(shù),并實(shí)現(xiàn)接受數(shù)據(jù)報的功能。
2.異步I/O模型
所謂異步指的就是操作反應(yīng)方式和順序有些與眾不同,異步模型中,是內(nèi)核在進(jìn)行數(shù)據(jù)拷貝完畢之后才會通知我們完成了相關(guān)的操作。配合信號驅(qū)動的I/O模型,當(dāng)內(nèi)核工作完畢之后就能夠發(fā)送相關(guān)的操作信號,并通知我們進(jìn)行下一步的操作,這就是異步I/O模型。
3. 阻塞I/O模型
阻塞I/O模型是一類對無法滿足條件的數(shù)據(jù)進(jìn)行阻塞傳遞的一類模型,例如,當(dāng)計算機(jī)使用UDP函數(shù)recvfrom的時候,從這一類函數(shù)的內(nèi)核層次到應(yīng)用層、應(yīng)用層到內(nèi)核的相互調(diào)用的過程當(dāng)中,計算機(jī)會把數(shù)據(jù)的相關(guān)信息如大小、描述符等傳遞至內(nèi)核進(jìn)行審查,假如這時候的對應(yīng)緩沖區(qū)沒有數(shù)據(jù)存在,不滿足條件,就會導(dǎo)致函數(shù)卡在數(shù)據(jù)正在傳輸?shù)奈恢枚枞?,這個I/O模型就被稱為阻塞I/O模型。
4. 非阻塞I/O模型
非阻塞模型和阻塞模型是恰好相反的一類I/O模型,具體特征為,在同樣適用UDP函數(shù)recvfrom時,對數(shù)據(jù)的相關(guān)信息大小、描述符參數(shù)給內(nèi)核進(jìn)行判斷,假如對應(yīng)緩沖區(qū)沒有數(shù)據(jù),則將數(shù)據(jù)進(jìn)行返回處理,并且反復(fù)進(jìn)行這樣的操作,直到緩沖區(qū)有數(shù)據(jù)到來。
5. I/O復(fù)用模型
假如我們在進(jìn)行I/O模型設(shè)計的時候設(shè)計了一組套接字,只要在這組套接字中出現(xiàn)可讀、可寫或者直接錯誤的情況,select命令都會指派相關(guān)套接字進(jìn)行返回操作,出現(xiàn)這種情況的時候,我們能夠檢查套接字的狀態(tài)信息,查看它們的位置,這種類型的I/O模型就稱為復(fù)用I/O模型。
以上就是Unix網(wǎng)絡(luò)編程中能夠遇到和涉及到的五種I/O模型,當(dāng)然,計算機(jī)的編程知識非常繁雜,小編就不能夠?yàn)榇蠹以敿?xì)解讀了,希望大家看了文章以后能對大家有所幫助。
Unix網(wǎng)絡(luò)編程中有哪些模型
上一篇:無線路由要如何設(shè)置
下一篇:telnet端口的工作過程怎么樣