日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程

I/O( INPUT OUTPUT),包括文件I/O、網(wǎng)絡(luò)I/O 。
計(jì)算機(jī)世界里的速度鄙視:

  • 內(nèi)存讀數(shù)據(jù):納秒級別 。
  • 千兆網(wǎng)卡讀數(shù)據(jù):微妙級別 。1微秒=1000納秒,網(wǎng)卡比內(nèi)存慢了千倍 。
  • 磁盤讀數(shù)據(jù):毫秒級別 。1毫秒=10萬納秒 ,硬盤比內(nèi)存慢了10萬倍 。
  • CPU一個時鐘周期1納秒上下,內(nèi)存算是比較接近CPU的,其他都等不起 。
CPU 處理數(shù)據(jù)的速度遠(yuǎn)大于I/O準(zhǔn)備數(shù)據(jù)的速度。
任何編程語言都會遇到這種CPU處理速度和I/O速度不匹配的問題!
在網(wǎng)絡(luò)編程中如何進(jìn)行網(wǎng)絡(luò)I/O優(yōu)化:怎么高效地利用CPU進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)處理???
一、相關(guān)概念從操作系統(tǒng)層面怎么理解網(wǎng)絡(luò)I/O呢?計(jì)算機(jī)的世界有一套自己定義的概念 。如果不明白這些概念,就無法真正明白技術(shù)的設(shè)計(jì)思路和本質(zhì) 。所以在我看來,這些概念是了解技術(shù)和計(jì)算機(jī)世界的基礎(chǔ) 。
1.1 同步與異步,阻塞與非阻塞理解網(wǎng)絡(luò)I/O避不開的話題:同步與異步,阻塞與非阻塞 。
拿山治燒水舉例來說,(山治的行為好比用戶程序,燒水好比內(nèi)核提供的系統(tǒng)調(diào)用),這兩組概念翻譯成大白話可以這么理解 。
  • 同步/異步關(guān)注的是水燒開之后需不需要我來處理 。
  • 阻塞/非阻塞關(guān)注的是在水燒開的這段時間是不是干了其他事 。
1.1.1 同步阻塞點(diǎn)火后,傻等,不等到水開堅(jiān)決不干任何事(阻塞),水開了關(guān)火(同步) 。

linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程


1.1.2 同步非阻塞點(diǎn)火后,去看電視(非阻塞),時不時看水開了沒有,水開后關(guān)火(同步) 。

linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程


1.1.3 異步阻塞按下開關(guān)后,傻等水開(阻塞),水開后自動斷電(異步) 。

linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程


網(wǎng)絡(luò)編程中不存在的模型 。
1.1.4 異步非阻塞按下開關(guān)后,該干嘛干嘛 (非阻塞),水開后自動斷電(異步) 。

linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程


1.2 內(nèi)核空間 、用戶空間
linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程


  • 內(nèi)核負(fù)責(zé)網(wǎng)絡(luò)和文件數(shù)據(jù)的讀寫 。
  • 用戶程序通過系統(tǒng)調(diào)用獲得網(wǎng)絡(luò)和文件的數(shù)據(jù) 。
1.2.1 內(nèi)核態(tài) 用戶態(tài)
linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程


  • 程序?yàn)樽x寫數(shù)據(jù)不得不發(fā)生系統(tǒng)調(diào)用 。
  • 通過系統(tǒng)調(diào)用接口,線程從用戶態(tài)切換到內(nèi)核態(tài),內(nèi)核讀寫數(shù)據(jù)后,再切換回來 。
  • 進(jìn)程或線程的不同空間狀態(tài) 。
1.2.2 線程的切換
linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程


用戶態(tài)和內(nèi)核態(tài)的切換耗時,費(fèi)資源(內(nèi)存、CPU)
優(yōu)化建議:
  • 更少的切換 。
  • 共享空間 。
1.3 套接字 – socket
linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程


  • 有了套接字,才可以進(jìn)行網(wǎng)絡(luò)編程 。
  • 應(yīng)用程序通過系統(tǒng)調(diào)用socket(),建立連接,接收和發(fā)送數(shù)據(jù)(I / O) 。
  • SOCKET 支持了非阻塞,應(yīng)用程序才能非阻塞調(diào)用,支持了異步,應(yīng)用程序才能異步調(diào)用
1.4 文件描述符 –FD 句柄
linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程



linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程



linux網(wǎng)絡(luò)配置命令 linux網(wǎng)絡(luò)配置的詳細(xì)過程

推薦閱讀