《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Nucleus Plus操作系統的多實例模式的實現
基于Nucleus Plus操作系統的多實例模式的實現
來源:電子技術應用2012年第9期
陳發堂,庹 勤
重慶郵電大學 重慶市移動通信技術重點實驗室,重慶400065
摘要: 在對TD_LTE射頻一致性測試儀表的開發中,針對同時建立多個承載的需求,引入了多實例管理模式。著重介紹了項目協議棧中基于Nucleus Plus操作系統多實例模式的實現機制。該機制中包含了系統的內存池、隊列、任務等組件的初始化,其多實例管理模塊有效地完成了消息的路由,同時采用優化后的分區內存池對消息和各實例數據內存進行分配和釋放,使內存分配中產生的內碎片降到最低。
中圖分類號: TN929
文獻標識碼: A
文章編號: 0258-7998(2012)09-0014-04
Implementation of multiple instances mode based on the Nucleus Plus operating system
Chen Fatang,Tuo Qin
Chongqing Key Laboratory of Mobile Communication, Chongqing University of Posts and Telecommunications, Chongqing 400065,China
Abstract: On the basis of the development of TD_LTE radio frequency consistency testing instrument, multiple instances mode is introduced in order to meet the establish of multiple radio bearers at the same time. This paper presents the realization mechanism of multiple instances pattern, which is based on the Nucleus Plus operating system. This mechanism includes system module initialization such as memory pool, queue, task and so on. The design of multiple instances management module accomplishes message routing. The memory of message and instances data are managed by optimized partition memory pool, which minimizes the inner fragment.
Key words : Nucleus Plus;multiple instances;partition memory pool

    TD_LTE技術標準從確定至今發展十分迅速。根據TD產業聯盟信息,TD_LTE產業鏈的發展得到了全球主流研發制造廠商的積極參與,而測試又是關系未來商用的關鍵點。其中測試儀表對測試結果的準確性和可信度影響很大,因此急需對測試儀在測試標準化、測試儀表的功能和性能等方面對測試儀進行改進[1]。

    本文在對TD_LTE射頻一致性測試儀表的開發中,需要建立多個承載來滿足同時發起的業務,因此引入了多實例模式。而如何保證消息正確到達對應的實例,解決各實例消息和數據的內存區的分配和釋放是關鍵。在本設計過程中,結合了Nucleus Plus操作系統提供的內存池、隊列、任務等組件功能,有效地解決了測試儀表中多實例模式的實現問題。
1 多實例模式
    TD_LTE射頻一致性測試儀表是依據3GPP標準、TD_LTE國家行業標準開發的TD_LTE基站和終端的測試儀表。在TD_LTE終端協議棧中,無線承載用于接入層向上提供的服務,包括了用于承載控制面信令的信令無線承載(SRB)和用于承載用戶面的數據業務的數據無線承載(DRB)。而默認承載和專用承載是非接入層向上提供的服務,以滿足不同業務的QoS。在實際測試中,可能同時激活建立多個承載去滿足不同的業務。非接入層與接入層承載的映射是根據承載建立情況動態配置的,并且是一一映射的關系。在設計過程中,建立的承載每個對應一個激活的實例,每個實例通過分配的唯一標識進行區分。根據LTE協議規范,在整個協議棧中同時存在多個實例的有ESM、RLC和PDCP三個子層[2]。
2 Nucleus Plus
    Nucleus Plus是美國源代碼操作系統商ATI公司推出的嵌入式系統,以其實時響應、搶先、多任務以及源代碼開放特性獲得在通信、國防、自動化控制、智能家電等領域的廣泛應用。同時Nucleus Plus初始化過程中提供的Application_Initialize是對用戶開放的子程序,用戶可以根據自己的需要在其中初始化Nucleus Plus提供的組件,如任務、內存池、隊列等[3]。系統為協議棧每個子層設置一個對應的任務,并為每個任務分配了一個優先級,數值范圍從0~255對應由高到低的256個優先級別。同時也為每個任務分配一個隊列,隊列是Nucleus Plus中承載消息的載體之一。隊列提供了傳輸多個消息的機制,消息以數值形式發送和接收。發送消息時要求將消息拷貝進隊列;接收消息時要求將消息從隊列拷貝出消息。而內存池組件又提供了分區內存池分配和動態內存池分配兩大類,為用戶提供了靈活的內存管理模塊。
