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

基于動態調控的接入控制器內存調度策略

2013-01-31 05:23:56李廣成
電視技術 2013年17期
關鍵詞:分配用戶系統

肖 洋,李廣成,杜 勇

(1.武漢郵電科學研究院,湖北 武漢430074;2.武漢烽火國際技術有限責任公司,湖北 武漢430074;3.武漢虹信通信技術有限責任公司,湖北 武漢430074)

隨著智能手機、平板電腦等接入設備的普及,用戶上網更加便捷,致使無線用戶數量不斷增加,網絡中的用戶流量也在不斷攀升。在現有普遍采用的集中式WLAN的網絡環境中,數據處理的集中點位于接入控制器中,包括用戶數據處理、轉發和對用戶、接入點的管理數據的處理。對接入控制器數據處理的速度提出了很高的要求。在處理數據的時候,必然涉及到對內存的申請、使用、傳遞和釋放的過程。這個過程的好壞直接決定了系統性能的高低。

由于接入控制器對內存的使用比較頻繁,內存分配和釋放的效率對整個系統的性能有直接的影響;在接入控制器的系統中,內存交互申請和內存釋放的過程有可能造成一定量的內存泄露情況,一旦出現內存泄露,頻繁的內存申請釋放操作又會產生大量內存碎片,從而極大降低系統整體性能。同時,由于大量的模塊分布在不同的線程之中同時運轉,內存調度情況不容易掌控,系統整體內存使用情況以及各個線程之間的內存使用情況也不易把控。因此,需要提出一種內存調度策略,既能夠滿足內存的高效回收機制,又能夠有效地管理系統內存空間、掌握各個線程中內存分配的信息。

1 接入控制器內存調度總體結構及功能

現有通用的接入控制器主要采用集中式組網方式,接入控制器負責管理AP以及STA,負責數據的快速轉發,其基本模塊組成如圖1所示。由報文快速轉發模塊、用戶管理模塊、業務管理模塊以及系統管理維護模塊構成[1]。其中,報文快速轉發模塊由報文接收/發送和報文處理模塊組成,負責對接入控制器內外報文進行篩選分類,并根據網絡協議規則轉發到相應模塊或網絡接口上,對模塊性能的要求較高;用戶管理模塊和業務管理模塊分別負責對接入用戶以及AP的狀態等上下文進行管理維護。系統管理維護模塊是對整個接入控制器系統進行統一管理與狀態監控的模塊。根據這三大模塊的構成,可以按照數據處理分為三大部分:報文快速轉發部分、系統線程內處理部分以及系統線程間處理部分。

快速轉發部分指從網絡中收到的數據增減頭部隧道封裝并快速轉發出去,該過程會頻繁地為數據分配內存,并將其需要的數據拷貝數次,處理后輸出。

圖1 AC的多板構架及模塊組成

系統線程間數據處理是指在系統線程間的數據處理,涉及到線程間的通信機制,以及內存相互訪問和調度。

系統線程內處理數據部分指在系統線程內部處理的數據,通常為線程私用的數據,包括用戶上下文、WTP上下文等,申請釋放的頻率相對較低。

針對接入控制器以上幾種內存使用的特點,可以將接入控制器內存調度分層3個層次:Dynamic Smart Preallocation(DSPA),Static Pre-allocation(SPA),Dynamic Pre-allocation(DPA)。

DSPA適用于快速轉發功能,實現預分配內存,并對分配內存大小進行預估,不足的時候就按照一定規律進行鏈式增加,優化分配機制,在處理的過程中實現一次拷貝多次使用。

SPA適用于線程間的內存分配。實現預分配內存、大小固定、匹配內存空間[2]。

DPA適用于線程內部處理的內存使用,實現按需分配,匹配內存空間,會有一些內存空間的浪費。

以上3種層次的內存分配方式都能夠實現內存快速調度,對應用每次分配以及釋放動作的代碼段進行定位,確認內存泄露與否,以避免內存碎片產生。在接入控制器系統發生異常的時候,應用定位問題具有方便快速定位的優勢。

2 接入控制器內存調度設計原理

基于以上功能需求,對AC內存調度的設計分為內存分配層和內存管理層2個層次,其中內存分配層提供內存分配釋放,為上層應用提供快速穩定的存儲基本服務,而內存管理就在內存分配之后,對內存信息進行統一管理,并對異常內存分配或釋放進行記錄。下面分別對兩個層次的設計原理進行詳細的介紹。

2.1 接入控制器內存分配設計原理

