5种io模式
1)阻塞I/O(blocking I/O)
發(fā)起請求,等待數(shù)據(jù)報準(zhǔn)備好,拷貝數(shù)據(jù),數(shù)據(jù)返回指令
應(yīng)用程序調(diào)用一個IO函數(shù),導(dǎo)致應(yīng)用程序阻塞,等待數(shù)據(jù)準(zhǔn)備好。 如果數(shù)據(jù)沒有準(zhǔn)備好,一直等待….數(shù)據(jù)準(zhǔn)備好了,從內(nèi)核拷貝到用戶空間,IO函數(shù)返回成功指示。
2)非阻塞I/O?(nonblocking I/O)
輪訓(xùn)數(shù)據(jù)報什么時候準(zhǔn)備好,準(zhǔn)備好之后阻塞拷貝數(shù)據(jù),數(shù)據(jù)返回指令
3) I/O復(fù)用(select 和poll)?(I/O multiplexing)
就是應(yīng)用函數(shù)select poll epoll 監(jiān)聽就緒的設(shè)備 select就是遍歷查詢每個設(shè)備的就緒狀態(tài) 如果就緒再返回,接著阻塞拷貝數(shù)據(jù)
?
4)信號驅(qū)動I/O?(signal driven I/O (SIGIO))
5)異步I/O?(asynchronous I/O (the POSIX aio_functions))
?
首先來講一下linux的組成,linux的每一個對象都可以稱為文件,比如顯示器、?打印機、驅(qū)動程序等等,對于文件會有一個描述符叫做fd(file description)。
?
這個文章講的很好 http://blog.csdn.net/jay900323/article/details/18141217/
轉(zhuǎn)載于:https://www.cnblogs.com/bierxiaobia/p/5901366.html
總結(jié)
- 上一篇: JavaScript区分click事件和
- 下一篇: hdu 1005 1021 递归超限 找