3 多實例模式實現方案
3.1 初始化模塊

    (1)在Application_Initialize中首先完成內存池組件的初始化。在系統設計時,共創建了5個分區內存池和2個動態內存池。動態內存池用于系統任務堆棧和隊列的創建內存分配。分區內存池用于消息、各實例數據等存儲區的內存分配,本文即著重介紹了對分區內存池的初始化進行。
    Nucleus系統低級初始化中,由系統堆棧之后分配一個可用內存,用于分區內存池的第一個可用地址;然后把連續的大塊內存按分區池進行管理,每個池中包含整數大小相同的小分區,但不同池之間的分區大小不同。根據實際需要,定義了不同密度的小分區,分別為52 B、140 B、352 B、2 000 B、60 000 B。每個池都分配一個PM_PCB(分區池控制塊)和一個分區的內存區指針。PM_PCB中包含了每個分區池的詳細信息包括:分區內存池的名稱、起始池地址、總分區大小、分區大小、分區中第1個可用地址等。每個小分區都有一個占8 B的頭,包含2個地址(下一個可用的分區地址和分區池地址)。分區池之間通過一個雙向鏈表進行鏈接,而池中單個分區通過單向鏈表進行鏈接,如圖1所示。在動態申請內存時,系統首先進行判斷,根據申請內存的大小選擇一個與其大小最接近的分區,然后在相應的分區池中劃去第1個可用地址對應的小分區。將劃分出的分區中的下一個可用分區地址置為NULL,同時更改PM_PCB中相應的消息,例如下一個可用分區地址、可用分區數等。釋放內存時根據該小分區中保存的分區池地址,將其放回它以前所屬的分區池,并作為第一個可用分區地址。采用這種方式能有效解決碎片問題,同時執行時間是固定的[4]。

    (2)任務和隊列的創建:與分區池的原理類似。系統為相應的任務和隊列分別分配一個TCB(任務控制塊)和QCB(隊列控制塊),并且各任務之間和各個隊列之間都通過動態的雙向鏈表進行鏈接。每個TCB中包含了任務優先級、任務狀態、任務處理函數入口地址等相關信息。QCB包含了隊列的最大消息數、消息起始地址、消息的結束地址等信息。接著對存在多實例模式的三個子層進行初始化,將三個子層分別定義為一個多實例進程,并為其分配一個唯一進程標識(processID),同時定義可能存在的最大實例數。每個進程和各實例的信息采用結構體數組的形式,初始信息包括每個進程的狀態機入口函數、各實例的初始狀態等。
    至此,與多實例相關的初始化已完成,系統其他組件初始化這里不再敘述。初始化完成之后,就進入Nucleus操作系統的主控程序調度。
