999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

IOCP在水下安防系統監控軟件中的應用

2015-04-12 00:00:00陳英婕楊靜宇孟元凱
現代電子技術 2015年4期

摘 要: 在此給出完成端口在某水下安防系統監控軟件中的一種應用,在簡要介紹完成端口模型的基礎上,敘述了利用完成端口實現安防系統監控軟件底層通信模塊的方法,并構建了一個完整的監控中心數據服務器構架。該方法提高了監控軟件網絡通信的數據吞吐率,節約了CUP資源,同時在該構架下能夠輕松實現安防系統軟硬件的擴展和升級。

關鍵字: 完成端口(IOCP); 網絡通信; 水下安防系統; 監控軟件

中圖分類號: TN964?34 文獻標識碼: A 文章編號: 1004?373X(2015)04?0077?03

某水下安防系統監控中心通過網絡交換機將各個傳感器子系統連接到局域網中,各傳感器子系統包括水下被動聲納、水面雷達、岸基式AIS等組成,通過監控中心千兆網絡交換機連接到兩臺監控中心主機上,其中主機1完成安防狀態三維顯示及數據服務器的功能,主機2負責安防狀態控制功能。監控中心各子系統主機通過TCP方式(即C/S模式)與主機1數據服務器連接,監控中心的主機2接收數據服務器轉發各傳感器子系統的數據,各子系統之間通過主機1數據服務器可自由收發數據。

1 必要性

圖1是監控中心各子系統網絡連接圖。在Windows操作系統中通常實現網絡通信程序有如下這幾種模型:Select,WSAAsyncSelect,WSAEventSelect,I/O重疊模型、完成端口[1]。前面3種模型采用阻塞模式對端口進行操作,具有編程簡單易用的特點,適用于數據吞吐量不大的應用。另外,在阻塞模式下,程序在處理多個客戶端并發事件時需要對每一個客戶開辟一個線程去處理,此時響應多個客戶請求時就需要CPU不停地在每個線程之間進行上下文的切換,因為線程切換是相當浪費CPU時間的,所有阻塞通信加多線程模式是一種需要占用大量CPU時間的編程模式。

I/O重疊模型和完成端口模型都高性能的非阻塞異步通信模式[1],非阻塞的異步通信模式通常內部提供了線程池的管理,可以避免反復創建線程的開銷,同時可以根據CPU的個數靈活地決定線程個數,而且可以減少線程調度的次數從而提高性能,大大降低了CPU的占用時間。非阻塞的異步通信模式通常編程難度大,一般只應用與大型服務器。該安防系統各子系統數據采集時間不相同,采集數據量大易導致網絡上出現多個并發事件,需要數據服務器同時響應并處理并發事件,作為監控中心主機1(數據服務器)的網絡通信程序必須采用高性能非阻塞的異步通信模式編寫。另外,數據服務器主機同時需要負責安防態勢的解算、三維場景計算及實時顯示功能,對CPU和內存等系統資源使用要求較高。I/O重疊模型和完成端口模型都是高性能的非阻塞異步通信模式,考慮到編程難度相當且完成端口的性能更加優秀,因此在該項目中使用更高性能的完成端口(IOCP)模型編制服務器程序。

2 IOCP簡介

完成端口(Completion Port)是一種基于重疊 I/O(Overlapped I/O)的高性能異步通信機制,使用設備內核對象來協調數據的發送和接收[2]。當使用完成端口進行網絡通信時,應用程序只需要向操作系統提交數據發送和接收的請求,此時應用程序可以自由地做其他事情而不會被阻塞,操作系統會在網絡I/O操作“完成”之后通知應用程序,應用程序在接到系統的通知時,網絡操作已經完成,此時應用程序只需要處理后面的事情了。完成端口就是不斷投遞重疊 I/O 操作,將耗時的操作交給系統后臺進行,應用程序便獲得了解放。

3 IOCP的實現

作為Windows操作系統最復雜的內核對象,下面簡要說明完成端口實現的步驟[1]:

