下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 1嵌入式操作系统内存管理WinCE Symbian

1嵌入式操作系统内存管理WinCE Symbian.doc

1嵌入式操作系统内存管理WinCE Symbian

平凡的程序员小强
2018-09-04 0人阅读 举报 0 0 暂无简介

简介:本文档为《1嵌入式操作系统内存管理WinCE Symbiandoc》,可适用于工程科技领域

资料来源电子下载网下载时间::本文地址http:ujjcomshejiqianrushihtml嵌入式操作系统内存管理WinCESymbian摘要介绍了两种主流的智能手机嵌入式操作系统――WinCE和Symbian从整体架构、ROM与RAM、MMU以及其他技术方面对这两种嵌入式操作系统进行分析比较。在此基础上提出了未来嵌入式操作系统的发展趋势为嵌入式操作系统的选择提供了依据。关键词 嵌入式操作系统内存管理WinCESymbian 概述  内存管理是操作系统的中心任务之一。内存管理模块通常是操作系统内核的一部分其主要任务是为操作系统内核和各执行程序组织内存跟踪当前内存使用状况在需要时为进程分配内存使用完毕后释放并回收内存。智能手机操作系统作为嵌入式操作系统的一种较之普通桌面型操作系统其内存管理有着独特之处:受硬件成本、设备体积等因素制约内存容量一般相当有限需要高效地使用电源管理尤为重要一次充电要保证数小时以上的工作时间手持设备内程序一般几天甚至几个月不停运行系统稳定性要求高需保证用户数据的安全。  此外与传统的嵌入式实时操作系统相比如VxWorksμClinux等智能手机嵌入式操作系统还是一个开放性的操作系统这意味着几乎所有的智能手机嵌入式操作系统都允许用户安装第三方程序。因此在操作系统设计时还要综合考虑编程的易用性及接口的模块化以适应终端用户、制造商、操作系统软件开发者和第三方软件开发者的不同需求。 Symbian操作系统  Symbian操作系统是智能手机市场中的主要成员其市场份额超过。该操作系统由英国Symbian公司负责研发和维护目前该公司由Nokia、SonyErisson、Panasonic、Samsung等公司共同所有。Symbian操作系统的前身是EPOC这是一个多任务的位软实时操作系统。Symbian在设计之初就是专门针对高度内存受限的系统的因此其在内存使用和电源管理上具有很多优势。Symbian操作系统具有完善的软件开发包供第三方应用程序开发使用。目前最新版本的Symbian操作系统为SymbianOS。 WindowsMobile操作系统  WindowsMobile是微软为手持设备推出的“移动版Windows”。使用WindowsMobile操作系统的设备主要有手机、PDA、随身音乐播放器等。该操作系统是基于WindowsCE内核的一种嵌入式操作系统。由于与桌面Windows操作系统的兼容性第三方开发者可以很方便地为WindowsCE开发程序但与桌面Windows开发仍存在较大区别。目前常用版本为WindowsMobile最新版本均基于WindowsCE内核。为表述一致下文中将WindowsMobile简称为WinCE。 内存管理技术分析与比较 整体架构  Symbian操作系统诞生之初是针对掌上型资源高度受限设备开发的。为了追求极致的性能和最小的资源消耗它从操作系统内核到编程框架都进行了严格的优化甚至对C的不少基本机制也进行了大刀阔斧的革新。因此软件开发者和厂商需要掌握新的SymbianC语法及新的编程接口。Symbian操作系统兼容性较差一般只支持ARM系列处理器。  WinCE系统在设计之初就充分考虑到对桌面操作系统组件和编程接口的兼容性这样给程序开发者带来很大益处并且方便厂商进行设备升级及驱动维护。WinCE支持多种CPU如ARM、MIPS、SH、x等。因此其在内存管理模块设计上的兼容性和接口的规范性更好。  Symbian相对于WinCE的优势在于其针对指定处理器设计的内存管理模块更加高效但是这也以牺牲兼容性为代价。出于对电源管理的考虑Symbian系统的设备CPU频率普遍较WinCE要低一般为~MHz(WinCE是~MHz)。 ROM与RAM()RAM  RAM全称为随机存取存储器通常作为操作系统或其他正在运行的程序的临时存储介质速度较快但是当电源关闭时存储的数据会丢失。  WinCE中RAM被分成两块区域对象存储和程序区(系统堆)。对象存储可以被看作类似一个永久的虚拟RAM磁盘。在PocketPC上当显示屏关闭后系统并没有真正断电而是进入低功耗的睡眠状态(由主电池来供电)。当按下Reset按钮后WindowsCE内核在RAM中寻找最近一次创建的对象存储如果找到就用这个对象存储重新启动。  RAM的另一个区域是程序区。这个区域就像PC机的RAM一样。它存放所运行程序的堆和栈的空间。对象存储和程序区的界限是可移动的。在低内存的情况下系统会请求用户把部分可用的存储对象空间提供给运行程序使用以满足程序运行时对RAM的需要。  在Symbian操作系统中RAM不存在类似于对象存储的区域其RAM全部用于运行程序的临时执行和数据存储器。因此一般Symbian操作系统上RAM大小为~MB小于WinCE中的~MB。()ROM  ROM是只读存储器。在PC机上ROM用来存储BIOS通常是~KB。在WinCE系统中ROM用来存储整个操作系统以及和OS绑定的应用程序。Symbian系统中ROM功能类似也是用来存储系统驱动程序及系统DLL和配置文件。对ROM进行写入需要指定的设备普通用户无法对ROM中的数据进行操作。由于ROM中的代码都是经过特殊编译去除了重定位代码段因此可以在ROM上直接执行(excuteinplace)不用加载到RAM中从而提高了启动速度并节省了RAM资源。 MMU  作为现代操作系统的一种智能手机操作系统具有强大而高效的MMU在这一点不同于其他实时嵌入式操作系统如μCOSII和μClinux。通过MMU提供的内存映射和数据保护可以提高操作系统的运行效率和安全性。MMU运行于CPU和系统总线之间负责在虚拟地址和物理地址之间进行转换在任一次内存访问中都会进行MMU的地址查找。 ()虚拟内存  WindowsCE是位操作系统支持GB的虚拟地址空间。高GB是系统内存空间用来存储相应的系统数据。低GB是用户空间。所有的应用程序均有GB的虚拟地址但是每个应用程序的内存空间都是受保护的其他应用程序不能访问。从最低的虚拟地址空间开始分为个slot每个slot为MB。每个slot被分配为当前运行的进程。slot中存放当前激活的进程。当WinCE在进程间切换时它就重新映射地址空间把原进程移出新进程移进slot。这个任务是通过操作微处理器的页转换表来迅速完成的。  WinCE定义了种内存状态:normal、limited、low、critical。这些状态的划分主要取决于当前可用的内存大小。在WinCE中当出现内存不足的情况时线程首先被挂起。这时系统如果没有可用的物理RAM需要栈空间的线程就会被挂起。系统首先发送WMHIBERNATE消息该消息会向所有的进程请求。它们在不破坏各自内在状态的情况下尽量释放内存比如释放GDI对象、缓冲数据等然后限制内存申请的请求。如果在给定的一小段时间内这个内存需求不能得到响应就会弹出系统异常。在低内存情况下不应该尝试使用大量的栈空间。  而在Symbian操作系统中系统能运行的程序数量是由实际内存大小决定的而不限于个。当内存不足时运行新程序将会收到内存不足的警告并终止进程。()虚拟地址映射  MMU一般将页面分成KB大小的页面。由于CPU不同页面大小也可以是KB或其他大小。内核使用MMU将物理内存映射到块的虚拟地址范围内。  WinCE与Symbian的虚拟地址映射图如图所示其中WinCE内核表现为NKexe进程。图 虚拟地址映射  在ARMv中最高层的页表有个条目每个条目字节因此整个目录就有KB。由于WinCE支持多种不同的CPUCPU设计结构不同页目录也不同但是计算方法与ARMv类似。  WinCE首先直接给每个进程分配一个不同的页表在进程切换中直接将不同进程的页表写入MMU的基寄存器TTBR中来实现映射。而Symbian系统认为每个进程分配KB页表会造成内存的浪费因此采用了另一种管理地址映射的方法。  该模型针对ARMv结构设计被称为移动内存模型。其核心思想是对每个进程都提供同样的虚拟地址空间但是被保护的内存页面却不一样。在页面切换中首先将原有进程的内存移出执行地址空间使其在用户模式下不能访问。接着将新进程的数据移入执行地址并使其可以访问。这一思想是在内存模型上层通过Chunk实现的。通过ARMv中提供的页表访问权限和域概念通过改变MMU中寄存器指向的域达到进程间保护和内存映射。这种设计方法带来了内核层的低内存消耗但是虽然在内核层的安全性和内存使用效率上有所改善却对其他进程的运行带来一定影响。当映射到不同的虚拟地址空间所有被修改的数据都要重新从主存中载入并且缓存中的数据因为已经被丢弃必须重新载入。因此该模式下的进程上下文中很大一部分时间消耗在缓存的刷新上一般情况下其速度是线程切换(同进程)的左右。尽管采取了其他措施但是没有从根本上改变运行时间。  在最新的ARMv中Symbian引入了多重内存模型。该模型兼容性更强并可在主流处理器Intelx和RenesasSuperH上使用。该模型建立在与设备和操作系统无关的基础上利用ARMv中的应用空间辨识器(ASID)并通过物理标记缓存技术保证了在虚拟地址和物理地址间多重映射的正确性很好地解决了移动内存模型中的缓存刷新问题。 其他技术()按需页面调度  由于在系统中虚拟内存远大于物理内存因此系统必须对内存使用格外注意。一种节约物理内存使用的方法是只加载当前运行程序使用的虚拟内存所对应的物理内存这种方法称为按需页面调度。当一个进程试图访问一个不在当前内存中的虚拟内存地址时系统这时会重新从磁盘上将该区域加载到内存中去。桌面操作系统很久以来一直使用这一技术来加快系统启动速度和优化程序运行效率WinCE也不例外。  WinCE中可以通过使用Configbib对整个系统的按需页面调度进行设置或通过LoadDriver等函数对单个DLL的按需页面调度进行设置。Symbian操作系统却不支持这一技术。这主要是由于系统本身内存太小采用这一技术会带来性能大幅下降。不过随着手机硬件的发展在SymbianOSv以后系统开始支持按需页面调度。这一技术优化了内存使用在需要时加载只读代码从而实现了对RAM的更高使用效率。这让用户可以更快地安装应用程序并同时保持多个应用程序的开放状态。()内存碎片整理  在一个实时系统中连续的页面请求可能会带来性能的下降。这是由于在小对象(小于KB的数据类型)对内存的频繁的动态申请和释放过程中由于释放后留下的空洞不够新对象分配导致不连续的内存可用空间无法被应用程序获得造成可用内存迅速耗尽。这种内存空洞也叫内存碎片。操作系统可能会对这种情况作一定程度的优化但是由于将内存可用空间压缩而导致的效率负担并不是所有的操作系统都会对此优化。  得益于Symbian操作系统本身优化的内存管理和高度受限的内存使用原则内存碎片其实并不会对手机系统的性能和内存使用率造成明显影响因此早期的Symbian版本并不支持内存碎片整理只提供简单的手动内存压缩功能。Symbian之所以引入“自动”内存碎片整理一个重要的原因是:目前手机终端的内存容量变得越来越大内存的能耗已经不容忽视。在新版本中借助内存碎片整理可以关闭连续的空闲物理内存块以节约能耗当然它同时也提供了其他在主流操作系统中体现的改进――更高效的内存访问和更大的空闲可用内存。在WinCE中虽然不存在自动内存碎片处理但是微软推荐使用VirtualAlloc、LocalAlloc、HeapAlloc等函数直接操作虚拟内存页本地堆和分离堆进行内存分配操作而不是使用如malloc、new这类会导致内存泄漏或异常的操作。 小结  Symbian与WinCE在内存管理模块的设计上各有优劣这主要是由于两个操作系统在设计之初的理念不同。Symbian设计之初是以高度受限的内存为原则进行设计在硬件发展较为落后的时期取得了巨大的成功但这也给第三方软件开发者带来很多困难。WinCE设计之初既要保持与Windows其他系统在编程接口上的兼容又要尽可能地提高内存使用效率这样不免对性能带来一定程度的影响。随着硬件的发展智能手机的处理器速度和内存大小都有了很大提高WinCE由于对第三方开发者的友好性其发展仍然不可限量。参考文献BabinSteveDevelopingSoftwareforSymbianOS[M]北京:人民邮电出版社BolingDouglasProgrammingMicrosoftWindowsCENET[M]rdedNY:MicrosoftPress,MicrosoftCo,LtdWindowsMobileversionHelpDocumentation[OL]http:msdnmicrosoftcomzh�cnlibrarybb(en�us)aspx孙益辉陈凯白英彩嵌入式操作系统内存管理机制分析和改进J计算机应用与软件():李娜方彦军嵌入式系统内存规划方法的研究J微型机与应用():黄贤英王越嵌入式实时系统内存管理策略J计算机工程与设计():田林林(硕士研究生)主要研究方向为嵌入式系统安全技术张权(副教授)主要研究方向为网络协议与密码技术唐朝京(教授),主要研究方向为网络攻防技术。推荐阅读:(按住Ctrl鼠标左键点击标题可以打开详细内容)、IC检测方法、什么是遥感技术、什么是无线网址、制冷设备维修技巧、什么是色温、手机RF设计问答、微波简史、微波小知识、卫星导航知识、卫星与遥感技术

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/6

1嵌入式操作系统内存管理WinCE Symbian

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利