3.2 多實例管理模塊
    協議棧層間原語通信是通過Nucleus系統隊列來實現的。一旦主控程序檢測到某層任務被激活,系統將從任務棧中取出當前任務所包含的所有控制信息并跳轉至任務處理函數。在任務處理函數中,處理函數將從相應的任務隊列中取出消息。協議棧的開發也是基于有限狀態機的思想,每收到一條消息,就要進行消息處理。對于多實例模式,要進行消息的處理,就必須知道該消息所屬實例的狀態、該狀態下對應著這條消息的處理函數以及處理結束后躍遷到的狀態[5-6]。因此,在前期開發中定義了每個子層的狀態和接口原語,并為每條原語分配一個信令標識(signlingID),同時每個狀態對應一個消息分組。為保證消息傳遞到對應的進程實例中,為三個多實例模式的子層設計了一個多實例管理模塊,圖2為該模塊的處理流程。從隊列取出消息后,先從消息頭中獲得實例號InstID,將其作為入口函數的參數之一;然后調用多實例處理函數。在函數內部,首先對入口函數中相應的InstID和processID進行有效性判斷,對于錯誤的InstID和processID直接轉入消息內存釋放分支,并返回多實例處理不正常的標識。反之,通過有效的processID獲得相應進程的狀態入口函數,有效的InstID獲得相應的實例狀態地址,接著轉入狀態機處理函數分支;最后對調用函數返回的狀態機處理標識進行判斷,對于正常標志,返回多實例處理正常的標識,否則返回多實例處理不正常的標識。這樣通過返回的處理流程標志,可容易地檢測和定位出錯的位置。

3.3 狀態機處理模塊
    以PDCP子層為例說明狀態機處理模塊的實現流程。如圖3所示,通過對入口函數中攜帶的狀態進行有效性驗證,如果沒有找到匹配的狀態就對該消息所占內存進行釋放;反之,在匹配的狀態下通過消息頭指針獲得消息的signalID。同樣對signalID進行判斷,如果是無效消息標識,則轉入釋放消息內存分支,并向多實例模塊返回狀態機處理不正常的標識;否則將消息轉入相應的消息處理函數。在消息處理函數中,各實例所用的數據緩存都通過分區內存池進行申請,再由分區池對其內存進行統一分配和釋放。消息處理完之后,返回當前實例的狀態賦給入口函數中的狀態指針,通過實例狀態指針的地址對其狀態進行更新。同樣,正常流程處理完之后,對消息所占內存進行釋放,以免發生內存泄露。最后向多實例模塊返回狀態機處理正常的標識。

 

 

3.4 多實例模式實現流程
    在Nucleus操作系統完成所有與目標硬件相關的低級初始化和相關組件的高級初始化子程序后,調用對用戶開放的子程序Application_Initialize模塊。在其中完成分區內存池和動態內存池的分配、為每個子層創建隊列和任務、三個多實例子層的相關信息的初始化以及其他系統組件的初始化。Application_Initialize完成后,Nucleus的初始化完畢,開始進入主控調度程序TCT_Schedule,圖4所示為多實例模式實現流程。 Nucleus主控程序采用等待檢測機制,不斷循環檢測當前執行任務[7]。當向某個多實例子層的隊列發送消息時,將激活掛起在此隊列的任務。一旦主控程序檢測到某個多實例子層任務被激活,則轉入相應子層的任務處理函數。在任務處理函數中,處理函數將從相應的任務隊列中取出消息,然后將消息遞交給多實例管理模塊,通過一些異常情況的檢測后,調用相應多實例進程的狀態機處理函數。在狀態機處理函數中將消息遞交給當前實例狀態下的消息處理函數。在實現過程中,為了避免內存泄露,每次處理完消息之后都及時回收所占內存。同樣如果要釋放某個承載,對應的實例中所開辟的數據存儲區也要進行釋放,釋放后的內存可被再次使用。處理完某個隊列的消息后,又將此隊列的任務掛起,并返回系統的循環檢測控制塊中。

    本文給出了項目協議棧中基于Nucleus操作系統的多實例模式實現機制。Nucleus為用戶提供了靈活的內存管理機制,通過自定義池的大小和不同密度的分區大小,以滿足不同內存的需要。同時增加了一個判斷模塊,將申請任務指定到適應它的最小分區,從而有效地減小了分區內碎片問題。本文設計的多實例管理模塊,能完成異常情況的處理,保證消息順利到達相應進程的狀態機處理函數。結合Nucleus提供的其他任務、隊列等組件功能,該設計方案能實現多實例模式的功能。
