Symbian與WinCE內(nèi)存管理技術(shù)分析及對(duì)比
資料介紹
內(nèi)存管理是操作系統(tǒng)的中心任務(wù)之一。內(nèi)存管理模塊通常是操作系統(tǒng)內(nèi)核的一部分,其主要任務(wù)是為操作系統(tǒng)內(nèi)核和各執(zhí)行程序組織內(nèi)存,跟蹤當(dāng)前內(nèi)存使用狀況,在需要時(shí)為進(jìn)程分配內(nèi)存,使用完畢后釋放并回收內(nèi)存。智能手機(jī)操作系統(tǒng)作為嵌入式操作系統(tǒng)的一種,較之普通桌面型操作系統(tǒng),其內(nèi)存管理有著獨(dú)特之處:受硬件成本、設(shè)備體積等因素制約,內(nèi)存容量一般相當(dāng)有限,需要高效地使用;電源管理尤為重要,一次充電要保證數(shù)小時(shí)以上的工作時(shí)間;手持設(shè)備內(nèi)程序一般幾天甚至幾個(gè)月不停運(yùn)行,系統(tǒng)穩(wěn)定性要求高,需保證用戶數(shù)據(jù)的安全。此外,與傳統(tǒng)的嵌入式實(shí)時(shí)操作系統(tǒng)相比,如Vx-Works,μClinux等,智能手機(jī)嵌入式操作系統(tǒng)還是一個(gè)開放性的操作系統(tǒng),這意味著幾乎所有的智能手機(jī)嵌入式操作系統(tǒng)都允許用戶安裝第三方程序。因此,在操作系統(tǒng)設(shè)計(jì)時(shí)還要綜合考慮編程的易用性及接口的模塊化,以適應(yīng)終端用戶、制造商、操作系統(tǒng)軟件開發(fā)者和第三方軟件開發(fā)者的不同需求。
1.1 Symbian操作系統(tǒng)
Symbian操作系統(tǒng)是智能手機(jī)市場(chǎng)中的主要成員,其市場(chǎng)份額超過(guò)70%。該操作系統(tǒng)由英國(guó)Symbian公司負(fù)責(zé)研發(fā)和維護(hù),目前該公司由Nokia、SonyErisson、Panaso-nic、Samsung等公司共同所有。Symbian操作系統(tǒng)的前身是EPOC,這是一個(gè)多任務(wù)的32位軟實(shí)時(shí)操作系統(tǒng)。Symbian在設(shè)計(jì)之初就是專門針對(duì)高度內(nèi)存受限的系統(tǒng)的,因此其在內(nèi)存使用和電源管理上具有很多優(yōu)勢(shì)。Symbian操作系統(tǒng)具有完善的軟件開發(fā)包,供第三方應(yīng)用程序開發(fā)使用。目前最新版本的Symbian操作系統(tǒng)為Symbian OS 9.5。
1.2 WindOWS Mobile操作系統(tǒng)
Windows Mobile是微軟為手持設(shè)備推出的“移動(dòng)版Windows”。使用Windows Mobile操作系統(tǒng)的設(shè)備主要有手機(jī)、PDA、隨身音樂(lè)播放器等。該操作系統(tǒng)是基于Windows CE內(nèi)核的一種嵌入式操作系統(tǒng)。由于與桌面Windows操作系統(tǒng)的兼容性,第三方開發(fā)者可以很方便地為Windows CE開發(fā)程序,但與桌面Windows開發(fā)仍存在較大區(qū)別。目前常用版本為Windows Mobile 6.1,最新版本6.5,均基于Windows CE 5.2內(nèi)核。為表述一致,下文中將Windows Mobile簡(jiǎn)稱為WinCE。
2 內(nèi)存管理技術(shù)分析與比較
2.1 整體架構(gòu)
Symbian操作系統(tǒng)誕生之初,是針對(duì)掌上型資源高度受限設(shè)備開發(fā)的。為了追求極致的性能和最小的資源消耗,它從操作系統(tǒng)內(nèi)核到編程框架都進(jìn)行了嚴(yán)格的優(yōu)化,甚至對(duì)C++的不少基本機(jī)制也進(jìn)行了大刀闊斧的革新。因此軟件開發(fā)者和廠商需要掌握新的Symlbian C++語(yǔ)法及新的編程接口。Symbian操作系統(tǒng)兼容性較差,一般只支持ARM系列處理器。
WinCE系統(tǒng)在設(shè)計(jì)之初就充分考慮到對(duì)桌面操作系統(tǒng)組件和編程接口的兼容性,這樣給程序開發(fā)者帶來(lái)很大益處,并且方便廠商進(jìn)行設(shè)備升級(jí)及驅(qū)動(dòng)維護(hù)。WinCE支持多種CPU,如ARM、MIPS、SH4、x86等。因此其在內(nèi)存管理模塊設(shè)計(jì)上的兼容性和接口的規(guī)范性更好。Symbian相對(duì)于WinCE的優(yōu)勢(shì)在于其針對(duì)指定處理器設(shè)計(jì)的內(nèi)存管理模塊更加高效,但是這也以犧牲兼容性為代價(jià)。出于對(duì)電源管理的考慮,Symbian系統(tǒng)的設(shè)備CPU頻率普遍較WinCE要低,一般為100~300 MHz(WinCE是300~800 MHz)。
2.2 ROM與RAM
?。?)RAM
RAM全稱為隨機(jī)存取存儲(chǔ)器,通常作為操作系統(tǒng)或其他正在運(yùn)行的程序的臨時(shí)存儲(chǔ)介質(zhì),速度較快,但是當(dāng)電源關(guān)閉時(shí)存儲(chǔ)的數(shù)據(jù)會(huì)丟失。
WinCE中RAM被分成兩塊區(qū)域,對(duì)象存儲(chǔ)和程序區(qū)(系統(tǒng)堆)。對(duì)象存儲(chǔ)可以被看作類似一個(gè)永久的虛擬RAM磁盤。在Pocket PC上,當(dāng)顯示屏關(guān)閉后,系統(tǒng)并沒(méi)有真正斷電,而是進(jìn)入低功耗的睡眠狀態(tài)(由主電池來(lái)供電)。當(dāng)按下Reset按鈕后,Windows CE內(nèi)核在RAM中尋找最近一次創(chuàng)建的對(duì)象存儲(chǔ),如果找到,就用這個(gè)對(duì)象存儲(chǔ)重新啟動(dòng)。
RAM的另一個(gè)區(qū)域是程序區(qū)。這個(gè)區(qū)域就像PC機(jī)的RAM一樣。它存放所運(yùn)行程序的堆和棧的空間。對(duì)象存儲(chǔ)和程序區(qū)的界限是可移動(dòng)的。在低內(nèi)存的情況下,系統(tǒng)會(huì)請(qǐng)求用戶把部分可用的存儲(chǔ)對(duì)象空間提供給運(yùn)行程序使用,以滿足程序運(yùn)行時(shí)對(duì)RAM的需要。在Symbian操作系統(tǒng)中,RAM不存在類似于對(duì)象存儲(chǔ)的區(qū)域,其RAM全部用于運(yùn)行程序的臨時(shí)執(zhí)行和數(shù)據(jù)存儲(chǔ)器。因此一般Symbian操作系統(tǒng)上RAM大小為7~30 MB,小于winCE中的32~128 MB。
?。?)ROM
ROM是只讀存儲(chǔ)器。在PC機(jī)上,ROM用來(lái)存儲(chǔ)BIOS,通常是64~128 KB。在WinCE系統(tǒng)中,ROM用來(lái)存儲(chǔ)整個(gè)操作系統(tǒng)以及和OS綁定的應(yīng)用程序。Symbian系統(tǒng)中ROM功能類似,也是用來(lái)存儲(chǔ)系統(tǒng)驅(qū)動(dòng)程序及系統(tǒng)DLL和配置文件。對(duì)ROM進(jìn)行寫入需要指定的設(shè)備,普通用戶無(wú)法對(duì)ROM中的數(shù)據(jù)進(jìn)行操作。由于ROM中的代碼都是經(jīng)過(guò)特殊編譯,去除了重定位代碼段,因此可以在ROM上直接執(zhí)行(excute in place),不用加載到RAM中,從而提高了啟動(dòng)速度并節(jié)省了RAM資源。
2.3 MMU
作為現(xiàn)代操作系統(tǒng)的一種,智能手機(jī)操作系統(tǒng)具有強(qiáng)大而高效的MMU,在這一點(diǎn)不同于其他實(shí)時(shí)嵌入式操作系統(tǒng),如μC/OS-II和μClinux。通過(guò)MMU提供的內(nèi)存映射和數(shù)據(jù)保護(hù),可以提高操作系統(tǒng)的運(yùn)行效率和安全性。MMU運(yùn)行于CPU和系統(tǒng)總線之間,負(fù)責(zé)在虛擬地址和物理地址之間進(jìn)行轉(zhuǎn)換,在任一次內(nèi)存訪問(wèn)中都會(huì)進(jìn)行MMU的地址查找。
?。?)虛擬內(nèi)存
Windows CE是32位操作系統(tǒng),支持4 GB的虛擬地址空間。高2 GB是系統(tǒng)內(nèi)存空間,用來(lái)存儲(chǔ)相應(yīng)的系統(tǒng)數(shù)據(jù)。低2 GB是用戶空間。所有的應(yīng)用程序均有2GB的虛擬地址,但是每個(gè)應(yīng)用程序的內(nèi)存空間都是受保護(hù)的,其他應(yīng)用程序不能訪問(wèn)。從最低的虛擬地址空間開始,分為33個(gè)slot,每個(gè)slot為32 MB。每個(gè)slot被分配為當(dāng)前運(yùn)行的進(jìn)程。slot 0中存放當(dāng)前激活的進(jìn)程。當(dāng)WinCE在進(jìn)程間切換時(shí),它就重新映射地址空間,把原進(jìn)程移出,新進(jìn)程移進(jìn)slot 0。這個(gè)任務(wù)是通過(guò)操作微處理器的頁(yè)轉(zhuǎn)換表來(lái)迅速完成的。
WinCE定義了4種內(nèi)存狀態(tài):normal、limited、low、critical。這些狀態(tài)的劃分主要取決于當(dāng)前可用的內(nèi)存大小。在WinCE中,當(dāng)出現(xiàn)內(nèi)存不足的情況時(shí),線程首先被掛起。這時(shí)系統(tǒng)如果沒(méi)有可用的物理RAM,需要棧空間的線程就會(huì)被掛起。系統(tǒng)首先發(fā)送WM_HIBERNATE消息,該消息會(huì)向所有的進(jìn)程請(qǐng)求。它們?cè)诓黄茐母髯詢?nèi)在狀態(tài)的情況下盡量釋放內(nèi)存,比如釋放GDI對(duì)象、緩沖數(shù)據(jù)等,然后限制內(nèi)存申請(qǐng)的請(qǐng)求。如果在給定的一小段時(shí)間內(nèi),這個(gè)內(nèi)存需求不能得到響應(yīng),就會(huì)彈出系統(tǒng)異常。在低內(nèi)存情況下不應(yīng)該嘗試使用大量的棧空間。而在Symbian操作系統(tǒng)中,系統(tǒng)能運(yùn)行的程序數(shù)量是由實(shí)際內(nèi)存大小決定的,而不限于32個(gè)。當(dāng)內(nèi)存不足時(shí),運(yùn)行新程序?qū)?huì)收到內(nèi)存不足的警告,并終止進(jìn)程。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
- STM32内存管理14次下载
- 三种植物冠层分析仪技术参数对比分析34次下载
- Glibc内存管理之Ptmalloc2源代码分析24次下载
- 基于内存关联分析的内存预拷贝迁移策略14次下载
- 一种基于内存关联分析的预拷贝迁移策略9次下载
- 基于Symbian的智能手机软件开发详解23次下载
- 鸿蒙内核源码分析: 虚拟内存和物理内存是怎么管理的19次下载
- Symbian操作系统环境下通信系统如何进行设计与实现5次下载
- Wince电源管理的介绍2次下载
- 实例分析Symbian OS的本地化技术研究0次下载
- μClinux内存管理分析27次下载
- VxWorks内存管理机制的分析与研究23次下载
- 基于Symbian OS的本地化技术研究9次下载
- 无线信息设备的理想操作系统Symbian OS14次下载
- 通信设备中内存管理优化22次下载
- Linux内存管理中HVO的实现原理452次阅读
- 内存管理的硬件结构477次阅读
- 物理内存模型的演变624次阅读
- Linux内核内存管理架构解析815次阅读
- Linux内存管理学习笔记552次阅读
- MMU内存管理单元的工作原理和作用2763次阅读
- Linux内存管理体系介绍1808次阅读
- 什么是WinCE电源管理 从应用程序交互分析电源管理状态926次阅读
- 详谈SDRAM内存模组与差异对比2518次阅读
- 嵌入式系统内存管理机制详解4607次阅读
- 如何管理Linux 的内存分页?3885次阅读
- 一文读懂 Spark 内存管理1025次阅读
- 两种常见的内存管理方法:堆和内存池13831次阅读
- Android内存管理机制与分析工具4651次阅读
- LWIP内存管理知识汇总7095次阅读
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論