(1) 調用CreateIoCompletionPort( HANDLE FileHandle,HANDLE ExistingCompletionPort, ULONG_PTR CompletionKey,DWORD NumberOfConcurrentThreads)函數創建一個完成端口,函數第4個參數保持為0,它指定在完成端口上每個CPU一次只允許執行一個工作者線程;

(2) 判斷系統內有幾個CPU;

(3) 創建工作者線程,根據步驟2得到的CPU信息,在完成端口上為已完成的I/O請求提供服務,為避免由于線程數量不足而使CPU處于空閑的局面,通常創建2倍于CPU數量的工作者線程以供使用;

(4) 準備好一個監聽套接字,綁定到本機IP上,在端口5000上監聽傳入的連接請求;

(5) 使用AcceptEX函數,接受入站的連接請求;

(6) 創建一個數據結構,用于保存單句柄數據,同時在結構中存入接受的套接字;

(7) 調用CreateIoCompletionPort,將自AcceptEx返回的新套接字句柄同完成端口關聯到一起,通過completionKey參數,將單句柄數據結構傳遞給CreateIoCompletionPort;

(8) 開始在已接收的連接上進行I/O操作。在此,希望通過重疊I/O機制在新建的套接字上投遞一個或多個異步WSARecv或WSASend請求,這些I/O請求完成后,工作者線程會為I/O請求提供服務,同時繼續處理以后的I/O請求;

(9) 重復步驟(5)~(8),直至服務器終止。

4 IOCP在某安防系統中的應用

數據服務器主機軟件除了負責數據接收存儲和轉發的功能外還負責地理坐標轉換、傳感器數據融合、安防態勢的解算、目標軌跡濾波插值、三維場景計算及實時顯示功能,該軟件在使用完成端口的通信模式在安防系統中的程序流程圖如圖2所示。

為了使用的方便以及代碼的重用,在該軟件中將完成端口(IOCP)封裝成一個完成端口通信類 CIocpServer,提供了連接、監聽、發送、接收等基本網絡通信功能,同時將接收到的數據保存到特定內存中,提供給上一級模塊調用。

在測試該軟件完成端口通信模塊時,筆者采用NetAssist網絡調試助手作為客戶端軟件,以5 ms的發送速度向該軟件發送數據,為便于觀察系統資源占用情況,將服務器和客戶端軟件放置在一臺計算機上,如圖3所示有數據通信時2個軟件系統資源的占用情況。

圖4中,紫色部分為某安防軟件SZMoniSys系統占用情況,藍色部分為網絡調試助手NetAssist系統占用情況。由圖可知采用完成端口作為以太網的通信程序其CUP占用率幾乎可以忽略,而網絡調試助手NetAssist的CUP占用率卻達到了25%。如表1所示。

從表中可以看出完成端口模式在軟件中使用時,繁忙和空閑時CPU占用率基本沒有變化,幾乎可以忽略不計,大大節約了系統硬件資源,把寶貴的系統資源留給數據分析處理、三維場景計算和顯示。

另外,在今后的安防系統中,需要增減雷達、紅外監視器等傳感器設備時,要求監控軟件具有良好的伸縮性,在該軟件中由于采用了C++標準類的形式封裝了完成端口,進一步提高了IOCP模型優良的擴展性能,使得該監控軟件具有通用性強,擴展便捷的特點,輕松實現傳感器的增減。

5 結 語

本文設計了一種滿足某安防系統中的高性能通信服務器端架構并完成服務器底層通信的開發。完成端口(IOCP)作為一個高效但復雜精巧的Windows內核I/O對象[3],能提供了最好的伸縮性和最高的數據吞吐率,將節約的大量寶貴系統資源留給軟件需要完成的更主要功能,恰好滿足服務器“高性能”的要求。在實際應用中,采用基于完成端口的通信服務模式表現出了優良的穩定性、顯著的性能優勢、優異的軟件和硬件擴展性,同時在保證了系統高性能運行的基礎上極大地降低了系統軟硬件成本、系統復雜性以及維護開發成本。本文提供的基于完成端口的通信服務器在很大程度上優化了對系統資源的利用和用戶的調用,經過實際應用測試,效率和性能比傳統方式要高出許多,因此可以應用于水下安防系統三維視景軟件數據服務器的使用。

