EDN China > 技术文章 > 嵌入式系统 > 操作系统 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

嵌入式操作系统内存管理技术的分析与比较

单片机与嵌入式系统 国防科技大学 田林林 张权 唐朝京?? 2010年01月14日 ?? 收藏1

  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资源。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

嵌入式? 操作系统? 内存管理?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