產(chǎn)品分類

      當前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 自動化控制 > 導(dǎo)軌式開關(guān)電源

      類型分類:
      科普知識
      數(shù)據(jù)分類:
      導(dǎo)軌式開關(guān)電源

      嵌入式系統(tǒng)內(nèi)存管理方案研究

      發(fā)布日期:2022-04-17 點擊率:97

       引 言

             內(nèi)存管理機制是嵌入式系統(tǒng)研究中的一個重點和難點的問題,它必須滿足以下幾個特性:

             ①實時性。從實時性的角度出發(fā),要求內(nèi)存分配過程要盡可能地快。因此,在嵌入式系統(tǒng)中,不可能采用通用操作系統(tǒng)的一些復(fù)雜而完善的內(nèi)存分配策略,一般沒有段頁式的虛存管理機制;而是采用簡單、快速的內(nèi)存分配方案,其分配方案也因程序?qū)崟r性的要求而異。例如,VxWorks系統(tǒng)采用簡單的“首次適應(yīng),立即聚合”方法;VRTX中采用多個固定尺寸存儲塊的binning方案。

       

             ②可靠性。嵌入式系統(tǒng)應(yīng)用的環(huán)境千變?nèi)f化,在有些特定情況下,對系統(tǒng)的可靠性要求極高,內(nèi)存分配的請求必須得到滿足,如果分配失敗則可能會帶來災(zāi)難性的后果。比如,飛機的燃油檢測系統(tǒng)。在飛機飛行過程中,如果燃料發(fā)生泄漏,系統(tǒng)應(yīng)該立即檢測到,并發(fā)出相應(yīng)的警報等待飛行員及時處理。如果因為內(nèi)存分配失敗而不能相應(yīng)地操作,就可能發(fā)生機毀人亡的事故。

             ③高效性。內(nèi)存分配要盡可能地減少浪費。不可能為了保證滿足所有的內(nèi)存分配請求而將內(nèi)存配置得很大。一方面,嵌入式系統(tǒng)對成本的要求使得內(nèi)存在其中只是一種很有限的資源;另一方面,即使不考慮成本的因素,系統(tǒng)硬件環(huán)境有限的空間和有限的板面積決定了可配置的內(nèi)存容量是很有限的。

             針對以上三個約束條件,市場上主流的嵌入式操作系統(tǒng),如VxWorks、嵌入式Linux等均提出了一套有效的解決方案;但是,這些系統(tǒng)只提供了應(yīng)用開發(fā)的接口,其底層的實現(xiàn)方案不可見。本文以開源的嵌入式操作系統(tǒng)RTEMS為例,分析了嵌入式系統(tǒng)內(nèi)存管理所面臨的問題,研究了其底層實現(xiàn)的解決方案。一般的嵌入式系統(tǒng)中最基本的內(nèi)存管理方案有兩種——靜態(tài)分配和動態(tài)分配。

      1、靜態(tài)分配與動態(tài)分配

              靜態(tài)分配是指在編譯或鏈接時將程序所需的內(nèi)存空間分配好。采用這種分配方案的程序段,其大小一般在編譯時就能夠確定;而動態(tài)分配是指系統(tǒng)運行時根據(jù)需要動態(tài)地分配內(nèi)存。這兩種策略的選取一直是嵌入式系統(tǒng)設(shè)計中一個令人頭痛的問題。

              一般的嵌入式系統(tǒng)都支持靜態(tài)分配,因為像中斷向量表、操作系統(tǒng)映像這類的程序段,其程序大小在編譯和鏈接時是可以確定的。而是否支持動態(tài)分配主要基于兩個方面的考慮:首先是實時性和可靠性的要求,其次是成本的要求。對于實時性和可靠性要求極高的系統(tǒng)(硬實時系統(tǒng)),不允許延時或者分配失效,必須采用靜態(tài)內(nèi)存分配,如航天器上的嵌入式系統(tǒng)多采用靜態(tài)內(nèi)存分配。除了基于成本的考慮外,用于汽車電子和工業(yè)自動化領(lǐng)域的一些系統(tǒng)也沒有動態(tài)內(nèi)存分配,比如WindRiver著名的OSEKWorks系統(tǒng)。然而,僅僅采用靜態(tài)分配,使系統(tǒng)失去了靈活性。必須在設(shè)計階段就預(yù)先知道所需要的內(nèi)存并對之作出分配;必須在設(shè)計階段就預(yù)先考慮到所有可能的情況,因為一旦出現(xiàn)沒有考慮到的情況,正在運行的系統(tǒng)就無法處理。這樣的分配方案必然導(dǎo)致很大的浪費。因為內(nèi)存分配必須按照最壞情況進行最大的配置,而實際運行時很可能只使用其中的一小部分;而且在硬件平臺不變的情況下,不可能靈活地為系統(tǒng)添加功能,從而使得系統(tǒng)的升級變得困難。

              雖然動態(tài)內(nèi)存分配會導(dǎo)致響應(yīng)和執(zhí)行時間不確定、內(nèi)存碎片等問題,但是它的實現(xiàn)機制靈活,給程序?qū)崿F(xiàn)帶來極大的方便,有的應(yīng)用環(huán)境中動態(tài)內(nèi)存分配甚至最必不可少的。比如,嵌入式系統(tǒng)中使用的網(wǎng)絡(luò)協(xié)議棧,在特定的平臺下,為了比較靈活地調(diào)整系統(tǒng)的功能,在系統(tǒng)中各個功能之間作出權(quán)衡,必須支持動態(tài)內(nèi)存分配。例如,為了使系統(tǒng)能夠及時地在支持的VLAN數(shù)和支持的路由條目數(shù)之間作出調(diào)整,或者為了使不同的版本支持不同的協(xié)議,類似于malloc和free這類的函數(shù)是必不可少的。

      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      推薦產(chǎn)品

      更多
      主站蜘蛛池模板: 在线观看国产区亚洲一区成人| 亚洲另类无码一区二区三区| 精品国产亚洲一区二区三区 | 亚洲人AV永久一区二区三区久久| 少妇人妻精品一区二区三区| 午夜福利国产一区二区| 亚洲av无码一区二区乱子伦as | 国产对白精品刺激一区二区| 国产品无码一区二区三区在线蜜桃| 麻豆AV天堂一区二区香蕉| 亚洲AV综合色区无码一区| 国产美女露脸口爆吞精一区二区| 鲁丝丝国产一区二区| 亚洲性无码一区二区三区| 无码人妻精品一区二区三区在线| 91一区二区三区| 精品福利一区二区三区| 亚洲A∨精品一区二区三区 | 一区二区三区观看免费中文视频在线播放 | 久久精品一区二区三区日韩| 国产精品主播一区二区| 乱人伦一区二区三区| 婷婷国产成人精品一区二| 日韩AV在线不卡一区二区三区| 性色AV一区二区三区无码| 国产乱人伦精品一区二区在线观看| 日韩一区二区视频| 海角国精产品一区一区三区糖心| 亚洲国产成人久久一区二区三区 | 精品一区二区三区免费视频| 一区二区在线视频观看| 亚洲人成网站18禁止一区| 丰满人妻一区二区三区视频53 | 亚洲av乱码一区二区三区香蕉 | 精品久久一区二区三区| 午夜福利一区二区三区在线观看| 亚洲天堂一区在线| 精品欧美一区二区在线观看| 精品在线一区二区| 国产AV午夜精品一区二区三区| 久久久久人妻一区二区三区vr|