Microsoft CSIP WindowsMobile MEDC 合作伙伴 体验中心 设Winbile为首页 加Winbile到收藏夹

 
登录       点击换一张     注册新用户 找回密码

WinCE线程和内存管理(一)
2008年08月26日02:23   作者:wmisv 来源: wmisv 浏览: 187

  同其它Windows操作系统一样,Windows CE.NET也支持32位虚拟内存机制、按需分配内存和内存映射文件等。但是与其它Windows操作系统又有明显的不同。毕竟Windows CE是一种嵌入式实时性的操作系统,在内存管理方面必须要比其它Windows操作系统更节约物理内存和虚拟地址空间。在内存管理API方面,为了便于移植程序,Windows CE和其它Windows操作系统函数声明基本一致,这使一个在其它Windows下开发的程序员可以直接使用早就熟悉的API函数, 但是CE下内存管理的原理开发者还是应该熟悉的。

  1、ROM和RAM

  对于早期采用的存储设备一般采用ROM + RAM ,在ROM中存放的所有文件可以是压缩的也可以是不压缩的,这取决于OEM(原始设备制造商)。OEM在定制CE内核时可以设置一个标志告诉ROM镜像制作工具(romimage.exe)是否压缩文件。对于ROM中存放的模块(DLL、EXE文件)来说,如果是压缩的,模块在运行前先解压并全部存放到RAM中。如果是不压缩的,并且ROM介质支持线性访问(line-accessed),就可以本地执行(executed in place,缩写为XIP)。利用本地执行方式运行应用程序、DLL的优点是:采用这种技术在加载EXE或DLL时,其中的代码段数据不加载到物理内存中,内核只是分配虚拟地址空间给代码段,当执行代码时内核会到实际存放在ROM存储设备上的文件中寻找代码并执行。采用这样的技术既可以节省可用内存又可以减少加载的时间。但是这种技术有一定的局限性,如果要让CPU到ROM中去寻找代码执行,那么ROM介质必须支持线性访问,这就要求ROM介质支持线性访问,而不是块访问。XIP这种加载方式的缺点就是执行速度相对较慢,CPU访问ROM的速度肯定远慢于访问RAM的速度。

  基于Windows CE的产品开始采用FLASH、IDE等永久存储设备时,内核镜像(.bin)和其它应用程序文件开始存放到永久存储设备中而不是ROM中,这不仅仅是因为硬盘或者FLASH的I/O速度比ROM快,更因为现在的内核包含的功能多并且文件数量增加,因而需要的存储空间很大,一般都在20MB左右。再加上其它开发商开发的应用程序文件,要求的空间就更大了。CE启动时内核镜像由加载程序解压并将系统文件加载到RAM的NK,NK是在config.bib中定义的一段RAM区域,专用于保存内核镜像解压出来的所有文件。Windows CE将NK看作是ROM,当执行一个应用程序时,CE内核将这个应用程序需要的系


123末页下一页

发表评论
评论标题 :
评论内容 :

    查看评论

请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。 本站拥有管理笔名和留言的一切权利。
相关文章推荐
· 微软预先展示Server 2008/Visual Studio2008新性能 2008-8-22  wmisv
· HOW-TO: Retrieve the ICC-ID using the SIM Manager APIs 2008-7-21  Neil Cowburn
· WM6应用层代码检测POWER键RESUME动作 2008-7-21  Walzer
· Windows Mobile 6 Professional Emulator中串口设置问题 2008-7-21  浪子
· Windows Mobile 6 多普达P660银色闪亮登场 2008-7-16  WM移动解决方案联盟

  

论坛推荐  
热点活动
更多»

© CSIP 信息产业部软件与集成电路促进中心 All Rights Reserved 版权所有 京ICP备06020771号
联系电话:010-63951881-8003 王先生        邮件:wangj@csip.org.cn