资料介绍
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次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多