(计算机软件与理论专业论文)基于wince的32mb以上内存优化.pdf_第1页
(计算机软件与理论专业论文)基于wince的32mb以上内存优化.pdf_第2页
(计算机软件与理论专业论文)基于wince的32mb以上内存优化.pdf_第3页
(计算机软件与理论专业论文)基于wince的32mb以上内存优化.pdf_第4页
(计算机软件与理论专业论文)基于wince的32mb以上内存优化.pdf_第5页
已阅读5页,还剩62页未读, 继续免费阅读

(计算机软件与理论专业论文)基于wince的32mb以上内存优化.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳理工大学硕士学位论文 摘要 w m c e 是一种实时嵌入式操作系统,其应用范围广泛,是当前嵌入式开发领 域的热点之一。w m c e 在内存管理方面与其它操作系统不同,应用程序可用的虚 拟地址空间为3 2 m b 。而实际项目要求应用程序通过人机交互的方式获得产品的标 准图像,并从生产线中自动获取被检测的产品图像,同时进行比较来检测产品是 否合格。因此应用程序需要在本地保存产品的标准图像、被检测的产品的图像以 及对图像比较过程中产生的数据。这样应用程序的3 2 m b 的虚拟地址空间就很容 易耗尽,而导致所开发的系统出现死机现象,本文通过对w m c e 应用程序3 2 m b 以内及其以上内存的优化,解决实际项目中的具体问题,因此本课题具有很大的 实际意义。 本文在充分分析w m c e 的系统总体架构和内存管理的基础上,结合项目的特 点,对w m c e 的3 2 m b 以内及其以上内存的优化研究出如下八种有效可行的方法。 ( 1 ) 定制和裁剪w m c e 的内核; ( 2 ) 合理利用应用程序的虚拟内存; ( 3 ) 定义d l l 的加载顺序节省内存; ( 4 ) 使用内存映射文件技术; ( 5 ) 避免w m c e 系统本地堆中产生碎片; ( 6 ) 对项目中内存压力较大的进程进行分离; ( 7 ) 进程在需要大内存前对剩余内存进行判断; ( 8 ) 合理使用垃圾回收机制避免内存泄漏。 这八种方法同时在实际项目中都得到了应用,并产生了良好的效果。 关键词:w m c e ;虚拟内存;w m c e 内核;优化内存 沈阳理工大学硕士学位论文 a b s t r a c t w i n c ei sar e a l t i m ee m b e d d e do p e r a t i n gs y s t e m ,t h er a n g eo ft h ea p p l i c a t i o no f w i n c ei sv e r ya b r o a d i ti so n eo ft h ec u r r e n th o t s p o t so ft h ee m b e d d e df i e l d w i n c ei s v e r yd i f f e r e n tf r o mo t h e ro p e r a t i n gs y s t e mi nt h em e m o r ym a n a g e m e n t , w i n c e s a p p l i c a t i o ni sl i m i t e dt o3 2 m bv i r t u a la d d r e s ss p a c e t h ep r a c t i c a lp r o j e c tn e e d st h e a p p l i c a t i o nt og e tt h es t a n d a r di m a g et h r o u g ht h em a n m a c h i n ec o n v e r s a t i o n , a n d a u t o m a t i c a l l yg e t st h ep r o d u c ti m a g en e e d e dd e t e c t i n gf r o mt h ep r o d u c tl i n e ,c o m p a r i n g w i t ht h es t a n d a r di m a g ea tt h es a m et i m e ,a n dd e c i d e sw h e t h e rt h ep r o d u c ti su pt o g r a d e s ot h ea p p l i c a t i o nn e e d st os a v ep r o d u c t ss t a n d a r di m a g e ,p r o d u c ti m a g en e e d e d d e t e c t i n ga n da n a l y z i n gd a t ao ft h ei m a g e s ot h e3 2 m bv i r t u a la d d r e s ss p a c ei se a s yt o b eu s e du p w h i c hw i l ll e a dt h es y s t e mt h a td e v e l o p e dt od e a d t h i sa r t i c l es o l v e st h e p r o b l e mt h r o u g ho p t i m i z i n gw i n c e sa p p l i c a t i o nw i t h i n3 2 m ba n da b o v e3 2 m b ,s o t h eq u e s t i o nf o rd i s c u s s i o ni sv e r yp r a c t i c a ls i g n i f i c a n t t h i sa r t i c l eb a s e do nt h es u f f i c i e n t l ya n a l y z i n gt h ew i n c es y s t e mw h o l es t r u c t u r e a n dt h em e m o r ym a n a g e m e n t ,c o m b i n i n gt h ep r o j e c tc h a r a c t e r i s t i c s ,s t u d i e so u te i g h t e f f i c i e n to p t i m i z i n gw i n c e sa p p l i c a t i o nw i t h i n3 2 m ba n da b o v e3 2 m bm e t h o d s ( 1 ) d e f i n i n ga n dc u r i n go u to f t h ew i n c ek e r n e l ( 2 ) p r o p e r l ya l l o c a t i n gt h ea p p l i c a t i o nv i r t u a la d d r e s ss p a c e : ( 3 ) d e f i n i n gd l l l o a do r d e r st os a v em e m o r y : ( 4 ) u s i n gm e m o r ym a p p e df i l e st e c h n o l o g y : ( 5 ) a v o i d i n gw i n c es y s t e ml o c a lh e a pp r o d u c i n gf r a g m e n t s : ( 6 ) s e p a r a t i n gp r o c e s st h a tt h em e m o r yp o w e r i sl a r g e : e s t i m a t i n gt h er e m a n e n tm e m o r yw h e nt h ep r o c e s sn e e d sl a r g em e m o r y : ( 8 ) p r o p e r l yu s i n gt h eg a r b a g ec o l l e c t i o nt oa v o i dl e a k i n gt h em e m o r y t h i se i g h tm e t h o d sa r ea p p l i e dt op r a c t i c a lp r o j e c ta tt h es a m et i m e ,a n dt h ee f f e c t i sv e r ye v i d e n t k e yw o r d s :w i n c e ;v h t u a lm e m o r y ;w i n c ek e r n e l ;o p t i m i z i n gm e m o r y 沈阳理工大学 硕士学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由作者 本人独立完成的。有关观点、方法、数据和文献的引用已在文中指出, 并与参考文献相对应。除文中已注明引用的内容外,本论文不包含任 何其他个人或集体已经公开发表的作品成果。对本文的研究做出重要 贡献的个人和集体,均己在文中以明确方式标明。本人完全意识到本 声明的法律结果由本人承担。 作者:搠桓红 日期:爱。0 7 年占月劈日 学位论文版权使用授权书 本学位论文作者完全了解沈阳理工大学有关保留、使用学位论文 的规定,即:沈阳理工大学有权保留并向国家有关部门或机构送交学 位论文的复印件和磁盘,允许论文被查阅和借阅。本人授权沈阳理工 大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可 以采用影印、缩印或其它复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者:胡桓缸指导教师:l r i 渤) 日 期:柳6 蟛日期:剐 孑硝 第1 章引言 第1 章引言 随着信息化、智能化、网络化的迅速发展,嵌入式系统技术也将获得广阔的 发展空间。m i c r o s o f t 看准了嵌入式的巨大市场,推出了面向移动智能连接设备的 操作系统。其中w i n c e 凭借其广泛的适应性,丰富的功能,强大的多媒体能力, 友好的开发环境,已经被广泛的应用于信息家电、移动计算和工业控制等领域。 w i n c e 仅在短短几年的时间里就占据了嵌入式市场的一定份额。因此w i n c e 的迅 速发展将是不可阻挡的潮流。基于w i n c e 的开发将会具有很大的市场潜力。 1 1w i n c e 概述 1 1 1w i n o e 的特征简介 w i n c e 具有以下特征: ( 1 ) w i n c e 具有灵活的电源管理功能,包括睡眠和唤醒模式。 w i n c e 先进的电源管理能够为各种类型的设备提供更为出色的性能表现,包 括不到1 秒钟的挂起和恢复时间,以及一般仅为2 秒钟的冷启动时间。一些优秀 的电源管理功能包括:带有多个r o m 即时执行( e x e c u t e i n - p l a c e ,x i p ) 区域的 快速启动;新的电源管理程序( p o w e rm a n a g e r ) ,提供诸如设备电源状态这样的功 能:支持需要非线性电源的系统;以及电力异常处理。 ( 2 ) w 诅c e 拥有良好的通信能力。 w i n c e 拥有良好的通信能力。它广泛支持各种通信硬件,支持直接的局域网 连接以及拨号连接,并提供与p c 、内部网以及i n t e r n e t 的连接,包括用于应用级 数据传输的设备至设备间的传输的连接。在提供各种基本的通信基础结构的同时, w i n c e 还提供与w i n d o w s g x n t 的最佳集成和通信。 ( 3 ) w i n c e 拥有相当出色的图形用户界面。 w i n c e 的图形用户界面相当的出色。它拥有基于m i c r o s o f ti n t e r n e te x p l o r e r 的i n t e r a c t 浏览器,此外,还支持t r u e t y p e 字体。开发人员可以利用丰富灵活的 控件库在w i n c e 的环境下为嵌入式应用建立各种专门的图形用户界面。w i n c e 甚 沈阳理工大学硕士学位论文 至还能支持诸如手写体和声音识别、动态影像、3 d 图形等特殊应用。 ( 4 ) w i n c e 是一个多任务的操作系统。 w i n c e 是一个多任务的操作系统,可以同时执行多个任务并在他们之问来回 切换,这其实就是w i n d o w s 的简化版本,可以通过熟悉的w i n d o w s 操作方式来控 制w i n c e 。 ( 5 ) w i n c e 支持丰富的多媒体和多语言。 w i n c e 允许创建基于n e t 的智能设备个性化应用程序,并提供对最新的多媒 体支持。w i n c e5 0 支持优化的w i n d o w sm e d i a9 声音和视频的编解码,并通过对 多语言的支持允许有效的创建本地化的w i n c e 的操作系统。从w i n c e4 0 开始, 完全支持创建中文的操作系统,并提供微软拼音、双拼等中文输入法。 ( 6 ) w i n c e 具有较强的实时性。 w i n c e 强大的中断和线程调度机制以及内核操作系统服务保证它为一个硬实 时的操作系统,能够满足不同设备对于时间关键性任务的时间和性能要求。根据 测试,在一个主频为2 0 0 m i - l z 的参考系统中,w i n c e 的实时性最小可以达到4 0 6 0 z s 。 1 1 2w i n c e 的版本 w i n c e 从1 9 9 6 年w i n c e1 0 诞生起,到今天的w i n c e6 0 ,w i n c e 已经发展 了近十年的时间,在这期间它先后经历了w i n c e1 0 、w i n c e 2 0 2 1 1 2 1 2 ”、w i n c e 3 0 、w i n c e n e t4 0 4 1 4 2 、w i n c e5 0 和w i n c e6 0 版本,取得了巨大的成功。同 时w i n c e 的不断发展过程中,也派生了像手持p c ( 聊c ) 、p a l m s i z ep c 、 s m a r t p h o n e 等一批以w i n c e 为核心的设备平台m 。目前,以w i n c e 为核心的 w i n d o w sm o b i l e 、w i n d o w sa o t u m o t i v e 也正在走向成熟。而本文是以w i n c e5 0 为主体进行研究的。 1 1 3w i h o e 的应用领域 因为w i n c e 具有多任务、实时性、模块化及可伸缩性、强大的通信能力等特 点,所以w i n c e 在嵌入式系统的诸多领域都有广泛的应用,具有丰富的应用类产 一2 一 第1 章引 品。其中,在如下几个领域的应用最多并具有巨大的发展潜力。 ( 1 ) 信息家电领域 信息家电是指所有能提供信息服务或通信网络系统的家用消费类电子产品, 如网络冰箱、家庭网关、数字机顶盒等。由于w i n d o w s 在传统p c 市场的优势, 及w i n c e 与w i n d o w s 的完美集成,使w i n c e 在这一市场中迅速占有有利地位。 ( 2 ) 移动计算领域 移动计算领域包括手机、p d a 、掌上电脑等各种移动设备。这些设备都是一 种个人工具,可以分为以语音功能为中心、以数字处理为中心或同时实现这两种 功能。微软在移动计算领域有专门针对以数字处理为中心的p o c k e tp c 产品和以语 音功能为中心的s m a r tp h o n e 。 ( 3 ) 工业控制领域 虽然w i n c e 具有很好的实时性,但是显然与v x w o r k s 等已经在工业控制领域 称雄多年的嵌入式系统有差距。但是随着w i n c e 的升级版的实时性能的增强和 w i n d o w s 的传统优势,w i n c e 不仅降低了产品生存周期中各个阶段的成本,而且 缩短了产品投放市场的时间,所以w i n c e 正逐步渗透到工业控制领域,并成为实 现工业自动控制的典型手段。 1 2 课题研究背景 1 2 1 课题背景介绍 与课题相关的实际项目就是基于w i n c e 的一个具体应用,即实现产品的检验。 项目要求应用程序通过人机交互的方式获得产品的标准图像,并从生产线中自动 获取被检测的产品图像,同时进行比较来检测产品是否合格。因此应用程序需要 在本地保存产品的标准图像、需要对要检测的产品图像进行裁剪、需要保存被检 测的产品的图像以及对图像比较过程中产生的数据。因此项目中开发的系统需要 具有以下特点。 需要在本地保存要检测的产品的标准图像: 需要保存要检测的产品的图像; 需要对要检测的产品的图像的关键部分进行裁剪; 一3 一 沈阳理工大学硕士学位论文 需要对裁剪前和裁剪后的图片进行保存; 需要对图片进行计策分析; 需要保存对大量图片处理后得到的数据: 一个线程需要多次运行; 项目中的代码一部分使用n a t i v ec o d e ( e m b e d d e dv i s u a lc + + ) ,一部分使 用m a n a g ec o d d * ( n e t 2 0 0 5 ( w n e t ) ) 。 1 2 2 课题介绍 w i n c e 在内存管理方面与其它操作系统不同,w i n c e 只能管理5 1 2 m b 的物 理内存和4 g b 大小的虚拟地址空间。在w i n c e 4 g b 的虚拟地址空问中,从0 x 0 0 0 0 0 0 0 0 到0 x 4 1 f ff f f f 由所有应用程序使用。这块地址空间分成3 3 个s l o t ,每个 s l o t 占有3 2 m b 的地址空间。s l o t 0 由当前占有c p u 的进程使用。s l o t l 由x i pd l l 使用。其它s l o t 用于进程使用,每个进程占用一个s l o t ,进程彼此不能够随意访 问。因为s l o t 0 只有3 2 m b ,因此每个进程运行时只有3 2 m b 的虚拟地址空间。这 3 2 m b 的虚拟地址空间在一般的情况下是够用的,只有在一些特殊情况下,这3 2 m b 的地址空间就会不够用。这些特殊情况具体如下: 系统需要加载大量的d l l ; 需要对图片进行裁剪; 需要对图片进行保存; 需要对大量图片的处理数据进行保存; 一个线程需要多次运行; 同时使用n a t i v ec o d e 和m a n a g ec o d e 开发。 w i n c e 系统在以上这些特殊情况下,应用程序的3 2 m b 的虚拟地址空间就容 易耗尽,会导致系统出现虚拟内存不足的问题。而实际项目恰恰具有这些特殊情 况,因此项目中开发的系统也存在虚拟内存不足的问题,甚至开发的系统会因为 虚拟内存不足而出现死机的现象。这一实际问题是本课题研究的重点。因此本课 题具有很大的实际意义。 一4 一 第1 章引言 1 3 本文研究内容概述 本文的研究的内容主要有以下四部分: ( 1 ) 第1 章:对w i n c e 、课题研究的背景和课题进行了介绍; ( 2 ) 第2 、3 章:对w i n c e 系统的总体架构和w i n c e 的内存管理进行分析, 并总结出w i n c e 的特点如下: w i n c e 系统可以使用微软提供的集成开发环境p l a t f o r mb u i l d e r 对内核进行 定制和裁剪; w i n c e 的内存是基于页式管理的; w i n c e 虚拟地址空间的分配和d l l 的加载都是以6 4 k b 为边界的; w i n c e 系统支持内存映射文件技术; w i n c e 本地堆中创建的内存块不能移动; w i n c e 系统支持垃圾回收机制( g a r b a g ec o l l e c t i o n ) : w i n c e 应用程序可用的地址空间受限于3 2 m b : w i n c e4 2 以上版本可以把x i pd l l 加载到s l o t l 。 ( 3 ) 第4 、5 章:详细介绍了w i n c e 的内存优化方法; 根据w i n c e 内存管理的特点和项目的特点,对w i n c e 的3 2 m b 以内及其以 上内存从以下几种方法进行优化。 定制和裁剪w i n c e 的内核; 合理利用应用程序的虚拟内存; 定义d l l 的加载顺序节省内存; 使用内存映射文件技术; 避免w i n c e 本地堆中产生碎片; 对项目中内存压力较大的进程进行分离; 进程在需要大内存前对剩余内存进行判断; 合理使用垃圾回收机制避免内存泄漏。 并且对上面的八种方法在理论上都进行了充分的推理和论证、在实验上都进 行了验证。这八种方法经过实验验证可行后已经应用到所开发的实际项目中,解 决了由于虚拟内存不足而出现的死机的问题,使开发系统的性能得到了优化、使 一5 一 沈阳理工大学硕士学位论文 虚拟内存不足问题得到了解决。 ( 4 ) 总结:对本文研究的内容进行了总结并进行了展望。 6 一 第2 章w i n c e 的系统架构分析 第2 章w in c e 的系统架构分析 2 1w i n c e 的系统架构 w i n c e 被设计成一种分层结构。如图2 1 所示,从底层向上分为硬件层、o e m 层、操作系统层和应用层。每一层分别由不同的模块组成,每个模块又由不同的 组件组成。这种层次结构试图尽量将硬件和软件、操作系统与应用程序隔离开, 以便于实现系统的移植,便于进行硬件、驱动程序、操作系统和应用程序等的开 发的人员分工合作、并行开发m 。 2 2 硬件层 图2 1w i n c e 的架构 硬件层是指由c p u 、存储器、f o 端口、扩展板卡等组成的嵌入式硬件系统, 是w i n c e 操作系统必不可少的载体。 一 沈阳理工大学硕士学位论文 2 30 e m 层 o e m 层是嵌入式硬件与w i n c e 操作系统的接合层。w i n c e 操作系统要能在 特定的硬件上运行,硬件必须要能够加载w i n c e 操作系统,同时,操作系统也要 能够实现对硬件系统的初始化“,。o e m 层主要由下列模块组成: ( 1 ) o a l ( o e m a d a p t a t i o nl a y e r ) o a l 是w i n c e 内核与目标硬件之间的一个代码层,主要用来处理w i n c e 内 核与目标硬件设备之间的通信,其功能主要包括c p u 初始化、处理中断、计时器 等w 。 ( 2 ) 启动加载程序( b o o tl o a d e r ) 启动加载程序用于将w i n c e 操作系统内核加载到目标硬件系统的内存并开始 启动操作系统的执行。 ( 3 ) 配置文件( c o n f i g u r ef i l e s ) 配置文件用于对w i n c e 操作系统的创建过程进行配置,主要包括源代码配置 文件和映像配置文件。源代码配置文件用于对操作系统运行时映像用到的模块、 特征和源代码的创建方式进行配置,而映像配置文件用于对最终操作系统运行时 映像创建方式进行配置 4 1 。 ( 4 ) 驱动程序( d r i v e r s ) 驱动程序是对物理或虚拟设备功能的软件抽象,是操作系统与外部设备或虚 拟设备的桥梁,应用程序只有通过驱动程序接口才能实现物理或虚拟设备的操作。 w i n c e 下的设备驱动既要实现w i n c e 规定的驱动程序接口,将设备的功能呈现给 应用程序和操作系统,又需要利用操作系统提供的服务,实现驱动程序的加载、 调度和卸载。 在o e m 层的代码构成中,o e m 层主要由c s p ( c h i ps u p p o r tp a c k a g e ) 代码 和b s p ( b o a r ds u p p o r tp a c k a g e ) 代码组成,其中c s p 支持不同的微处理器体系结 构,而b s p 支持不同的微处理器扩展和外设,它由b o o tl o a d e r 、o a l 和驱动程序 代码组成。 一8 一 第2 章w i n c e 的系统架构分析 2 4 操作系统层 从w i n c e 的架构图( 图2 1 ) 中可以看出操作系统层是核心层,它既要为下 面的o e m 层提供接口和服务,又要为上层的应用程序提供服务。它主要有以下几 个模块组成: ( 1 ) 核心 核心是w i n c e 操作系统的最小定制内核,它为任何基于w i n c e 的设备提供 处理器调度、内存管理、异常处理和系统内通信等功能,并为应用程序使用这些 核心功能提供服务。w i n c e 操作系统包含很多不同的文件,每个文件都为操作系 统提供不同的功能和服务,但只有n k c x c 为w i n c e 操作系统的内核。n k e x e 始 终运行在较高的优先级和处理器优先级上,除中断线程外,一般不允许操作系统 内的其它线程抢占它的运行。 ( 2 ) c o r e d l l c o r e d l l 是最基本的操作系统模块,它为其它模块提供核心功能。所有操作 系统定制设计都必须包含这个模块,但并不是这个模块中的所有组件都是必须的。 在绝大多数情况下,c o r e d l l 并不完成实际操作,它只是作为应用程序与操作系 统层之问的一个桥梁,将应用层对操作系统的调用传递给操作系统相应的模块, 并触发对相应进程的本地过程调用( l p c ) 。 ( 3 ) 对象存储模块 对象存储模块是w i n c e 为应用程序及相关数据提供的存储方式,即使在关闭 系统主电源只有后备电源的情况下,对象存储也能保证数据不会丢失。对象存储 是由文件系统、数据库和系统注册表三种类型的永久存储构成。虽然文件系统、 数据库和系统注册表共享一个单独的内存堆,但在实际应用中它们没有必要物理 上驻留在对象存储里,它们可以驻留在r o m 、可安装文件系统或外部设备上。为 此,w i n c e 的文件系统又区分为r a m 文件系统、r o m 文件系统和f a t 文件系统。 操作系统使用对象存储主要完成下列任务: 管理栈和内存堆; 必要时压缩或展开文件; 无缝地集成基于r o m 的应用程序和基于r a m 的数据。 一9 一 沈阳理工大学硕士学位论文 ( 4 ) 多媒体技术模块 多媒体技术模块将桌面计算机的高性能技术引入到了嵌入式设备领域。 w i n c e 支持从声音到图像及到视频的全方位的多媒体支持,为多媒体硬件提供了 相应驱动程序接口,为多媒体应用程序提供了丰富的a p i ,还为多种媒体文件和媒 体流提供了丰富的解码和编码。 ( 5 ) 图形窗口和事件系统模块 图形窗1 3 和事件系统模块( g w e s ) 包含了大部分的w i n c e 核心功能,它集 成了图形设备接口( g d i ) 、窗口管理器和事件管理器。g w e s 模块是w i n c e 操作 系统高度组件化的部分,它分别由u s e r 和g d i 两部分组成,u s e r 用来处理消 息、事件及鼠标和键盘等的用户输入,而g d i 用来处理图形的屏幕和打印输出等。 在运行的w i n c e 操作系统中,图形窗口和事件系统模块体现为g w e s e x e 进 程。g w e s 主要由以下三种类型的组件构成: 支持图形驱动的g d i 组件; 支持窗口控制的u s e r 组件; 支持其他窗口和图形功能的一般g w e s 组件。 ( 6 ) 设备管理器模块 设备管理器是运行在w i n c e 操作系统下体现为d e v i c e c x c 的一个进程,它提 供基本的设备列表管理、即插即用管理、i o 资源分配管理及驱动的加载、卸载和 跟踪已经加载的驱动程序及其接口等,它由内核加载并连续运行,一旦运行就永 不卸载。 ( 7 ) 通信服务和网络 通信服务与网络模块为基于w i n c e 的设备提供有线或无线通信,使c e 设备 能够与其他设备或计算机进行连接与通信。通信服务与网络模块为w i n c e 操作系 统提供网络驱动接口、网络通信协议及网络应用程序支持,并对个人网络、局域 网和广域网以及8 0 2 1 x 、蓝牙和红外等提供支持,还为远程实时通信( r 1 ) 提供 强大支持。 ( 8 ) 应用和服务开发模块 应用和服务开发模块是为应用程序开发提供编程接口和服务支持的库模块, 这些库模块一般都是一些d l l 。应用和服务开发模块提供的库模块有活动模板库 第2 章w i n c e 的系统架构分析 ( a t l ) 、c 运行库、组件服务( c o m 和d c o m ) 、消息队列( m s m q ) 、微软基 础类库( m f c ) 、标准s d k 、s q l s e r v e r c e 、n e t c o m p a c t f r a m e w o r k 等。 2 5 应用层 应用层是在操作系统提供的w i n 3 2a p i 的基础上,由w i n 3 2a p i 构建的应用 程序组成,这些应用程序为基于w i n c e 的设备提供增值功能和服务。应用程序主 要包括两部分:一部分是w i n c e 本身提供的应用程序,一部分是用户根据自身设 备需要定制开发的应用程序。应用层主要包括以下模块: ( 1 ) w i n c e 应用程序 w i n c e 应用程序是微软提供的应用程序,主要包括a c t i v e s y n c 、c a b 安装 卸载应用程序、文件查看器、i n b o x 、游戏、w o r d p a d 、w i n d o w sm e s s e n g e r 等应用 程序以及r d p ( 远程桌面协议) 支持、声音重定向、文件存储重定向、打印机重 定向、串并口重定向、智能卡重定向等应用程序。 ( 2 ) i n t e m e t 客户服务 i n t e m e t 客户服务模块提供了对浏览器应用程序、定制浏览器技术及脚本语言 解析引擎的支持。其组件包括标准的浏览器组件、i n t e m e te x p l o r e r6 0 浏览器应用 程序、p o c k e ti n t e m e te x p l o r e r 测览器应用程序及相关的插件和x m l 组件等。 ( 3 ) 用户接口 用户接口构成了用户与基于w i n c e 的设备和应用程序的交互方式,它由鼠标 接口、网络用户接口、软输入板、语音输入与识别、触摸屏等应用程序。另外国 际化模块也可以作为用户接口的一部分,国际化模块主要对本地化的用户接口和 本地化的特定的功能提供支持。国际化模块的应用程序包括本地化的资源文件、 字库、输入法( i m m ) 、国际语言支持( n l s ) 和多语言用户接口等。 ( 4 ) 客户应用程序 客户应用程序是用户为特定需求编写的特定功能的w i n c e 应用程序,一般在 p l a t f o r mb u i l d e r 或e m b e d d e dv i s u a lc + + 中创建。 沈阳理工大学硕士学位论文 2 6 本章小结 w i n c e 的结构分硬件层、o e m 层、操作系统层和应用层四层。通过对每一层 的主要模块以及每个模块所包含的组件的介绍,了解了每一个模块的功能及各模 块之间的联系。由于w i n c e 这种分层结构使w i n c e 具有裁剪的特性,因此可以使 用微软提供的集成开发环境p l a t f o r mb u i l d e r 并结合项目的需求定制和裁剪w i n c e 的内核,并且在定制的过程中可以根据定制内核的不同功能,添加或删减模块及 组件,使定制和裁剪出的内核最小化。 第3 章t i n c e 的内存管理 第3 章w in e e 的内存管理 3 1w i n c e 的虚拟内存模型 w i n c e 是一种保护模式的操作系统,因此程序的访问只能使用虚拟内存。 w i n c e 又是3 2 位操作系统,因此支持4 g b ( 2 露) 的虚拟地址空间,它由w i n c e 操作系统启动时创建,并且由m m u ( m e m o r ym a n a g e m e n tu n i t ) 进行管理。因此, 在内核初始化和启动m m u 之前,不能使用虚拟地址,而必须由c p u 编址物理地 址。在实际的系统中任何有效的虚拟地址都必须映射为能够用于识别一个物理资 源( 如r o m 、r a m 、c f 卡等) 的物理地址。 w i n c e4 g b 的虚拟地址空间又被分为两个2 g b 区域,如图3 1 所示,上面是 2 g b 的内核空间,下面是2 g b 的用户空间。内核空间是专门为内核使用而保留的, 只能由具有k m o d e 优先权的线程访问,而用户空间是为运行用户应用程序而准备 的,可以由除了进程空间保护限制的所有线程访问m 。 蝴伽 咖o 嗍 保留区域 ( 内核模式空问) 大型内存区域 ( 内存映射文件) 保留 活动进程 图3 1w i n c e4 g b 的虚拟地址空间 w i n c e 把4 g b 虚拟地址空间分成若干个s l o t ,每个s l o t 占3 2 m b ,s l o t 的编 号从o 开始。s l o t o 到s 1 0 t 3 2 对应的虚拟地址是0 x 0 0 0 00 0 0 0 到0 x 4 1 f ff f f f ,这 沈阳理工大学硕士学位论文 部分虚拟地址空间用于存放进程。其中s l o t o 用于映射当前在处理器上执行的线程 所属的那个进程。s l o t l 由x i pd l l 代码使用。s l o t 2 到s l o t 3 2 对应w i n c e 中每个 进程的3 2 m b 虚拟地址空间,其中s l o t 2 通常被f i l e s y s e x c 占用。也就是说,理论 上在w i n c e 中最多可以有3 0 个用户进程,对应s l o t 3 到s l o t 3 2 。但实际上通常的 w i n c e 除了n k e x e 和f i l e s y s c x c 还会产生很多进程,因此用户实际可以用的进程 数少于3 0 个。 s l o t 3 3 到s 1 0 t 6 3 对应的虚拟地址空间是0 x 4 2 0 00 0 0 0 到0 x t f f ff f f f 。这块虚 拟内存是由所有进程共享的,由于每个进程只有3 2 m b 的虚拟地址空间,如果应 用程序希望使用更多的虚拟内存,就可以在这个范围内申请。这个范围包括对象 存储和内存映射文件。此范围内的最后一个s l o t 从0 x 7 e 0 00 0 0 0 到0 x 7 f f f ff f f f , 也就是s 1 0 t 6 3 ,用来存放纯资源d l l ,如果某个d l l 里面只有像图标、位图、菜 单和对话框这样的资源信息,这个d l l 就会被加载到这个空间内。从o x s 0 0 00 0 0 0 开始是w i n c e 内核使用的虚拟地址空间。虚拟地址0 x s 0 0 00 0 0 0 到0 x 9 f f ff f f f 用来静态映射所有的物理地址。也就是说w i n c e 会把所有的物理内存一比一的映 射到这段虚拟地址上。这段地址一共有5 1 2 m b ,因此w i d c e 所支持的物理地址的 最大值为5 1 2 m b 。 虚拟地址0 x a 0 0 00 0 0 0 到0 x b f f ff f f f 会重复映射所有的物理内存,如图3 2 所示。这一段对物理内存的映射与0 x 8 0 0 00 0 0 0 一段最大的不同是从0 x s 0 0 00 0 0 0 开始的一段物理内存是有缓冲的,而从0 x a 0 0 00 0 0 0 开始的一段是没有缓冲的。 通常,缓冲可以提高系统的f o 效率,但是对于一些o a l 或者b o o t l o a d e r 中的设 备驱动程序来说,使用缓冲有可能会造成灾难性后果,因为缓冲有可能会更改设 备的写操作顺序。因此在驱动程序中如果需要直接访问i o 设备或寄存器,通常使 用o x a 0 0 00 0 0 0 开始的一段物理地址m 。 虚拟地址空间中从o x c 0 0 00 0 0 0 到o x c l f ff f f f 是为系统保留的空间。从 0 x c 4 0 0o o ( 3 0 到o x d 0 0 00 0 0 0 这个范围为用户定义的静态虚拟地址空间,但这个地 址空间只能用于非缓冲使用。利用o e m a d d r e s s t a b l e 定义物理地址映射空间后, 每次内核启动时这个范围都不改变了,除非产品包含的物理内存容量发生变化。 假如增加到1 2 8 m b 物理内存,那么物理地址映射空间也向后扩大了一倍。 w i n c e n e t 也允许用户创建静态的物理地址映射空间。用户可以调c r e a t e s t a t i c 一1 4 第3 章w i n c e 的内存管理 m a p p i n g 函数或者n k c r e a t e s t a t i c m a p p i n g ”1 函数来映射某一段物理地址到o x c 4 0 0 0 0 0 0 和0 x e f f f f f f f 之间的某一个范围。需要注意的是用这个函数创建的静态虚 拟地址只能够由内核访问,而且不能用于缓冲。从0 x e 0 0 00 0 0 0 到o x f f f ff f f f 是内核使用的虚拟地址,当内核需要大的虚拟地址空间时,会在这个范围内分配m 一 图3 2 静态映射的虚拟地址 3 2w in c e 应用程序6 4 m b 的虚拟地址空间结构分析 w i n c e4 g b 的虚拟地址中从0 x 0 0 0 00 0 0 0 到0 x 0 4 0 00 0 0 0 的6 4 m b 是驻留 w i n c e 应用程序的地址空间。图3 3 显示了w i n c e5 0 应用程序的虚拟地址空问。 6 4 m b 的虚拟地址空间中从0 x 0 0 0 00 0 0 0 到0 x 0 0 0 10 0 0 0 是为系统保留用来捕获野 指针的,应用程序代码从虚拟地址o x 0 0 0 10 0 0 0 开始加载。应用程序启动时,将在 地址空间中为所有代码保留足够的空间。然后,在需要实际代码时,这些代码将 被按需分页调度进该地址空间。在代码保留的区域上面的页是为只读和读写静态 数据区域保留的w 。 沈阳理工大学硕士学位论文 0 1o o 洲 c o r e d l ld l l o 岫r x 咿d l l p d u 基于r a m 的d l l 可用虚报空闻 堆拽( 保留数据) 堆( 保留空间) 资源 读写数据 只读数据 代玛 为系统保留捕获野指针 图3 3w i n c e5 0 应用程序虚拟内存空间 此外,还为本地堆和应用程序中运行的每个线程的堆栈保留了区域。当线程 启动时,为每个堆栈保留的区域的大小是固定的。只在堆栈增长时才会提交实际 的r a m 。另一方面,堆保留了需要在堆中分配r a m 块时增长的区域。从0 x 0 1 f f f f f f 到o x 0 3 f ff f f f 为x i pd l l 空间,对所有应用程序持续可用。因此当进程加 载“现场执行”( x i p ) d l l 时,将从6 4 m b 空间的顶部向下加载这些d l l 。当创建 r o m 时,每个x i pd l l 都会被定址( 确定在地址空间中的位置) 。加载非x i pd l l 时,将把它放在3 2 m b 边界的下面。非x i pd l l ( 也叫作基于r a m 的d l l ) 是 指那些从对象存储区加载的d l l 、从r o m 解压缩的d l l 或从外部文件系统( 例 如c o m p a c tf l a s h 卡) 加载的d l l 。当系统发出加载一个d l l 的请求时,内核首 先检查该d l l 是否先前已被另一个应用程序加载,如果没有,并且d l l 不是x i p d l l ,则内核将在3 2 m b 虚拟内存映射中从上到下搜索第一个可用的空间。搜索 被认为经过修改,是因为内核将避免使用由另一个d l l 使用的任何地址,即使该 d l l 不是由当前进程加载的。该搜索技术确保了将系统中的每个d l l h f l 载在唯一、 非重叠的地址中n ,。 第3 章w i n c e 的内存管理 3 3win c e 系统中3 2 m b 的进程地址空间结构分析 图3 4 进程3 2 m b 的虚拟地址空间的使用情况 w i n c e4 g b 的虚拟地址空间中最下面的3 2 m b ,即s l o t 0 是正在运行的进程的 地址空间。即当前正在运行的进程会被映射到s l o t 0 。这3 2 m b 的使用情况如图3 4 所示。在s l o t 0 中从0 x 0 0 0 10 0 0 0 开始,即6 4 k b 之上是进程的代码和数据,以及 一些堆和栈。进程申请虚拟内存是从低地址往高地址增长的。从3 2 m b 虚拟地址 空间最高地址开始,存放的是进程加载的r o md l l 的读写数据以及r a md l l 的数据,d l l 代码和数据的增长是从高地址往低地址增长的。如果这两个高低增 长相撞,就预示着进程已经耗尽了它的虚拟地址空间。尽管这个时候有可能还有 多余的物理内存,但是已经没法使用它了。因为进程的虚拟地址空间已经耗尽。 当开发的系统中的某个进程发生虚拟地址空间不足的情况时系统会弹出如图3 5 所示的系统内存不足的警告对话框。 图3 5w i n c e 系统虚拟内存不足弹出的对话框 沈阳理工大学硕士学位论文 3 4w i n c e 在内存管理方面存在的限制 w i n c e 这种特殊的内存管理决定了其在内存管理方面存在两个限制: ( 1 ,w i n c e 应用程序可用r a m 数量的限制; ( 2 ) w i n c e 应用程序可用的虚拟地址空间的限制。 下面就对这两方面的限制进行具体分析。 3 4 1w i n e e 应用程序可用r a m 的限制 w i n c e5 0 把除了内核以外的r a m 分为对象存储区域和应用程序内存区

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论