在AC線程內部及線程間,均采用內存池陣列的方式對內存進行分配。內存池陣列中有數個內存池,每個內存池中內存大小相同[3]。

SPA內存分配方式使用于線程之間的大小固定的應用環境下,當應用的某一種相同的數據結構數量較大,使用較為頻繁的時候,如ARP表項、用戶上下文、AP上下文等,在使用的時候,只需創建適合其使用固定大小的內存池,并每次從指定的內存池中分配釋放內存即可,其時間復雜度為O(1)。效率極高,但是使用環境也有限制,而且需要應用對該內存池的大小進行設定。

在AC的報文快速轉發模塊中,一般會從網絡接口接收數據包。每當收到數據包,就會為這些數據包分配內存。為了實現零拷貝,每次從DSPA內存池中,分配1塊內存,該內存結構如圖2所示。是一種緩沖鏈式結構,由1個DSPA描述符以及DSPA內存塊組成。上層應用需要為其增加或減少數據頭,就只用將指針向前偏移一部分,并填充相應的數據部分即可。若需要在該數據包后繼續填充數據,只需繼續增加1個DSPA內存塊,并將之前的DSPA用指針指向新增的內存塊,保證關聯關系。應用處理之后,將其轉到發送端口,將數據轉出。這就是數據的快速轉發過程。由于每個DSPA內存塊都是固定大小,在分配內存的過程中,適合于高效數據快速轉發,而在其他環境中不夠靈活。

圖2 DSPA內存分配結構

其中,在DSPA的工作流程圖如圖3所示。

圖3 DSPA內存分配流程圖

DPA分配內存的模式為根據應用申請的內存大小,與2n進行比較(2n為計算機存儲特性的一個參考值),匹配需要申請的內存池。若該內存池的內存分配完了,就會動態分配新的大小相同的內存池,為應用繼續提供內存。其中在DPA的工作流程圖如圖4、圖5所示。

2.2 接入控制器內存管理設計原理

在以上3種工作模式下,分配和釋放內存的時候都會為每個內存打上標簽,分別記錄分配內存的函數、文件、行號、及分配的時間。每個內存都有1個內存使用標志位,用于表示該內存使用情況[4-5]。其中-1表示從未使用過,0表示被釋放,1表示被分配。為內存管理模塊其配置命令行,在調試工作模式下,提供分析問題的幫助。

1)為用戶分配內存提供定位信息

當用戶分配內存的時候,就會將內存分配的情況記錄下來,并與內存池的上下文綁定。已分配的內存塊會將內存使用標志位置為1。

2)為用戶釋放內存提供定位信息

當用戶釋放內存的時候,就會將內存釋放的情況記錄下來,并與內存池的上下文綁定。并且可以和1中的信息進行比對,判斷內存是否存在內存泄露。

3)為用戶非法內存操作提供信息

(1)double free

在程序員編程過程中,某一個內存用于存儲上下文,共用于數個線程中,在釋放的過程中可能存在重復釋放的情況。如果在調用malloc-free函數的時候,程序就會掛掉,并留下double free的信息。本文會根據flag位來判斷,如果flag為0,應用又釋放一次內存,即發生double free。在內存管理中會記錄double free的錯誤,并保證程序不會因此異常退出。

(2)釋放非法地址內存

在程序員編程過程中,釋放非法的內存地址,如未對齊的內存塊地址、空地址或不存在于內存池中,避免造成程序的異常退出。其調用釋放函數的跟蹤信息都會被記錄到日志信息中,便于后續定位處理問題。

4)為可能出現內存泄露的內存提供信息

在程序員編程過程中,或多或少都會出現一些內存泄露的問題,通過標志位以及調用信息可以容易地定位到內存塊的狀態,在正常的內存使用中,大部分的內存都是不斷地分配然后釋放。因此,在每個內存分配的時候中,就會在內存塊中增加1個時間戳信息,如果1個內存塊在運行時長大于1周的時候還沒有被釋放,就會將這個內存塊的地址調用信息記錄到日志信息中,便于程序員定位分析。

3 內存調度運行結果

根據以上內存調度的分析設計,通過在Linux C下實現內存調度方法。現從內存調度功能和性能2個方面來驗證本文設計方案。

3.1 內存調度功能測試

內存調度功能測試即對內存管理的測試。在實際Linux系統中只能通過系統的命令行查看整個系統以及每個進程的內存使用情況。通過系統的接口對程序的分析不能有很大的幫助,如圖6所示。

圖6 系統對內存使用情況統計(截圖)

