亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        IOCP在水下安防系統(tǒng)監(jiān)控軟件中的應(yīng)用

        2015-04-12 00:00:00陳英婕楊靜宇孟元凱
        現(xiàn)代電子技術(shù) 2015年4期

        摘 要: 在此給出完成端口在某水下安防系統(tǒng)監(jiān)控軟件中的一種應(yīng)用,在簡要介紹完成端口模型的基礎(chǔ)上,敘述了利用完成端口實現(xiàn)安防系統(tǒng)監(jiān)控軟件底層通信模塊的方法,并構(gòu)建了一個完整的監(jiān)控中心數(shù)據(jù)服務(wù)器構(gòu)架。該方法提高了監(jiān)控軟件網(wǎng)絡(luò)通信的數(shù)據(jù)吞吐率,節(jié)約了CUP資源,同時在該構(gòu)架下能夠輕松實現(xiàn)安防系統(tǒng)軟硬件的擴展和升級。

        關(guān)鍵字: 完成端口(IOCP); 網(wǎng)絡(luò)通信; 水下安防系統(tǒng); 監(jiān)控軟件

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

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

        1 必要性

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

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

        2 IOCP簡介

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

        3 IOCP的實現(xiàn)

        作為Windows操作系統(tǒng)最復(fù)雜的內(nèi)核對象,下面簡要說明完成端口實現(xiàn)的步驟[1]:

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

        (2) 判斷系統(tǒng)內(nèi)有幾個CPU;

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

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

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

        (6) 創(chuàng)建一個數(shù)據(jù)結(jié)構(gòu),用于保存單句柄數(shù)據(jù),同時在結(jié)構(gòu)中存入接受的套接字;

        (7) 調(diào)用CreateIoCompletionPort,將自AcceptEx返回的新套接字句柄同完成端口關(guān)聯(lián)到一起,通過completionKey參數(shù),將單句柄數(shù)據(jù)結(jié)構(gòu)傳遞給CreateIoCompletionPort;

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

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

        4 IOCP在某安防系統(tǒng)中的應(yīng)用

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

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

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

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

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

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

        5 結(jié) 語

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

        參考文獻

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

        [2] 王新宇.IOCP模型在網(wǎng)絡(luò)設(shè)備管理系統(tǒng)中的應(yīng)用[C]//廣西計算機學會25周年紀念會暨2011年學術(shù)年會論文集.桂林:廣西計算機學會,2011.

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

        [4] 汪曉平,鐘軍.Visual C++網(wǎng)絡(luò)通信協(xié)議分析與應(yīng)用實現(xiàn)[M]. 北京:人民郵電出版社,2003.

        [5] 孫軍文,安妮,王中訓.基于VC++6.0的網(wǎng)絡(luò)通信設(shè)計[J].現(xiàn)代電子技術(shù),2011,34(23):52?54.

        [6] 周濤.基于S?函數(shù)的Simulink與VC++網(wǎng)絡(luò)通信研究[J].現(xiàn)代電子技術(shù),2013,36(13):108?111.

        久久久久国产一级毛片高清版A| 国产极品裸体av在线激情网| 新婚少妇无套内谢国语播放| 啦啦啦www在线观看免费视频| 一本色道久久88—综合亚洲精品 | 日韩亚洲av无码一区二区不卡| 亚洲成人免费无码| 蜜臀av人妻一区二区三区| 亚洲色图偷拍自拍在线| 精品国产天堂综合一区在线| 亚洲狠狠婷婷综合久久久久图片 | 第十色丰满无码| 亚洲av午夜福利一区二区国产 | 久久久久久久久久久国产| 日本香蕉久久一区二区视频| 亚洲国产天堂av成人在线播放| 免费人成视频网站在线不卡| 97精品国产97久久久久久免费| 少妇内射视频播放舔大片| 一区二区三区在线视频免费观看| 日本不卡不二三区在线看| 婷婷四虎东京热无码群交双飞视频 | 日本av一区二区三区视频| 最爽无遮挡行房视频| 婷婷九月丁香| 国产三级视频一区二区| 亚洲日本人妻少妇中文字幕| 久久97久久97精品免视看| 牛鞭伸入女人下身的真视频| 四虎影视一区二区精品| 亚洲情精品中文字幕有码在线| 蕾丝女同一区二区三区| 初尝人妻少妇中文字幕| 欧美成人精品一区二区综合| 亚洲一区二区情侣| 精品亚洲一区中文字幕精品| 人妻 偷拍 无码 中文字幕 | 女人被躁到高潮嗷嗷叫免| 国内成+人 亚洲+欧美+综合在线 | 国产成人一区二区三区视频免费蜜| 青青视频在线播放免费的|