參考文獻

[1] JONES A, OHLUND J. Microsoft Windows 網絡編程[M].2版.北京:清華大學出版社,2002.

[2] 王新宇.IOCP模型在網絡設備管理系統中的應用[C]//廣西計算機學會25周年紀念會暨2011年學術年會論文集.桂林:廣西計算機學會,2011.

[3] [美]杰夫瑞,[法]克里斯托夫. Windows核心編程[M].5版.北京:清華大學出版社,2008.

[4] 汪曉平,鐘軍.Visual C++網絡通信協議分析與應用實現[M]. 北京:人民郵電出版社,2003.

[5] 孫軍文,安妮,王中訓.基于VC++6.0的網絡通信設計[J].現代電子技術,2011,34(23):52?54.

[6] 周濤.基于S?函數的Simulink與VC++網絡通信研究[J].現代電子技術,2013,36(13):108?111.

主站蜘蛛池模板: 无码精油按摩潮喷在线播放 | 欧美一区二区三区欧美日韩亚洲| 久久窝窝国产精品午夜看片| 午夜免费视频网站| 四虎AV麻豆| 成人中文字幕在线| 九九热精品在线视频| 欧美自慰一级看片免费| 免费无遮挡AV| 伊人天堂网| 亚洲欧美日本国产综合在线| 精品国产电影久久九九| 国产91小视频在线观看| 日韩中文无码av超清| 日本精品一在线观看视频| 91精品国产情侣高潮露脸| 中文成人在线| 伊人AV天堂| 婷婷午夜影院| 国产成人精品午夜视频'| av在线人妻熟妇| 综合人妻久久一区二区精品 | 久久大香香蕉国产免费网站| 久久人人97超碰人人澡爱香蕉| 91精品国产丝袜| 欧美国产精品不卡在线观看| 五月婷婷激情四射| 一本色道久久88| 日韩国产综合精选| 中文字幕人妻无码系列第三区| 天天操精品| 欧美日韩中文字幕二区三区| 亚洲第一成网站| 国产成人1024精品下载| 国产午夜在线观看视频| 视频二区国产精品职场同事| 亚洲系列中文字幕一区二区| 欧美在线导航| 91国内外精品自在线播放| 国产手机在线ΑⅤ片无码观看| 无码综合天天久久综合网| 亚洲欧洲日韩综合| 草逼视频国产| 成人免费午间影院在线观看| 欧美日韩专区| 国产精品三级av及在线观看| 伊人国产无码高清视频| 国产精品无码一二三视频| 久久精品一品道久久精品| 日韩一级毛一欧美一国产| 免费播放毛片| 在线免费看片a| 国产白浆在线| 九九久久精品国产av片囯产区| 无码高潮喷水专区久久| 久久国产拍爱| 国产乱人免费视频| 国产中文在线亚洲精品官网| 亚洲色成人www在线观看| 国产成人亚洲日韩欧美电影| 中文字幕在线永久在线视频2020| 精品无码视频在线观看| 国产成人AV男人的天堂| 国产免费福利网站| 久久大香伊蕉在人线观看热2| 日韩欧美国产三级| 97一区二区在线播放| AV网站中文| 亚洲天堂2014| 国产真实自在自线免费精品| 亚洲成在人线av品善网好看| 日韩成人在线网站| 国内精品九九久久久精品| 国产黄网永久免费| 日韩精品成人网页视频在线| 成人另类稀缺在线观看| 国产精品久久自在自线观看| 久久国产成人精品国产成人亚洲| 欧美日韩一区二区三区在线视频| 2048国产精品原创综合在线| 亚洲aaa视频| 欧美日韩精品综合在线一区|