日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入解析IOCP

發布時間:2024/4/11 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入解析IOCP 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?1.?介紹

1.1?高并發服務器

(1)要求大規模的連接/會話可能同時進行

(2)列子:Web服務器,?郵件服務器

?

1.2?線程池架構

(1)?每個連接分配一個線程,將導致過多的線程。

(2)?線程消耗內存,比如堆棧等等。

(3)?操作系統創建和關閉線程,都將花費很多的時間在線程之間的切換

?

2.?線程模型

2.1?基于會話模型

(1)?每個線程服務于一個客戶端,比如HTTP會話。

(2)?線程被用于狀態跟蹤和CPU調度。

(3)?活躍線程的數量等于并發客戶端會話的數量

2.2?基于I/O模型

(1)?將狀態跟蹤從CPU調度中分離出來。

(2)?線程是所有同質,僅為I/O調用保持狀態。

(3)?一個線程可以服務于不同的會話,在不同的時刻。

(4)?一個會話可以被服務,通過不同的線程,在不同的時刻。

(5)?因此,從一個線程不是專門對于一個會話,僅僅專門對于一個I/O請求處理。

3.?基于I/O的線程調度

?

3.1?并發限制

(1)?線程是和CPU綁定

最大活躍線程的個數?==?CPU個數

(2)?線程是和I/O綁定

最大的工作線程個數?>=?I/O并行個數

(3)?根據實驗/基準設置

3.2?線程池大小

(1)?線程是和CPU綁定

等于并發限制數

(2)?線程是和I/O綁定

最大的工作線程個數?>=?I/O并行個數

(3)?根據實驗/基準設置

3.3?查詢系統信息

typedef?struct?_SYSTEM_INFO?{

union?{

DWORD?dwOemId;

struct?{

WORD?wProcessorArchitecture;

WORD?wReserved;

};

};

DWORD?dwPageSize;

LPVOID?lpMinimumApplicationAddress;

LPVOID?lpMaximumApplicationAddress;

DWORD_PTR?dwActiveProcessorMask;

DWORD?dwNumberOfProcessors;

DWORD?dwProcessorType;

DWORD?dwAllocationGranularity;

WORD?wProcessorLevel;

WORD?wProcessorRevision;

}?SYSTEM_INFO;

4.?Win32?完成端口

4.1?什么是IOCP

是一個Win32?機制,方便于帶有控制并發的服務器的并發執行。

4.2?IOCP做什么

(1)?一個Win32?內核對象。

(2)?有用于Windows?NT?和?后面的執行。

(3)?幫助維持重復使用的內存池。

刪除線程創建/終結負擔

(4)?分配線程,控制并發

最小化的線程上下文切換

(5)?優化線程調度

提高CPU和內存緩沖的命中率

4.3?基本步驟

?

4.4?創建IOCP端口和關聯設備

4.5?IOCP內部結構

?

Note:

(1)?等待線程采用LIFO調度,減少了線程上下文的切換。只要I/O請求完成的夠慢,使一個線程能夠處理他們,系統就始終喚醒同一個線程。

(2)?當一個設備的異步I/O請求完成時,系統檢查是否有關聯了完成端口。如果是,那么系統就想該設備的完成端口I/O完成隊列加入完成的I/O請求。

(3)?IOCP是一個內核對象,它的值和I/O完成隊列的地址指針是相同的。

4.6?I/O完成隊列

(1)?當有一個異步I/O完成時,內核將檢查是否該設備已經關聯了某個IOCP。如果是,則一個完成數據包將被添加到完成隊列中。

?

(2)?獲取完成I/O請求

?

(3)?人工投遞I/O請求包

?

5.?線程管理

5.1?線程狀態類型

?

5.2?線程狀態轉換

?

6.?基于I/O的并行服務器

6.1?程序流程圖

?


總結

以上是生活随笔為你收集整理的深入解析IOCP的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。