資料介紹
1 概 述
內存管理是操作系統的中心任務之一。內存管理模塊通常是操作系統內核的一部分,其主要任務是為操作系統內核和各執行程序組織內存,跟蹤當前內存使用狀況,在需要時為進程分配內存,使用完畢后釋放并回收內存。智能手機操作系統作為嵌入式操作系統的一種,較之普通桌面型操作系統,其內存管理有著獨特之處:受硬件成本、設備體積等因素制約,內存容量一般相當有限,需要高效地使用;電源管理尤為重要,一次充電要保證數小時以上的工作時間;手持設備內程序一般幾天甚至幾個月不停運行,系統穩定性要求高,需保證用戶數據的安全。此外,與傳統的嵌入式實時操作系統相比,如Vx-Works,μClinux等,智能手機嵌入式操作系統還是一個開放性的操作系統,這意味著幾乎所有的智能手機嵌入式操作系統都允許用戶安裝第三方程序。因此,在操作系統設計時還要綜合考慮編程的易用性及接口的模塊化,以適應終端用戶、制造商、操作系統軟件開發者和第三方軟件開發者的不同需求。
1.1 Symbian操作系統
Symbian操作系統是智能手機市場中的主要成員,其市場份額超過70%。該操作系統由英國Symbian公司負責研發和維護,目前該公司由Nokia、SonyErisson、Panaso-nic、Samsung等公司共同所有。Symbian操作系統的前身是EPOC,這是一個多任務的32位軟實時操作系統。Symbian在設計之初就是專門針對高度內存受限的系統的,因此其在內存使用和電源管理上具有很多優勢。Symbian操作系統具有完善的軟件開發包,供第三方應用程序開發使用。目前最新版本的Symbian操作系統為Symbian OS 9.5。
1.2 WindOWS Mobile操作系統
Windows Mobile是微軟為手持設備推出的“移動版Windows”。使用Windows Mobile操作系統的設備主要有手機、PDA、隨身音樂播放器等。該操作系統是基于Windows CE內核的一種嵌入式操作系統。由于與桌面Windows操作系統的兼容性,第三方開發者可以很方便地為Windows CE開發程序,但與桌面Windows開發仍存在較大區別。目前常用版本為Windows Mobile 6.1,最新版本6.5,均基于Windows CE 5.2內核。為表述一致,下文中將Windows Mobile簡稱為WinCE。
2 內存管理技術分析與比較
2.1 整體架構
Symbian操作系統誕生之初,是針對掌上型資源高度受限設備開發的。為了追求極致的性能和最小的資源消耗,它從操作系統內核到編程框架都進行了嚴格的優化,甚至對C++的不少基本機制也進行了大刀闊斧的革新。因此軟件開發者和廠商需要掌握新的Symlbian C++語法及新的編程接口。Symbian操作系統兼容性較差,一般只支持ARM系列處理器。
WinCE系統在設計之初就充分考慮到對桌面操作系統組件和編程接口的兼容性,這樣給程序開發者帶來很大益處,并且方便廠商進行設備升級及驅動維護。WinCE支持多種CPU,如ARM、MIPS、SH4、x86等。因此其在內存管理模塊設計上的兼容性和接口的規范性更好。Symbian相對于WinCE的優勢在于其針對指定處理器設計的內存管理模塊更加高效,但是這也以犧牲兼容性為代價。出于對電源管理的考慮,Symbian系統的設備CPU頻率普遍較WinCE要低,一般為100~300 MHz(WinCE是300~800 MHz)。
2.2 ROM與RAM
(1)RAM
RAM全稱為隨機存取存儲器,通常作為操作系統或其他正在運行的程序的臨時存儲介質,速度較快,但是當電源關閉時存儲的數據會丟失。
WinCE中RAM被分成兩塊區域,對象存儲和程序區(系統堆)。對象存儲可以被看作類似一個永久的虛擬RAM磁盤。在Pocket PC上,當顯示屏關閉后,系統并沒有真正斷電,而是進入低功耗的睡眠狀態(由主電池來供電)。當按下Reset按鈕后,Windows CE內核在RAM中尋找最近一次創建的對象存儲,如果找到,就用這個對象存儲重新啟動。
RAM的另一個區域是程序區。這個區域就像PC機的RAM一樣。它存放所運行程序的堆和棧的空間。對象存儲和程序區的界限是可移動的。在低內存的情況下,系統會請求用戶把部分可用的存儲對象空間提供給運行程序使用,以滿足程序運行時對RAM的需要。在Symbian操作系統中,RAM不存在類似于對象存儲的區域,其RAM全部用于運行程序的臨時執行和數據存儲器。因此一般Symbian操作系統上RAM大小為7~30 MB,小于winCE中的32~128 MB。
(2)ROM
ROM是只讀存儲器。在PC機上,ROM用來存儲BIOS,通常是64~128 KB。在WinCE系統中,ROM用來存儲整個操作系統以及和OS綁定的應用程序。Symbian系統中ROM功能類似,也是用來存儲系統驅動程序及系統DLL和配置文件。對ROM進行寫入需要指定的設備,普通用戶無法對ROM中的數據進行操作。由于ROM中的代碼都是經過特殊編譯,去除了重定位代碼段,因此可以在ROM上直接執行(excute in place),不用加載到RAM中,從而提高了啟動速度并節省了RAM資源。
2.3 MMU
作為現代操作系統的一種,智能手機操作系統具有強大而高效的MMU,在這一點不同于其他實時嵌入式操作系統,如μC/OS-II和μClinux。通過MMU提供的內存映射和數據保護,可以提高操作系統的運行效率和安全性。MMU運行于CPU和系統總線之間,負責在虛擬地址和物理地址之間進行轉換,在任一次內存訪問中都會進行MMU的地址查找。
(1)虛擬內存
Windows CE是32位操作系統,支持4 GB的虛擬地址空間。高2 GB是系統內存空間,用來存儲相應的系統數據。低2 GB是用戶空間。所有的應用程序均有2GB的虛擬地址,但是每個應用程序的內存空間都是受保護的,其他應用程序不能訪問。從最低的虛擬地址空間開始,分為33個slot,每個slot為32 MB。每個slot被分配為當前運行的進程。slot 0中存放當前激活的進程。當WinCE在進程間切換時,它就重新映射地址空間,把原進程移出,新進程移進slot 0。這個任務是通過操作微處理器的頁轉換表來迅速完成的。
WinCE定義了4種內存狀態:normal、limited、low、critical。這些狀態的劃分主要取決于當前可用的內存大小。在WinCE中,當出現內存不足的情況時,線程首先被掛起。這時系統如果沒有可用的物理RAM,需要棧空間的線程就會被掛起。系統首先發送WM_HIBERNATE消息,該消息會向所有的進程請求。它們在不破壞各自內在狀態的情況下盡量釋放內存,比如釋放GDI對象、緩沖數據等,然后限制內存申請的請求。如果在給定的一小段時間內,這個內存需求不能得到響應,就會彈出系統異常。在低內存情況下不應該嘗試使用大量的棧空間。而在Symbian操作系統中,系統能運行的程序數量是由實際內存大小決定的,而不限于32個。當內存不足時,運行新程序將會收到內存不足的警告,并終止進程。
內存管理是操作系統的中心任務之一。內存管理模塊通常是操作系統內核的一部分,其主要任務是為操作系統內核和各執行程序組織內存,跟蹤當前內存使用狀況,在需要時為進程分配內存,使用完畢后釋放并回收內存。智能手機操作系統作為嵌入式操作系統的一種,較之普通桌面型操作系統,其內存管理有著獨特之處:受硬件成本、設備體積等因素制約,內存容量一般相當有限,需要高效地使用;電源管理尤為重要,一次充電要保證數小時以上的工作時間;手持設備內程序一般幾天甚至幾個月不停運行,系統穩定性要求高,需保證用戶數據的安全。此外,與傳統的嵌入式實時操作系統相比,如Vx-Works,μClinux等,智能手機嵌入式操作系統還是一個開放性的操作系統,這意味著幾乎所有的智能手機嵌入式操作系統都允許用戶安裝第三方程序。因此,在操作系統設計時還要綜合考慮編程的易用性及接口的模塊化,以適應終端用戶、制造商、操作系統軟件開發者和第三方軟件開發者的不同需求。
1.1 Symbian操作系統
Symbian操作系統是智能手機市場中的主要成員,其市場份額超過70%。該操作系統由英國Symbian公司負責研發和維護,目前該公司由Nokia、SonyErisson、Panaso-nic、Samsung等公司共同所有。Symbian操作系統的前身是EPOC,這是一個多任務的32位軟實時操作系統。Symbian在設計之初就是專門針對高度內存受限的系統的,因此其在內存使用和電源管理上具有很多優勢。Symbian操作系統具有完善的軟件開發包,供第三方應用程序開發使用。目前最新版本的Symbian操作系統為Symbian OS 9.5。
1.2 WindOWS Mobile操作系統
Windows Mobile是微軟為手持設備推出的“移動版Windows”。使用Windows Mobile操作系統的設備主要有手機、PDA、隨身音樂播放器等。該操作系統是基于Windows CE內核的一種嵌入式操作系統。由于與桌面Windows操作系統的兼容性,第三方開發者可以很方便地為Windows CE開發程序,但與桌面Windows開發仍存在較大區別。目前常用版本為Windows Mobile 6.1,最新版本6.5,均基于Windows CE 5.2內核。為表述一致,下文中將Windows Mobile簡稱為WinCE。
2 內存管理技術分析與比較
2.1 整體架構
Symbian操作系統誕生之初,是針對掌上型資源高度受限設備開發的。為了追求極致的性能和最小的資源消耗,它從操作系統內核到編程框架都進行了嚴格的優化,甚至對C++的不少基本機制也進行了大刀闊斧的革新。因此軟件開發者和廠商需要掌握新的Symlbian C++語法及新的編程接口。Symbian操作系統兼容性較差,一般只支持ARM系列處理器。
WinCE系統在設計之初就充分考慮到對桌面操作系統組件和編程接口的兼容性,這樣給程序開發者帶來很大益處,并且方便廠商進行設備升級及驅動維護。WinCE支持多種CPU,如ARM、MIPS、SH4、x86等。因此其在內存管理模塊設計上的兼容性和接口的規范性更好。Symbian相對于WinCE的優勢在于其針對指定處理器設計的內存管理模塊更加高效,但是這也以犧牲兼容性為代價。出于對電源管理的考慮,Symbian系統的設備CPU頻率普遍較WinCE要低,一般為100~300 MHz(WinCE是300~800 MHz)。
2.2 ROM與RAM
(1)RAM
RAM全稱為隨機存取存儲器,通常作為操作系統或其他正在運行的程序的臨時存儲介質,速度較快,但是當電源關閉時存儲的數據會丟失。
WinCE中RAM被分成兩塊區域,對象存儲和程序區(系統堆)。對象存儲可以被看作類似一個永久的虛擬RAM磁盤。在Pocket PC上,當顯示屏關閉后,系統并沒有真正斷電,而是進入低功耗的睡眠狀態(由主電池來供電)。當按下Reset按鈕后,Windows CE內核在RAM中尋找最近一次創建的對象存儲,如果找到,就用這個對象存儲重新啟動。
RAM的另一個區域是程序區。這個區域就像PC機的RAM一樣。它存放所運行程序的堆和棧的空間。對象存儲和程序區的界限是可移動的。在低內存的情況下,系統會請求用戶把部分可用的存儲對象空間提供給運行程序使用,以滿足程序運行時對RAM的需要。在Symbian操作系統中,RAM不存在類似于對象存儲的區域,其RAM全部用于運行程序的臨時執行和數據存儲器。因此一般Symbian操作系統上RAM大小為7~30 MB,小于winCE中的32~128 MB。
(2)ROM
ROM是只讀存儲器。在PC機上,ROM用來存儲BIOS,通常是64~128 KB。在WinCE系統中,ROM用來存儲整個操作系統以及和OS綁定的應用程序。Symbian系統中ROM功能類似,也是用來存儲系統驅動程序及系統DLL和配置文件。對ROM進行寫入需要指定的設備,普通用戶無法對ROM中的數據進行操作。由于ROM中的代碼都是經過特殊編譯,去除了重定位代碼段,因此可以在ROM上直接執行(excute in place),不用加載到RAM中,從而提高了啟動速度并節省了RAM資源。
2.3 MMU
作為現代操作系統的一種,智能手機操作系統具有強大而高效的MMU,在這一點不同于其他實時嵌入式操作系統,如μC/OS-II和μClinux。通過MMU提供的內存映射和數據保護,可以提高操作系統的運行效率和安全性。MMU運行于CPU和系統總線之間,負責在虛擬地址和物理地址之間進行轉換,在任一次內存訪問中都會進行MMU的地址查找。
(1)虛擬內存
Windows CE是32位操作系統,支持4 GB的虛擬地址空間。高2 GB是系統內存空間,用來存儲相應的系統數據。低2 GB是用戶空間。所有的應用程序均有2GB的虛擬地址,但是每個應用程序的內存空間都是受保護的,其他應用程序不能訪問。從最低的虛擬地址空間開始,分為33個slot,每個slot為32 MB。每個slot被分配為當前運行的進程。slot 0中存放當前激活的進程。當WinCE在進程間切換時,它就重新映射地址空間,把原進程移出,新進程移進slot 0。這個任務是通過操作微處理器的頁轉換表來迅速完成的。
WinCE定義了4種內存狀態:normal、limited、low、critical。這些狀態的劃分主要取決于當前可用的內存大小。在WinCE中,當出現內存不足的情況時,線程首先被掛起。這時系統如果沒有可用的物理RAM,需要棧空間的線程就會被掛起。系統首先發送WM_HIBERNATE消息,該消息會向所有的進程請求。它們在不破壞各自內在狀態的情況下盡量釋放內存,比如釋放GDI對象、緩沖數據等,然后限制內存申請的請求。如果在給定的一小段時間內,這個內存需求不能得到響應,就會彈出系統異常。在低內存情況下不應該嘗試使用大量的棧空間。而在Symbian操作系統中,系統能運行的程序數量是由實際內存大小決定的,而不限于32個。當內存不足時,運行新程序將會收到內存不足的警告,并終止進程。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- STM32內存管理
- 三種植物冠層分析儀技術參數對比分析 34次下載
- Glibc內存管理之Ptmalloc2源代碼分析 23次下載
- 基于內存關聯分析的內存預拷貝遷移策略 14次下載
- 一種基于內存關聯分析的預拷貝遷移策略 9次下載
- 基于Symbian的智能手機軟件開發詳解 23次下載
- 鴻蒙內核源碼分析: 虛擬內存和物理內存是怎么管理的 19次下載
- Symbian操作系統環境下通信系統如何進行設計與實現 5次下載
- Wince電源管理的介紹 2次下載
- 實例分析Symbian OS的本地化技術研究 0次下載
- μClinux內存管理分析
- VxWorks內存管理機制的分析與研究
- 基于Symbian OS的本地化技術研究
- 無線信息設備的理想操作系統Symbian OS
- 通信設備中內存管理優化
- 內存管理的硬件結構 77次閱讀
- Linux內核內存管理架構解析 539次閱讀
- MMU內存管理單元的工作原理和作用 2021次閱讀
- 內存的基本概念以及操作系統的內存管理算法 1486次閱讀
- Linux內存管理體系介紹 1459次閱讀
- 什么是WinCE電源管理 從應用程序交互分析電源管理狀態 807次閱讀
- 詳談SDRAM內存模組與差異對比 2307次閱讀
- Unity Profiler分析內存使用狀況疑問解答 2202次閱讀
- 嵌入式系統內存管理機制詳解 4430次閱讀
- 如何管理Linux 的內存分頁? 3713次閱讀
- 一文讀懂 Spark 內存管理 914次閱讀
- 兩種常見的內存管理方法:堆和內存池 1.3w次閱讀
- Android內存管理機制與分析工具 4446次閱讀
- Linux資料匯總之內存管理 4328次閱讀
- LWIP內存管理知識匯總 6773次閱讀
下載排行
本周
- 1FS4059B帶NTC升壓型兩節鋰電池充電管理IC數據手冊
- 3.24 MB | 1次下載 | 免費
- 2基于波形捕獲的超聲波傳感水流量計量技術應用說明
- 1.01MB | 1次下載 | 免費
- 3ADE-12H混頻器規格書
- 0.28 MB | 1次下載 | 5 積分
- 4AD9984A高性能10位顯示接口英文手冊
- 0.49 MB | 1次下載 | 5 積分
- 551開發板芯片資料
- 14.95 MB | 1次下載 | 1 積分
- 6用TL431LI-Q1監控電流供應
- 176.71KB | 1次下載 | 免費
- 7Q1和非Q1器件的TPS54340/360/540/560和TPS54340B/360B/540B/560B之間的差異
- 123.6KB | 次下載 | 免費
- 8TPS512xx MOSFET驅動電路設計指南
- 886.86KB | 次下載 | 免費
本月
- 1HFSS電磁仿真設計應用詳解PDF電子教程免費下載
- 24.30 MB | 129次下載 | 1 積分
- 2繼電保護原理
- 2.80 MB | 42次下載 | 免費
- 3正激、反激、推挽、全橋、半橋區別和特點
- 0.91 MB | 36次下載 | 1 積分
- 4GBT 4706.1-2024家用和類似用途電器的安全第1部分:通用要求
- 7.43 MB | 18次下載 | 免費
- 5在設計中使用MOSFET瞬態熱阻抗曲線
- 1.57MB | 15次下載 | 免費
- 6AD18學習筆記
- 14.47 MB | 8次下載 | 2 積分
- 7H橋中的電流感測
- 545.39KB | 7次下載 | 免費
- 8幾張電動車充電器電路圖
- 0.23 MB | 6次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935113次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191360次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183329次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81578次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73804次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評論
查看更多