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

        ?

        基于Linux操作系統(tǒng)的虛擬軟件平臺內存管理設計

        2015-03-06 07:13:02殷錫亮
        黑龍江科學 2015年1期
        關鍵詞:實時性線程字節(jié)

        殷錫亮

        (哈爾濱僑航通信設備有限公司,哈爾濱 150028)

        現(xiàn)代嵌入式處理器上越來越多的使用Linux操作系統(tǒng)。這不僅由于Linux是免費開源的,并有眾多的軟件開發(fā)者共同開發(fā),它也具有實時性等特點,來滿足嵌入式系統(tǒng)開發(fā)所需的特性。雖然Linux本身就提供很好的內存使用機制,但是由于通信軟件對內存使用有其特殊的方式,長期的直接運行于Linux之上會造成很多的內存碎片,造成無法申請到內存。

        本文基于Linux操作系統(tǒng)設計了一種虛擬軟件平臺,并著重介紹這個虛擬平臺提供的內存管理機制。

        1 Linux操作系統(tǒng)以及虛擬軟件平臺

        1.1 Linux操作系統(tǒng)

        Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的UNIX工具軟件、應用程序和網絡協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩(wěn)定的多用戶網絡操作系統(tǒng)。

        由于Linux具有的眾多特性,通信設備中越來越多地采用Linux,代替費用昂貴的Vx Works操作系統(tǒng)。盡管會降低一定程度的實時性,但由于實時業(yè)務的逐年下降,取而代之的是非實時的數(shù)據(jù)業(yè)務,系統(tǒng)對于實時性的依賴程度逐漸降低,這也為使用linux提供了可行性。

        1.2 虛擬軟件平臺

        通信軟件架構一般采用如下圖的軟件架構模式。

        圖1

        虛擬軟件平臺位于操作系統(tǒng)與上層軟件之間,屏蔽了操作系統(tǒng)的特性,由于其特殊的作用,所以它必須提供諸如TCP/IP通信,進程間通信,進程調度,內存管理,定時器管理,狀態(tài)機等諸多功能,而最為重要的就是內存管理。

        2 內存管理

        2.1 內存的分類

        系統(tǒng)內存分為堆內存以及棧內存,對于小于2048字節(jié)的內存,一般使用的是棧內存,這種大小的數(shù)據(jù)區(qū)一般用來傳輸信令數(shù)據(jù),對于傳輸更大的數(shù)據(jù)塊,需要申請的是堆內存。

        2.2 內存池初始化

        根據(jù)分析通信系統(tǒng)軟件架構,大概需要幾種消息類型,它們使用的數(shù)據(jù)長度大約為128字節(jié),256字節(jié),512字節(jié),1024字節(jié),2 048 字節(jié),4 096字節(jié),8 192字節(jié),16 384字節(jié)等。(如圖2所示)

        圖2

        在內存池的構建上,我們也根據(jù)需求,分別向操作系統(tǒng)申請堆內存以及棧內存。其中小于以及等于2 048字節(jié)的,申請棧內存,即靜態(tài)數(shù)據(jù)區(qū)內存;對于大于2 048字節(jié)的,申請堆內存,即動態(tài)內存區(qū)內存。但是動態(tài)內存在內存池初始化后對于操作系統(tǒng)來說,它也變成了靜態(tài)的內存,因為所有的內存申請操作以及回收操作,都是這一片在初始化即申請到的系統(tǒng)內存上面進行。

        2.3 內存分配使用算法

        根據(jù)業(yè)務模塊調用傳進的數(shù)據(jù)長度參數(shù),判斷數(shù)據(jù)長度是屬于哪一個數(shù)據(jù)區(qū)間,如果小于64字節(jié),即使用64字節(jié)內存池,如果數(shù)據(jù)長度在64與128之間,則使用128字節(jié)內存池,以此類推。

        申請到內存池的內存塊后,內存管理模塊,自動把它從就緒隊列移到運行隊列尾,并根據(jù)系統(tǒng)時間戳,申請串號(內存池行號以及列號),申請內存進程ID,對內存塊標注(形成一個唯一的標識),直到內存申請進程釋放這片內存,內存管理模塊根據(jù)申請串號在運行隊列找到這片內存,并把它內容清空,放回到就緒隊列尾。

        2.4 并發(fā)申請

        如果使用內存管理模塊的應用進程為多線程處理,就必須在申請內存的操作以及釋放內存的操作加入互斥機制,比如線程鎖,或者信號的PV操作,等等,用來保護內存管理機制,使其能夠串行地對內存池進行操作。

        抑或為了增加系統(tǒng)的并發(fā)性處理機制,可以在初始化的時候明確應用進程使用幾個線程,為每個線程獨立配備一個內存池,這樣不會出現(xiàn)競爭機制,加快了系統(tǒng)的運行速度。

        筆者推薦后一種方法,因為通信軟件的系統(tǒng)特性,這種處理方法更有利于系統(tǒng)穩(wěn)定的運行。

        3 結語

        內存作為一個系統(tǒng)軟件運行依賴最為重要的資源,需要統(tǒng)一地進行分配管理,不能由上層的業(yè)務模塊自行調用系統(tǒng)A P I,去直接操作系統(tǒng)內存,這樣會造成內存碎片的產生,降低系統(tǒng)的可靠性。

        [1] (美)博韋.深入理解 LINUX內核[M].陳莉群,馮銳,牛欣源,譯.中國電力出版社,2008.

        [2] [美]洛夫.Linux系統(tǒng)編程[M].東南大學出版社,2009.

        [3] Dharma Prakash AgrawalQing-An Zeng.無線與移動通信系統(tǒng)[M].徐春秀,武穆清,譯.人民郵電出版社,2005.

        [4] (美)W.Richard Stevens Stephen A.Rago.UNIX環(huán)境高級編程[M].尤晉元,張亞英,戚正偉,譯.人民郵電出版社,2008.

        [5] 嚴蔚敏,吳偉民.數(shù)據(jù)結構(C語言)[M].清華大學出版社,2007.

        猜你喜歡
        實時性線程字節(jié)
        No.8 字節(jié)跳動將推出獨立出口電商APP
        基于規(guī)則實時性的端云動態(tài)分配方法研究
        高技術通訊(2021年3期)2021-06-09 06:57:24
        No.10 “字節(jié)跳動手機”要來了?
        基于虛擬局域網的智能變電站通信網絡實時性仿真
        簡談MC7字節(jié)碼
        航空電子AFDX與AVB傳輸實時性抗干擾對比
        淺談linux多線程協(xié)作
        一種車載Profibus總線系統(tǒng)的實時性分析
        Linux線程實現(xiàn)技術研究
        人類進入“澤它時代”
        国产又色又爽又黄刺激在线视频| 91九色精品日韩内射无| 国产av一卡二卡日韩av| 男人的天堂av网站| 天美传媒精品1区2区3区| 欧美色图50p| 91美女片黄在线观看| 少妇久久高潮不断免费视频| 一本久道高清视频在线观看| 亚洲乱码日产精品一二三| 色婷婷日日躁夜夜躁| 亚洲无码激情视频在线观看| 精品私密av一区二区三区| 丰满少妇被粗大猛烈进人高清 | 高清偷自拍第1页| 亚洲中文有码字幕青青| 亚洲a人片在线观看网址| 伊人婷婷综合缴情亚洲五月| 91精品国产色综合久久| 国产好大好硬好爽免费不卡| 欧美专区在线| 免费啪啪av人妻一区二区| 美女视频在线观看亚洲色图| 日本一卡2卡3卡4卡无卡免费网站| 9999毛片免费看| 99国产精品欲av麻豆在线观看| 亚洲精品1区2区在线观看| 人妻少妇久久中文字幕一区二区| 国产91 对白在线播放九色 | 日本不卡视频一区二区| 野外亲子乱子伦视频丶| 2021国产视频不卡在线| 色青青女同性恋视频日本熟女| 精品国产一区二区三区不卡在线| 久久久久亚洲av片无码v| 亚洲精品理论电影在线观看 | 虎白女粉嫩粉嫩的18在线观看| 边啃奶头边躁狠狠躁| 欧美色图50p| 免费人妖一区二区三区| 免费黄色影片|