參考文獻
[1] 蔣遠.移動通信新技術—LTE快速發展[J].電信工程技術與標準化,2011,24(9):1-4.
[2] 沈嘉.3GPP長期演進(LTE)技術原理與系統設計[M].北京:人民郵電出版社,2008.
[3] 管武.基于ARM的嵌入式測控平臺的設計及實現[D].上海:上海大學,2008.
[4] 左利云,吳良海.基于內存管理的多重查詢調度算法[J].計算機研究與發展,2010,20(7):121-124.
[5] 李小文,陳賢亮.TD-SCDMA第三代移動通信系統、信令及實現[M].北京:人民郵電出版社,2003.
[6] 宋茂強.通信軟件設計基礎(第2版)[M].北京:北京郵電大學出版社,2008.
[7] 魏振華.嵌入式實時操作系統Nucleus中線程控制部件的實現方法[J].計算機應用研究,2003,20(4):97-99.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲视屏一区| 欧美亚洲日本一区| 黄色精品一区| 香蕉久久夜色精品国产使用方法| 久久久久青草大香线综合精品| 亚洲国产成人久久| 国产日本欧美视频| 国产欧美一区二区三区久久| 在线观看视频一区| 久久亚洲影音av资源网| 午夜日韩视频| 欧美在线在线| 美女主播精品视频一二三四| 欧美精品v日韩精品v韩国精品v| 国产欧美日本一区二区三区| 性久久久久久| 久久一综合视频| 欧美极品一区| 欧美三级乱人伦电影| 欧美三级日本三级少妇99| av成人手机在线| 亚洲成在人线av| 日韩一区二区福利| 欧美在线免费观看视频| 国产亚洲欧美日韩一区二区| 国产精品成人午夜| 国产精品福利av| 国产精品久久久久aaaa樱花| 亚洲美女啪啪| 亚洲永久精品大片| 日韩一区二区福利| 久久伊人一区二区| 亚洲一区久久久| 欧美日韩国产综合在线| 中文成人激情娱乐网| 制服诱惑一区二区| 国产精品久久久一区二区| 篠田优中文在线播放第一区| 亚洲狠狠丁香婷婷综合久久久| 国产精品免费观看在线| 午夜精品一区二区三区在线播放| 久久精品亚洲一区| 99视频精品全部免费在线| 国产精品一区二区你懂的| 欧美裸体一区二区三区| 亚洲尤物在线| 午夜欧美大片免费观看| 在线播放精品| 亚洲视频网在线直播| 亚洲国产欧美一区二区三区同亚洲| 国内精品国语自产拍在线观看| 亚洲黄色有码视频| 亚洲第一中文字幕在线观看| 亚洲欧美在线一区二区| 亚洲人成绝费网站色www| 在线一区免费观看| 欧美一区二区三区久久精品茉莉花| 欧美精品日韩www.p站| 久久综合色综合88| 久久综合狠狠综合久久综青草| 美女视频黄免费的久久| 久久不射中文字幕| 一区二区三区不卡视频在线观看| 一个色综合av| 国产日韩av一区二区| 欧美日韩国产不卡在线看| 激情成人亚洲| 久久gogo国模裸体人体| 在线看片第一页欧美| 国产精品入口日韩视频大尺度| 欧美一区二区免费观在线| 在线一区二区视频| 欧美日韩一区综合| 亚洲婷婷综合久久一本伊一区| 亚洲免费av电影| 国产午夜亚洲精品理论片色戒| 欧美福利网址| 亚洲精品1区| 亚洲一级黄色| 欧美日韩大片一区二区三区| 国产视频一区二区在线观看| 国产在线精品一区二区中文| 国产一区二区三区日韩| 欧美日韩在线三级| 国内视频一区| 亚洲成人资源| 亚洲第一色在线| 国产日韩精品在线观看| 亚洲欧美日韩中文播放| 亚洲欧美成人网| 国产日韩精品一区观看| 欧美三级电影一区| 国产精品人人做人人爽| 欧美激情中文字幕一区二区| 亚欧成人在线| 国产精品mm| 亚洲伊人伊色伊影伊综合网| 99精品久久免费看蜜臀剧情介绍| 亚洲日本成人在线观看| 亚洲欧洲综合另类在线| 久久这里有精品15一区二区三区| 欧美日韩精选| 激情亚洲网站| 野花国产精品入口| 国产一区二区三区奇米久涩| 久久久www免费人成黑人精品| 欧美大香线蕉线伊人久久国产精品| 国产日韩欧美精品一区| 老司机一区二区三区| 欧美日韩精品免费观看视频完整| 亚洲国产专区| 欧美日韩大片一区二区三区| 国产欧美日韩综合| 91久久中文字幕| 99国产精品久久久| 欧美精品免费在线| 亚洲视频网站在线观看| 黄色成人av| 国产亚洲欧美一区二区| 国产视频在线观看一区二区三区| 一区二区三区日韩| 一区二区三区www| 欧美刺激性大交免费视频| 国产情人综合久久777777| 国产色产综合色产在线视频| 国产精品黄色在线观看| 欧美一级片久久久久久久| 国产精品专区h在线观看| 亚洲国产精品欧美一二99| 久久久久久夜精品精品免费| 亚洲免费影视第一页| 欧美色网在线| 欧美裸体一区二区三区| 国产一区自拍视频| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美亚州韩日在线看免费版国语版| 久久精品综合网| 久久精品五月| 欧美久久在线| 亚洲视频免费| 国产在线精品一区二区夜色| 99国产精品国产精品久久| 国产精品一区二区三区乱码| 久久一综合视频| 亚洲免费激情| 欧美激情视频给我| 欧美高潮视频| 最新高清无码专区| 伊人春色精品| 中日韩在线视频| 亚洲欧洲在线播放| 亚洲国产专区校园欧美| 久久久久久久网站| 欧美午夜精品久久久久久浪潮| 另类图片国产| 久久国产主播| 亚洲国产视频一区二区| 国产精品自在线| 国产精品久久看| 久久久久国产精品一区三寸| 午夜精品久久久久久久久久久久| 欧美日韩高清在线一区| 另类尿喷潮videofree| 欧美特黄a级高清免费大片a级| 久久亚洲国产成人| 免费毛片一区二区三区久久久| 老司机精品视频一区二区三区| 国产精品视频免费观看| 欧美韩国日本一区| 亚洲最新视频在线播放| 中文欧美日韩| 欧美日韩精品免费观看视频| 一区二区三区自拍| 国产一区观看| 欧美一区二区三区四区在线观看地址| 一区二区激情视频| 欧美sm重口味系列视频在线观看| 国产亚洲欧洲| 香蕉久久夜色精品国产使用方法| 国产精品私拍pans大尺度在线| 久久亚洲国产成人| 狠狠狠色丁香婷婷综合激情| 欧美日韩在线直播| 久久婷婷国产综合精品青草| 亚洲经典一区| av成人免费观看| 99在线热播精品免费| 久久精品国产欧美亚洲人人爽| 久久大香伊蕉在人线观看热2| 亚洲国产精品专区久久| 欧美午夜无遮挡| 一区二区三区精品国产| 最近看过的日韩成人| 国产伦精品一区二区三区高清| 亚洲第一精品福利| 日韩视频在线观看国产| 最新日韩精品| 欧美综合第一页| 久久久久久久综合| 亚洲国产欧洲综合997久久| 国产啪精品视频| 久久www成人_看片免费不卡| 伊人久久婷婷| 欧美日韩p片| 国产真实久久| 国产精品入口66mio| 久久琪琪电影院| 亚洲人成在线播放| 亚洲第一福利在线观看| 亚洲一区二区三区视频| 中国日韩欧美久久久久久久久| 欧美韩国一区| 欧美三日本三级少妇三99| 小黄鸭视频精品导航| 国产一区 二区 三区一级| 国产免费观看久久| 一区二区三区四区五区精品视频| 欧美fxxxxxx另类| 欧美日韩一区二区免费在线观看| 欧美精品xxxxbbbb| 国产精品一卡二| 欧美亚日韩国产aⅴ精品中极品| 亚洲一区二区三区四区在线观看| 中国女人久久久| 牛牛精品成人免费视频| 裸体素人女欧美日韩| 一本久道综合久久精品| 国产麻豆午夜三级精品| 在线一区日本视频| 久久综合免费视频影院| 国产区欧美区日韩区| 亚洲色图制服丝袜| 国产日韩欧美一区二区三区四区| 久久久青草婷婷精品综合日韩| 免费久久精品视频| 亚洲国产成人久久综合一区| 亚洲高清视频在线观看| 亚洲狠狠丁香婷婷综合久久久| 国产一区二区精品久久99| 性做久久久久久久免费看| 午夜久久福利| 欧美特黄a级高清免费大片a级| 亚洲美女av电影| 欧美三级在线| 欧美激情四色| 亚洲欧洲一区二区三区在线观看| 国产精品一区视频网站| 欧美在线视频观看免费网站| 亚洲一级二级| 国产精品高清在线观看| 国产精品每日更新在线播放网址| 美女精品在线| 亚洲第一网站| 黄色日韩网站| 欧美激情91| 久久精品国产在热久久| 亚洲色图综合久久| 国产精品一区二区a| 久久视频免费观看| 亚洲国产欧美国产综合一区| 一区二区三区在线高清| 亚洲国产精品一区在线观看不卡| 亚洲精品国产精品久久清纯直播| 亚洲二区在线视频| 最新日韩在线| 国内精品亚洲| 亚洲精品护士| 性欧美xxxx视频在线观看| 一本在线高清不卡dvd| 亚洲人体一区| 最新国产成人av网站网址麻豆| 国产精品国产三级国产专播品爱网| 国产一区二区三区久久| 精品成人一区二区三区| 久久成人18免费网站| 欧美性猛交xxxx乱大交退制版| 亚洲高清久久| 亚洲国产日韩一级| 久久影院午夜论| 久久久另类综合| 国产精品久久久久91| 亚洲午夜视频在线观看| 国产日韩一区欧美| 国产精品xxx在线观看www| 欧美日韩国产高清| 韩国欧美国产1区| 国产又爽又黄的激情精品视频| 欧美精品一区在线发布| 日韩一区二区久久| 国产精品私拍pans大尺度在线| 欧美成ee人免费视频| 欧美日韩极品在线观看一区| 在线观看国产精品网站| 亚洲精品国产精品国产自| 亚洲国产视频直播| 国产一区二区在线免费观看| 欧美一级播放| 亚洲精品在线视频观看| 美女国内精品自产拍在线播放| 久久精品盗摄| 欧美福利视频一区| 一区在线观看视频| 亚洲高清激情| 欧美日韩精品一区| 欧美一区二区三区四区在线观看地址| 亚洲网在线观看| 欧美激情视频一区二区三区在线播放| 亚洲视频axxx| 久久久欧美精品| 久久久久88色偷偷免费| 久久精精品视频| 久久一区二区三区四区五区| 免费观看一级特黄欧美大片| 欧美大片第1页| 在线观看日产精品| 欧美精品 国产精品| 欧美激情精品久久久久久免费印度| 欧美精品成人在线| 亚洲自拍偷拍福利| 欧美在线地址| 久久夜色精品一区| 亚洲区第一页| 亚洲欧美在线免费观看| 蜜臀久久久99精品久久久久久| 在线看片日韩| 午夜精品剧场| 欧美精品在线视频观看| 亚洲黄色性网站|