基于內存調度對內存的管理,可以清晰地打印出內存 的使用情況,其實現如圖7~圖10所示。

3.2 內存調度性能測試

內存調度性能測試即對內存分配釋放的性能的一個測試。在內存調度過程中,測試的環境為mips構架,CPU為Cavium Octeon CN5650,內存為8 Gbit。將本內存調度與直接調用系統API malloc/free函數接口測試對比。結果如表1所示。

通過對比,可以清晰地看出通過內存池調度的內存通過空間換取更快的分配釋放時間,提供了更加高效的內存分配機制。

表1 內存性能對比測試 μs

4 結語

本文設計的內存調度方式是適用于當前各種構架的接入控制器底層的一種內存調度策略。在以SPA,DSPA,SPA三種層次的內存分配方式上為上層應用提供高速可靠的內存分配策略,與此同時能夠定位內存調用模塊以及內存泄露問題,避免內存碎片的產生導致系統性能的降低,大大增加接入控制器在大流量多用戶的情況下的運行性能以及穩定性。

[1]STEVENS W R.Unix Network Programming[M].Englewood Cliff:Prentice Hall,1990.

[2]MCKEE S,KLENKE R,WRIGHT K,et al.Smarter Memory Improving Bandwidth for Streamed References[J].IEEE Computer,1998,31(7):51-63.

[3]顧勝元.嵌入式實時動態內存管理機制[J].計算機工程,2009(20):1-3.

[4]JAMES F,KEITH W.Computer Networking:A Top-Down Approach[M].5th ed.New Jersey:Addison Wesley,2010.

[5]SCHUMANN R C.Design of the 21174 Memory Controller for Digital Personal Workstations[J].Digital Technical Journal,1997,9(2):57-70.

猜你喜歡
分配用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
應答器THR和TFFR分配及SIL等級探討
遺產的分配
一種分配十分不均的財富
績效考核分配的實踐與思考
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
主站蜘蛛池模板: 亚洲AV无码不卡无码 | 爱色欧美亚洲综合图区| 亚洲第一成年人网站| 国产69囗曝护士吞精在线视频| 国产人前露出系列视频| 午夜精品区| 毛片免费在线| 无码中字出轨中文人妻中文中| 中文字幕精品一区二区三区视频 | 日韩成人免费网站| 91无码视频在线观看| 在线不卡免费视频| 动漫精品啪啪一区二区三区| 亚洲综合香蕉| 久久久久国产精品熟女影院| 久久中文无码精品| 国产欧美精品专区一区二区| 国产成人无码久久久久毛片| 99精品国产自在现线观看| 浮力影院国产第一页| 欧美有码在线观看| 国产成人8x视频一区二区| 亚洲三级影院| 国产成人高清亚洲一区久久| 中文字幕免费播放| yjizz国产在线视频网| 18禁高潮出水呻吟娇喘蜜芽| 亚洲综合欧美在线一区在线播放| 欧美精品亚洲二区| 国产另类视频| 国产爽妇精品| 久久国产亚洲偷自| 自拍偷拍一区| 国产女人喷水视频| www.youjizz.com久久| 精品国产一二三区| 成人在线天堂| 国产精品所毛片视频| 91精品国产综合久久香蕉922| 九九这里只有精品视频| 欧美精品成人一区二区在线观看| 色妞永久免费视频| 欧洲亚洲欧美国产日本高清| 久久精品娱乐亚洲领先| 欧美一级高清片久久99| 白浆视频在线观看| 欧美日本不卡| 伊人久久婷婷| 五月婷婷精品| 日韩无码黄色| 999国内精品视频免费| 六月婷婷激情综合| 久久国产av麻豆| 亚洲综合精品香蕉久久网| 丁香综合在线| 91国内外精品自在线播放| 69综合网| 国产精品性| AV不卡在线永久免费观看| 综合成人国产| 国产成人精品一区二区| 中文字幕2区| 精品国产aⅴ一区二区三区| 亚洲第一视频免费在线| 欧美综合成人| 日韩午夜伦| 成人在线欧美| 欧美精品亚洲精品日韩专区| 日日拍夜夜嗷嗷叫国产| 中文字幕在线欧美| 国产亚洲高清在线精品99| 老司机午夜精品网站在线观看| 无码精品福利一区二区三区| 精品偷拍一区二区| 久久 午夜福利 张柏芝| 国产地址二永久伊甸园| 日韩欧美视频第一区在线观看| 久久性妇女精品免费| 国产成人精品2021欧美日韩| 久久青草热| 99热这里只有精品国产99| 91黄视频在线观看|