Linux IO模型
IO操作步驟
(1)發起IO請求:IO請求一般需要請求特殊資源(如磁碟、RAM、檔案、網路),當資源被上一個使用者使用沒有被釋放時,IO請求就會被阻塞,直到能夠使用這個資源。
(2)實際IO操作:真正進行資料接收(資料複製)。
IO分類
步驟1(發起IO請求):分為阻塞IO和非阻塞IO,區別主要是看發起IO請求是否阻塞程式。
1、應用程式呼叫後,不能立即返回的稱為阻塞IO,即資源不可用時,IO請求一直阻塞,直到反饋結果(有資料或超時)。
2、能立即返回的稱為非阻塞IO,資源不可用時,IO請求離開返回,返回資料標識資源不可用。
步驟2(實際IO操作):分為同步IO與非同步IO,區別主要看實際IO操作是否阻塞程式。
1、在將資料從核心拷貝到使用者空間時,將資料拷貝到應用緩衝區期間是否阻塞,也就是說,如果實際IO讀寫阻塞請求程式(應用阻塞在傳送或接收資料的狀態,直到資料成功傳輸或返回失敗),那麼就是同步IO。
2、如果不阻塞,而是作業系統幫你做完IO操作再將結果返回給你(應用傳送或接收資料後立刻返回,資料寫入OS快取,由OS完成資料傳送或接收,並返回成功或失敗的資訊給應用),那麼就是非同步IO。
前4種屬於同步IO,最後一種才是非同步IO。雖然(2)(3)(4)種IO是非阻塞IO,但其實也只是同步非阻塞,不能算非同步
相關文章
- linux的IO模型Linux模型
- 【IO】Linux下的五種IO模型Linux模型
- Linux中的IO模型介紹Linux模型
- Linux網路程式設計之IO模型Linux程式設計模型
- IO模型模型
- IO模型學習(一)IO模型分類模型
- 圖解Linux的IO模型和相關技術圖解Linux模型
- io模型 WSAAsyncSelect模型
- 一頓飯的事兒,搞懂Linux5種IO模型Linux模型
- IO通訊模型(三)多路複用IO模型
- 【NIO系列】——之IO模型模型
- (四)五種IO模型模型
- WinSock 重疊IO模型模型
- 如何給女朋友解釋什麼是Linux的五種IO模型?Linux模型
- 從作業系統層面理解Linux下的網路IO模型作業系統Linux模型
- NIO(二)淺析IO模型模型
- 五種網路io模型模型
- 圖解四種 IO 模型圖解模型
- 五種傳統IO模型模型
- 今天我們來聊Java IO模型,BIO、NIO、AIO三種常見IO模型Java模型AI
- IO通訊模型(二)同步非阻塞模式NIO(NonBlocking IO)模型模式BloC
- Linux IO排程方法Linux
- 簡述Linux磁碟IOLinux
- Linux C 檔案IOLinux
- Linux檔案IO操作Linux
- 高效能IO模型淺析模型
- 【OS】5種網路IO模型模型
- 【網路IO系列】IO的五種模型,BIO、NIO、AIO、IO多路複用、 訊號驅動IO模型AI
- 網路IO模型-非同步選擇模型(Delphi版)模型非同步
- 漫話:如何給女朋友解釋什麼是Linux的五種IO模型?Linux模型
- 框架篇:見識一下linux高效能網路IO+Reactor模型框架LinuxReact模型
- Linux程式設計學習筆記 | Linux IO學習[2] – 標準IOLinux程式設計筆記
- 通過IO模型帶來的思考模型
- 網路程式設計之IO模型程式設計模型
- 從io模型到ppc,tpc,reactor,preactor模型React
- (三)Redis 執行緒與IO模型Redis執行緒模型
- 大壓力 小資料IO模型模型
- 高階IO模型之kqueue和epoll模型
- JAVA進階之IO模型深入解析Java模型