<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式操作系統內存管理技術(shù)的分析與比較

嵌入式操作系統內存管理技術(shù)的分析與比較

作者: 時(shí)間:2009-12-14 來(lái)源:網(wǎng)絡(luò ) 收藏

(2)虛擬地址映射
MMU一般將頁(yè)面分成4 KB大小的頁(yè)面。由于CPU不同,頁(yè)面大小也可以是1 KB或其他大小。內核使用MMU,將物理映射到塊的虛擬地址范圍內。WinCE與Symbian的虛擬地址映射圖如圖1所示,其中WinCE內核表現為NK.exe進(jìn)程。

本文引用地址:http://dyxdggzs.com/article/152235.htm

在A(yíng)RMv5中,最高層的頁(yè)表有4 096個(gè)條目,每個(gè)條目4字節,因此整個(gè)目錄就有16 KB。由于WinCE支持多種不同的CPU,CPU設計結構不同頁(yè)目錄也不同,但是計算方法與ARMv5類(lèi)似。WinCE首先直接給每個(gè)進(jìn)程分配一個(gè)不同的頁(yè)表,在進(jìn)程切換中直接將不同進(jìn)程的頁(yè)表寫(xiě)入MMU的基寄存器TTBR中來(lái)實(shí)現映射。而Sym-bian系統認為每個(gè)進(jìn)程分配16 KB頁(yè)表會(huì )造成的浪費,因此采用了另一種地址映射的方法。
該模型針對ARMv5結構設計,被稱(chēng)為移動(dòng)模型。其核心思想是對每個(gè)進(jìn)程都提供同樣的虛擬地址空間,但是被保護的內存頁(yè)面卻不一樣。在頁(yè)面切換中,首先將原有進(jìn)程的內存移出執行地址空間,使其在用戶(hù)模式下不能訪(fǎng)問(wèn)。接著(zhù)將新進(jìn)程的數據移入執行地址,并使其可以訪(fǎng)問(wèn)。這一思想是在內存模型上層通過(guò)Chunk實(shí)現的。通過(guò)ARMv5中提供的頁(yè)表訪(fǎng)問(wèn)權限和域概念,通過(guò)改變MMU中寄存器指向的域,達到進(jìn)程間保護和內存映射。這種設計方法帶來(lái)了內核層的低內存消耗,但是雖然在內核層的安全性和內存使用效率上有所改善,卻對其他進(jìn)程的運行帶來(lái)一定影響。當映射到不同的虛擬地址空間,所有被修改的數據都要重新從主存中載入,并且緩存中的數據因為已經(jīng)被丟棄,必須重新載入。因此,該模式下的進(jìn)程上下文中很大一部分時(shí)間消耗在緩存的刷新上,一般情況下其速度是線(xiàn)程切換(同進(jìn)程)的1/100左右。盡管采取了其他措施,但是沒(méi)有從根本上改變運行時(shí)間。
在最新的ARMv6中,Symbian引入了多重內存模型。該模型兼容性更強,并可在主流處理器Intel x86和Re-nesas SuperH上使用。該模型建立在與設備和無(wú)關(guān)的基礎上,利用ARMv6中的應用空間辨識器(ASID),并通過(guò)物理標記緩存保證了在虛擬地址和物理地址間多重映射的正確性,很好地解決了移動(dòng)內存模型中的緩存刷新問(wèn)題。
2.4 其他
(1)按需頁(yè)面調度
由于在系統中虛擬內存遠大于物理內存,因此系統必須對內存使用格外注意。一種節約物理內存使用的方法是,只加載當前運行程序使用的虛擬內存所對應的物理內存,這種方法稱(chēng)為按需頁(yè)面調度。當一個(gè)進(jìn)程試圖訪(fǎng)問(wèn)一個(gè)不在當前內存中的虛擬內存地址時(shí),系統這時(shí)會(huì )重新從磁盤(pán)上將該區域加載到內存中去。桌面很久以來(lái)一直使用這一,來(lái)加快系統啟動(dòng)速度和優(yōu)化程序運行效率,WinCE也不例外。
WinCE中,可以通過(guò)使用Config.bib對整個(gè)系統的按需頁(yè)面調度進(jìn)行設置,或通過(guò)LoadDriver等函數對單個(gè)DLL的按需頁(yè)面調度進(jìn)行設置。Symbian卻不支持這一技術(shù)。這主要是由于系統本身內存太小,采用這一技術(shù)會(huì )帶來(lái)性能大幅下降。不過(guò)隨著(zhù)手機硬件的發(fā)展,在Symbian OS v9.3以后,系統開(kāi)始支持按需頁(yè)面調度。這一技術(shù)優(yōu)化了內存使用,在需要時(shí)加載只讀代碼,從而實(shí)現了對RAM的更高使用效率。這讓用戶(hù)可以更快地安裝應用程序,并同時(shí)保持多個(gè)應用程序的開(kāi)放狀態(tài)。
(2)內存碎片整理
在一個(gè)實(shí)時(shí)系統中,連續的頁(yè)面請求可能會(huì )帶來(lái)性能的下降。這是由于在小對象(小于1 KB的數據類(lèi)型)對內存的頻繁的動(dòng)態(tài)申請和釋放過(guò)程中,由于釋放后留下的空洞不夠新對象分配,導致不連續的內存可用空間無(wú)法被應用程序獲得,造成可用內存迅速耗盡。這種內存空洞也叫內存碎片。操作系統可能會(huì )對這種情況作一定程度的優(yōu)化,但是由于將內存可用空間壓縮而導致的效率負擔,并不是所有的操作系統都會(huì )對此優(yōu)化。
得益于Symbian操作系統本身優(yōu)化的內存和高度受限的內存使用原則,內存碎片其實(shí)并不會(huì )對手機系統的性能和內存使用率造成明顯影響,因此早期的Symbian版本并不支持內存碎片整理,只提供簡(jiǎn)單的手動(dòng)內存壓縮功能。Symbian 9.5之所以引入“自動(dòng)”內存碎片整理,一個(gè)重要的原因是:目前手機終端的內存容量變得越來(lái)越大,內存的能耗已經(jīng)不容忽視。在新版本中,借助內存碎片整理,可以關(guān)閉連續的空閑物理內存塊以節約能耗,當然它同時(shí)也提供了其他在主流操作系統中體現的改進(jìn)一一更高效的內存訪(fǎng)問(wèn)和更大的空閑可用內存。在WinCE中,雖然不存在自動(dòng)內存碎片處理,但是微軟推薦使用VirtualAlloc、LocalAlloc、HeapAlloc等函數直接操作虛擬內存頁(yè),本地堆和分離堆進(jìn)行內存分配操作,而不是使用如malloc、new這類(lèi)會(huì )導致內存泄漏或異常的操作。


3 小 結
Symbian與WinCE在內存模塊的設計上各有優(yōu)劣,這主要是由于兩個(gè)操作系統在設計之初的理念不同。Symbian設計之初是以高度受限的內存為原則進(jìn)行設計,在硬件發(fā)展較為落后的時(shí)期取得了巨大的成功,但這也給第三方軟件開(kāi)發(fā)者帶來(lái)很多困難。WinCE設計之初既要保持與Windows其他系統在編程接口上的兼容,又要盡可能地提高內存使用效率,這樣不免對性能帶來(lái)一定程度的影響。隨著(zhù)硬件的發(fā)展,智能手機的處理器速度和內存大小都有了很大提高,WinCE由于對第三方開(kāi)發(fā)者的友好性,其發(fā)展仍然不可限量。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>