公司新聞
虛擬內(nèi)存的管理方法使系統(tǒng)既可以運行體積比物理內(nèi)存還要大的應(yīng)用程序,也可以實現(xiàn)“按需調(diào)頁”策略,既滿足了程序的運行速度,又節(jié)約了物理內(nèi)存空間。
一般中高檔的嵌入式微處理器才會把Cache集成進去。2主存 主存是嵌入式微處理器能直接訪問的寄存器,用來存放系統(tǒng)和用戶的程序及數(shù)據(jù)。它可以位于微處理器的內(nèi)部或外部,其容量為256KB~1GB,根據(jù)具體的應(yīng)用而定,一般片內(nèi)存儲器容量小,速度快,片外存儲器容量大。
雖然額外開銷和內(nèi)部碎片會浪費內(nèi)存,因此是不可取的,但外部碎片才是嵌入系統(tǒng)開發(fā)人員真正的敵人,造成系統(tǒng)失效的正是分配問題。定義內(nèi)存碎片的方法有幾種,其中最常用的是:這一方法適用于外部碎片,但可以修改這一公式使之包括內(nèi)部碎片,辦法是把內(nèi)部碎片加入到分母中。內(nèi)存碎片是一個介于 0 和 1 之間的分?jǐn)?shù)。
這個問題你要抓住本質(zhì)來看。Nand Flash和Nor Flash是做什么用的,為什么嵌入式系統(tǒng)里要用到他們?其實,上述兩個Flash只是存儲芯片,相當(dāng)于電腦的內(nèi)存,另外還有一個DRAM或者SDRAM。
嵌入式系統(tǒng)所用到的內(nèi)存管理機制主要有以下兩種:虛擬內(nèi)存管理機制:有一些嵌入式處理器提供了MMU,在MMU具備內(nèi)存地址映射和尋址功能,它使操作系統(tǒng)的內(nèi)存管理更加方便。如果存在MMU ,操作系統(tǒng)會使用它完成從虛擬地址到物理地址的轉(zhuǎn)換, 所有的應(yīng)用程序只需要使用虛擬地址尋址數(shù)據(jù)。
嵌入式系統(tǒng)的軟件大多存儲在非易失性存儲器中,即使斷電也不會消失。目前嵌入式系統(tǒng)使用最多的非易失性存儲器是flash memory(閃存)。
存儲器的類型將決定整個嵌入式系統(tǒng)的操作和性能,因此存儲器的選擇是一個非常重要的決策。無論系統(tǒng)是采用電池供電還是由市電供電,應(yīng)用需求將決定存儲器的類型(易失性或非易失性)以及使用目的(存儲代碼、數(shù)據(jù)或者兩者兼有)。另外,在選擇過程中,存儲器的尺寸和成本也是需要考慮的重要因素。
一般情況下,嵌入式操作系統(tǒng)可以分為兩類,一類是面向控制、通信等領(lǐng)域的實時操作系統(tǒng),如windriver公司的vxworks、isi的psos、qnx系統(tǒng)軟件公司的qnx、ati的nucleus等;另一類是面向消費電子產(chǎn)品的非實時操作系統(tǒng),這類產(chǎn)品包括個人數(shù)字助理(pda)、移動電話、機頂盒、電子書、webphone等。
這個一般看你的嵌入式系統(tǒng)用的什么操作系統(tǒng)了,最常見的就是一般就是Linux了的伙伴算法了。給你兩個帖子,關(guān)于linux內(nèi)存管理的,先學(xué)習(xí)下吧。不是一兩句就說的清楚的了。
嵌入式系統(tǒng)所用到的內(nèi)存管理機制主要有以下兩種:虛擬內(nèi)存管理機制:有一些嵌入式處理器提供了MMU,在MMU具備內(nèi)存地址映射和尋址功能,它使操作系統(tǒng)的內(nèi)存管理更加方便。如果存在MMU ,操作系統(tǒng)會使用它完成從虛擬地址到物理地址的轉(zhuǎn)換, 所有的應(yīng)用程序只需要使用虛擬地址尋址數(shù)據(jù)。
-分區(qū)分塊使用。嵌入式系統(tǒng)特點是內(nèi)存比較少,尤其應(yīng)當(dāng)分區(qū)塊進行統(tǒng)一劃分、管理,以便物盡其用。有些嵌入式核心芯片的內(nèi)存儲器每塊訪問速度不同,或者有cache結(jié)構(gòu),這就更應(yīng)當(dāng)如此了,才能發(fā)揮特殊區(qū)塊讀寫的最大優(yōu)勢。同時還比較容易成塊數(shù)據(jù)一次性寫入讀出EEPROM或Flash。-建立動態(tài)內(nèi)存池。
這個一般看你的嵌入式系統(tǒng)用的什么操作系統(tǒng)了,最常見的就是一般就是Linux了的伙伴算法了。給你兩個帖子,關(guān)于linux內(nèi)存管理的,先學(xué)習(xí)下吧。不是一兩句就說的清楚的了。
這種情況在許多嵌入式系統(tǒng)中,特別是在高可用性系統(tǒng)中是不可接受的。有些軟件環(huán)境,如 OSE 實時操作系統(tǒng)已經(jīng)備有避免內(nèi)存碎片的良好工具,但個別程序員做出的選擇仍然會對最終結(jié)果形成影響?!八槠膬?nèi)存”描述一個系統(tǒng)中所有不可用的空閑內(nèi)存。這些資源之所以仍然未被使用,是因為負責(zé)分配內(nèi)存的分配器使這些內(nèi)存無法使用。
內(nèi)存的三種分配方式:\x0d\x0a1. 從靜態(tài)存儲區(qū)分配:此時的內(nèi)存在程序編譯的時候已經(jīng)分配好,并且在程序的整個運行期間都存在。全局變量,static變量等在此存儲。\x0d\x0a2. 在棧區(qū)分配:相關(guān)代碼執(zhí)行時創(chuàng)建,執(zhí)行結(jié)束時被自動釋放。局部變量在此存儲。
1、與通用操作系統(tǒng)不同,實時操作系統(tǒng)注重的不是系統(tǒng)的平均表現(xiàn),而是要求每個實時任務(wù)在最壞情況下都要滿足其實時性要求,也就是說,實時操作系統(tǒng)注重的是個體表現(xiàn),更準(zhǔn)確地講是個體最壞情況表現(xiàn)。嵌入式操作系統(tǒng)的用戶接口一般不提供操作命令,它通過系統(tǒng)的調(diào)用命令向用戶程序提供服務(wù)。⑦固化代碼。
2、嵌入式操作系統(tǒng)會為了外部的事情而終止內(nèi)部的一切事情,為更重要的事情服務(wù)。而通用操作系統(tǒng)則沒有這樣的特殊設(shè)計,有可能由于系統(tǒng)的一些任務(wù)而阻止相應(yīng)中斷,對中斷置之不理。并且多久后能夠相應(yīng)也不確定,而嵌入式操作系統(tǒng)就能夠確定一定的時間范圍能。起碼理論上已經(jīng)可以。
3、嵌入式系統(tǒng)(簡稱“嵌”)和通用計算機(簡稱“通”)的主要區(qū)別包括以下幾點:形式與類型 “通”:實實在在的計算機。
4、嵌入式系統(tǒng)通常是面向特定應(yīng)用的嵌入式CPU與通用型的最大不同就是嵌入式CPU大多工作在為特定用戶群設(shè)計的系統(tǒng)中,它通常都具有低功耗、體積小、集成度高等特點,能夠把通用CPU中許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)設(shè)計趨于小型化,移動能力大大增強,跟網(wǎng)絡(luò)的耦合也越來越緊密。