windows ce内存管理

windows ce内存管理

ID:9507930

大小:61.50 KB

页数:8页

时间:2018-05-01

windows ce内存管理_第1页
windows ce内存管理_第2页
windows ce内存管理_第3页
windows ce内存管理_第4页
windows ce内存管理_第5页
资源描述:

《windows ce内存管理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、WindowsCE内存管理  内存管理  如果你在写磁盘。不同于PC上的旧式的虚拟RAM磁盘,对象存储区保留存储的文件甚至当系统被关闭以后。(脚注)这种安排的原因是以便维持文件在对象存储区的存储。当用户按了重启键之后,中的另一个区域则用作程序存储区。程序存储区有点像个人电脑中的RAM,它为正在运行的应用程序保存堆和栈的内容。在对象存储区和程序存储区之间的分界线是可以通过移动它来改变的,用户可以在控制面板中找到改变这条分界线的设置。在可用内存降低的(loemory)条件下,系统将会弹出对话框询问用户是否要将对象存储区RAM划分一些给程序存储区RAM以满足要运行

2、的应用程序的需求。关于ROM  在个人电脑中,ROM是用来存储BIOS(基本输入输出系统)并且只有64-128KB。在大小可以从4MB到32MB并且存放整个操作系统以及和系统捆绑在一起的应用程序。在这种情况下,ROM在之上的程序能够以现场执行(ExecuteinPlace,XIP)的方式运行。换句话说,程序可以直接从ROM中执行而不必先加载到RAM中再执行。这种能力对小型系统来说,使之在两个方面具有巨大的优势。代码直接从ROM中执行意味着程序代码不会占据更有价值的RAM。同样,程序在执行前也不必先复制到RAM中,这样就只需要很少的时间来启动一个应用程序。不在

3、ROM中,但是被包含在对象存储区(译者注:上文将对象存储区比作永久的RAM磁盘,故此处要说明,只有Intel力推的norflashmemroy类型才能以XIP方式执行,ROM其实也是一种norflashmemory类型)或闪存卡(Flashmemorystoragecard)中的程序将不能以现场方式执行,它们将被复制到RAM中再执行。关于虚拟内存  S-DOS系统复杂的地址空间看出来。一旦请求的RAM超过最初PC设计的640-KB限制,程序设计者将不得不作出像扩展内存一样的计划以便增加可用内存的数量。OS/21.x(译者注:IBM研制的操作系统)和emory

4、Status函数,GetSystemInfo函数原型如下:  VOIDGetSystemInfo(LPSYSTEM_INFOlpSystemInfo);  它传递了一个指针给SYSTEM_INFO结构,定义如下odel)和芯片的步进级别(steppinglevel)。typedefstruct{aximumApplicationAddress;DaximumApplicationAddress参数说明了应用程序可用到的最小和最大的虚拟内存地址。dberOfProcessors参数显示被EMORYSTATUSlpmst);它返回一个MEMORYSTATUS结构

5、,定义为typedefstruct{Dem[i]=VirtualAlloc(NULL,PAGESIZE,MEM_RESERVE│MEM_MIT,PAGE_READ,VirtualAlloc也会在完成分配前失败。因为它的运行已经超出了应用程序的虚拟地址空间。发生这种情况是因为每1-KB的块要占用64-KB的空间,接下来应用程序的代码,栈,和本地堆也要映射到同样的32-MB虚拟地址空间,可用的虚拟分配区域通常不超过475个。  一个比较好的分配512块特殊内存的方法是这样做:#definePAGESIZE1024 //Assumeachine.//Reserve

6、aregionfirst.pMemBase=VirtualAlloc(NULL,PAGESIZE*512,MEM_RESERVE,PAGE_NOACCESS);for(i=0;i<512;i++)pMem[i]=VirtualAlloc(pMemBase+(i*PAGESIZE),PAGESIZE,MEM_MIT,PAGE_READem,UINTuBytes,UINTuFlag);  hMem参数是一个由LocalAlloc返回的指针(句柄)。uBytes参数是内存块的新大小。uFlag参数包含给新内存块的标志。在EM_MOVEABLE标志,调用将会返

7、回句柄(实际是指向内存块的指针)。  内存块的大小可以通过以下调用查询:  UINTLocalSize(HLOCALhMem);  返回内存块最少需要的内存大小。像我前面提到的,ain         00011000f memtest.obj0001:0000007c   _InitApp         0001107cf memtest.obj0001:000000d4   _InitInstance       000110d4f memtest.obj0001:00000164   _TermInstance       00011164f mem

8、test.obj0001:00000248   _M

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。