框架篇 linux網路I O Reactor模型

2021-10-11 02:36:04 字數 1758 閱讀 1024

網路i/o,可以理解為網路上的資料流。通常我們會基於socket與遠端建立一條tcp或者udp通道,然後進行讀寫。單個socket時,使用乙個執行緒即可高效處理;然而如果是10k個socket連線,或者更多,我們如何做到高效能處理?

程序(執行緒)的阻塞

檔案描述符

linux訊號處理

在零拷貝機制篇章已介紹過使用者空間和核心空間緩衝區,這裡就省略了

epoll的高效能

非同步io的概念是要求無阻塞i/o呼叫。前面有介紹到i/o操作分兩階段:r1等待資料準備好。r2從核心到程序拷貝資料。雖然epoll在2.6核心之後採用mmap機制,使得其在r2階段不需要複製,但是它在r1還是阻塞的。因此歸類到同步io

reactor的中心思想是將所有要處理的i/o事件註冊到乙個中心i/o多路復用器上,同時主線程/程序阻塞在多路復用器上;一旦有i/o事件到來或是準備就緒,多路復用器返回,並將事先註冊的相應i/o事件分發到對應的處理器中

聊聊linux 五種io模型:

[2]網路io模型:

[3]網路io:

[4]5種網路io模型:

[5]epoll原理詳解及epoll反應堆模型:

日拱一卒,功不唐捐

今日推薦

我的伺服器接連被黑客攻擊,我好難

導致mysql索引失效的幾種常見寫法

Linux 驅動篇 字元驅動裝置01(框架篇)

定義乙個file operations結構體型別的變數 並填充owner函式 open函式 write函式 static int drvledopen struct inode inode,struct file file static ssize t drvledwrite struct file...

網路篇 Linux通用操作

網路篇 如何檢視埠?netstat 常用指令 tunlp 常用配合命令 grep 常用形式 netstat tunlp grep 埠 a或 all 顯示所有連線中的socket c或 continuous 持續列出網路狀態 c或 cache 顯示路由器配置的快取資訊 f或 fib 顯示fib g或 ...

Linux 起飛篇 網路配置

如果你一開始裝centos是選擇橋接方式,那你可以溜了,你不配享有有逼格且更實用的配置 橋接相當於和你本機繫結,公用乙個ip,上網直接連線就好了,但是這樣的弊端也很明顯,高階大氣的集群你用不了,虛擬機器間互相訪問雨女無瓜 好了選擇nat模式的夥伴,請從這裡投胎 哦,不好意思,請往下看 裝逼是要付出代...