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

        ?

        基于業(yè)務的多線程AC系統(tǒng)設計及性能分析

        2014-12-31 00:00:00賈非盛炎平
        計算機光盤軟件與應用 2014年23期

        摘 要:無線控制器(AC)是WLAN網(wǎng)絡的集中控制中樞,是部署大型無線局域網(wǎng)必不可少的組成部分。AC系統(tǒng)為嵌入式系統(tǒng),要求高吞吐率,低成本,具有一定的實時性。本文介紹一種多線程無線控制器的設計方法,以具體業(yè)務按照優(yōu)先級由高至低的順序劃分多線程。使線程數(shù)目更少,實時性更強,可以同時維護數(shù)千Socket連接數(shù)。本文最后對首要性能指標做出了分析。

        關鍵詞:多線程并發(fā);軟實時系統(tǒng);消息隊列;響應時間優(yōu)化

        中國分類號:TP311.52

        1 按照功能劃分多線程設計方法概述

        在進行多線程應用程序設計時,一般是按照對象劃分線程,一個對象對應一個線程。這樣做的好處是可以很方便的擴展對象的數(shù)量規(guī)模,并簡化程序的復雜程度。

        但是在嵌入式程序設計當中,對事件的響應時間要求更高,按照對象劃分線程的方法只能保證每個對象獲得CPU的時間的公平的,當CPU成為系統(tǒng)瓶頸時,并無法保證每個對象都可以及時的得到CPU資源。

        如果采用按照業(yè)務優(yōu)先級劃分多線程的方法,就可以使按照具體事務對響應時間要求的高低來劃分優(yōu)先級,生成不同優(yōu)先級的多個事件隊列。這樣就可以保證最緊急的事件,在最短的時間內(nèi)得到處理。

        圖1 單個對象單個線程模型

        如圖1,為處理單個對象的線程結構模型,當CPU調(diào)度到此線程時,依次處理高優(yōu)先級事件,中等優(yōu)先級事件,低優(yōu)先級事件。假設處理高優(yōu)先級事件花費時間為Ta,中等優(yōu)先級事件的花費為Tb,低優(yōu)先級事件的花費為Tc,那么在Nc個CPU的系統(tǒng)中,處理第M個對象的平均等待時間Td為:

        (Ta+Tb+Tc)x(M-1)/Nc 公式1

        圖2 按照功能劃分多線程模型

        如圖2,為按照優(yōu)先級劃分多線程的設計方法,CPU將依次處理三個隊列中的事件,高優(yōu)先級的事件總是最優(yōu)先得到處理。設定CPU調(diào)度方式為FIFO和非搶占,集中處理高優(yōu)先級隊列的線程時間限制為Th,集中處理中優(yōu)先級隊列的線程時間限制為Ti,集中處理低優(yōu)先級隊列的線程時間限制為Tj,則第M個對象的高優(yōu)先級事件得到響應的最大時延為Max(Th,Ti,Tj)。與圖1的設計方法相比較,圖2具有明顯的優(yōu)勢。

        根據(jù)業(yè)務優(yōu)先級劃分多線程結構程序設計方法的其他優(yōu)勢還有線程最大個數(shù)可控,響應時間可控,實時性更好等。

        無線控制器AC要求一定的實時性,是一個網(wǎng)絡密集型和CPU密集型的軟件系統(tǒng)。適用于本文提出的這種設計方法。如圖3,將AC與AP之間的連接設計為TCP的通信方式,保證報文傳輸?shù)目煽啃?。后續(xù)可以引入OpenSSL,實現(xiàn)報文的加密傳輸。

        圖3 AC系統(tǒng)示意圖

        采用業(yè)務優(yōu)先級劃分的設計方法,AC系統(tǒng)容易出現(xiàn)多個線程同時發(fā)送數(shù)據(jù)的情況。如圖4,線程B在線程A發(fā)送數(shù)據(jù)完畢后開始發(fā)送數(shù)據(jù)。當線程B發(fā)送的數(shù)據(jù)量超過了TCP發(fā)送隊列的容量時,線程B會被阻塞。如果線程A緊接著也要發(fā)送數(shù)據(jù),則線程A也會被阻塞。直到TCP發(fā)送隊列中有數(shù)據(jù)發(fā)送成功,騰出足夠的空間容納線程B和線程A之后才會恢復。

        可以通過下面兩種方法,以避免上述阻塞的情況產(chǎn)生:

        (1)將TCP Socket的屬性設置為非阻塞。

        (2)將TCP Socket的發(fā)送隊列進行適度的擴大。

        (3)在發(fā)送數(shù)據(jù)前,對TCP Socket發(fā)送隊列進行檢查。如果沒有空閑的空間,則放棄發(fā)送。

        圖4 TCP阻塞示意圖

        為了避免陷入阻塞,可以在發(fā)包前對發(fā)送隊列進行判定,一旦檢測出發(fā)送隊列已滿的情況發(fā)生,則放棄本次數(shù)據(jù)發(fā)送。

        2 無線控制器

        AC系統(tǒng)的主要目的是發(fā)現(xiàn),控制,管理,維護同一網(wǎng)絡中的無線接入點AP。具體事務可以劃分為發(fā)現(xiàn)探測過程,連接建立過程,鏈路?;钸^程,命令交互過程等等。

        表1 無線控制器AC主要功能列表

        事務名稱優(yōu)先級單個事務耗時(ms)線程時間片控制

        鏈路?;钭罡?對象個數(shù)Mx2

        命令交互次高5對象個數(shù)Mx2

        連接建立一般100對象個數(shù)Mx2

        如表1,可將AC系統(tǒng)劃分為3個專門處理事務的線程和1個負責收包解析并分發(fā)各個事務的連接管理線程。

        2.1 連接管理任務設計

        連接管理線程主要負責維護與各個AP之間的Socket連接,包括鏈路的協(xié)商,建立和斷開,以及報文的接收等。該線程需要設置為最高優(yōu)先級,確保Socket接收到報文之后,可以立即得到處理。

        使用EPOLL機制實現(xiàn)AC與所有AP之間的連接的監(jiān)聽,收到報文后立即分發(fā)至各個業(yè)務模塊。經(jīng)過實際的測試,連接數(shù)可以達到4000以上。

        2.2 鏈路?;钊蝿赵O計

        然后是鏈路?;罹€程,主要負責定時向AP發(fā)送鏈路?;钕ⅲ⒏鶕?jù)鏈路?;罨貞⑴卸ˋP是否在線。假設?;钪芷跒镵,則要求在K時間內(nèi)發(fā)出M個鏈路?;钕?。否則就會有AP掉線,進而使整個無線系統(tǒng)不穩(wěn)定。出于對系統(tǒng)負載分擔的考慮,并不能簡單的在定時器到期后將M個鏈路?;顖笪募械囊淮涡匀l(fā)出去,因為這樣會使得M個AP在同一時刻內(nèi)集中的發(fā)送鏈路?;铐憫獔笪?,進而瞬間提高AC系統(tǒng)的負載。針對這種情況,一種解決辦法是將M個鏈路?;顖笪脑贙周期內(nèi)均勻的發(fā)送出去。設定?;钪芷贙的誤差為秒級,則每秒需要發(fā)出M/K+1個報文。使用獨立的鏈路?;罹€程,設置線程的喚醒周期為秒。該線程被喚醒時,首先計算本線程上一次執(zhí)行到現(xiàn)在經(jīng)過的時間Ka,然后計算本次線程執(zhí)行需要發(fā)出的鏈路保活報文個數(shù)Ma=Kax(M/K+1),再然后發(fā)出Ma個鏈路保活報文,最后記錄本次調(diào)用發(fā)生的時間,供下一次計算Ka時使用。

        鏈路保活任務是絕對不允許被阻塞的。阻塞一旦發(fā)生,不僅引起阻塞的AP會掉線,當阻塞時間較長時,其他AP也會因為得不到響應而陸續(xù)的掉線。因此?;顖笪陌l(fā)送之前,一定要對TCP Socket的發(fā)送隊列進行檢查,如果不滿足本次發(fā)送條件,直接放棄。等待下一次定時器到期后再次嘗試。

        圖5 鏈路?;钊蝿樟鞒虉D

        2.3 連接建立任務設計

        按照時間順序,AP的上線過程第一步是建立連接,包含發(fā)現(xiàn)探測和TCP握手兩個步驟。發(fā)現(xiàn)探測的目的是識別設備類型,預部署,避免連接重復建立,以及確定三層網(wǎng)絡是否暢通。TCP握手步驟以非阻塞的方式進行,可以與多個AP并發(fā)的進行,并可以進一步實現(xiàn)為基于OpenSSL的安全連接TLS。AC作為Server端響應來自AP的TCP連接請求,整個線程每次執(zhí)行只處理一個TCP報文,并不會占用太多的CPU時間。

        將該線程的優(yōu)先級設定得比較低,目的是讓CPU優(yōu)先處理已上線的AP的事務,并盡量縮短已發(fā)現(xiàn)的AP的上線時間。該任務的另一個作用是控制并發(fā)連接數(shù),只要為該線程設置單位時間內(nèi)可處理的報文個數(shù),就可以有效的抑制并發(fā)連接個數(shù)。

        圖6 連接建立任務流程圖

        2.4 命令交互任務設計

        命令交互流程是AP上線后,與AC不定時交互數(shù)據(jù)的過程,數(shù)據(jù)量小,具有隨機性,且容易產(chǎn)生突發(fā)的數(shù)據(jù)流。在程序的具體實現(xiàn)中,需要根據(jù)具體的命令的特點,進一步細分若干個具體的任務。

        3 性能分析

        表2 系統(tǒng)規(guī)格

        組件規(guī)格

        CPU單核533MHz

        內(nèi)存DDR2 512MB

        以太網(wǎng)控制器千兆

        系統(tǒng)總線32位

        內(nèi)置存儲器Nor-flash 32MB

        OS嵌入式Linux

        3.1 吞吐率(R)

        使用wireshark抓包統(tǒng)計系統(tǒng)的TCP數(shù)據(jù)報文吞吐率如表3。可以得出吞吐率為100個/秒。將大量數(shù)據(jù)合并到一個報文中進行發(fā)送,可以提升實際業(yè)務的處理效率。

        表3 TCP數(shù)據(jù)報文統(tǒng)計

        報文統(tǒng)計周期報文數(shù)量

        5分鐘30012

        10分鐘60020

        15分鐘90040

        20分鐘120055

        3.2 命令交互響應時間

        一次完整的命令交互至少包含兩條消息,一個是AP發(fā)給AC,另一個是AC發(fā)給AP;或者相反。復雜的命令則需要多次交互。這里將命令交互響應時間定義為一次報文交互所消耗的時間。

        如果發(fā)生命令交互之時,系統(tǒng)處于空閑狀態(tài),則可根據(jù)吞吐率(R)計算一次命令交互的響應時間為2R=20ms。

        考慮到整個系統(tǒng)對線程原子操作的時間控制在1秒(設為變量U,單位ms)以內(nèi),當發(fā)生命令交互之時,如果系統(tǒng)處在繁忙狀態(tài),則AC系統(tǒng)響應一次命令交互,會產(chǎn)生最多1秒的延時。此時響應時間為(U+2R)毫秒。

        綜合任務優(yōu)先級考慮,命令交互的優(yōu)先級排在鏈路保活之后,鏈路?;钚枰l(fā)送M個?;顖笪摹4藭r響應時間為(U+(M+2)xR)毫秒。

        3.3 AP并發(fā)上線時間

        AP上線時間是衡量系統(tǒng)綜合性能的一個重要指標,能夠真實的體現(xiàn)到用戶體驗中。AC系統(tǒng)處理AP上線是通過連接建立,命令交互等多個線程協(xié)同處理完成的。期望的運行結果是類似于對數(shù)曲線的效果。

        參考文獻:

        [1]徐文超.802.11無線網(wǎng)絡資源管理算法研究[D].2011

        [2]趙俊.IEEE 802.11無線局域網(wǎng)性能分析和優(yōu)化[D].2003

        [3]何劍,劉鐮斧編著.Linux實時性能瓶頸分析[J].成都信息工程學院學報,2005.

        作者簡介:賈非(1984.01-),男,就職于神州數(shù)碼網(wǎng)絡公司,高級開發(fā)工程師。

        作者單位:北京信息科技大學 理學院,北京 100192

        基金項目:國家自然科學基金號:61473325

        亚洲精品无码成人a片| 中文字幕人妻久久久中出| 亚洲一区二区三区精品久久| 国产精品久久码一区二区| 欧美国产日产一区二区| 亚洲一区二区三区在线看| 欧美视频二区欧美影视| 成人无码网www在线观看| 国产福利美女小视频| 国产内射视频在线播放| 日本熟妇高潮爽视频在线观看| 丝袜美腿久久亚洲一区| 日韩中文字幕一区在线| 成人自拍三级在线观看| 国产一区二区三区免费视| 一区二区三区日本伦理| 国产黄色av一区二区三区| 内射中出日韩无国产剧情 | 国产农村妇女精品一二区 | 人妻少妇69久久中文字幕| 水野优香中文字幕av网站| 久久理论片午夜琪琪电影网| 亚洲欧美中文字幕5发布| 在线 | 一区二区三区四区| 大肉大捧一进一出视频出来呀| 精品成人乱色一区二区| 久草午夜视频| 无码国产日韩精品一区二区| 国产福利一区二区三区视频在线看| 一区二区免费中文字幕| 国产av一啪一区二区| 国产熟人精品一区二区| 绝顶潮喷绝叫在线观看| 天天综合网天天综合色| 亚洲va中文字幕无码久久不卡| 国产91吞精一区二区三区| 亚洲毛片αv无线播放一区| 久久精品国产精品亚洲婷婷| 五十路在线中文字幕在线中文字幕| 91色区在线免费观看国产| 精品国产一区二区三区av|