3829|10

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于WinCE中的paging pool [复制链接]

照PB帮助文档中所说:Paging pool是RAM中reserved的一块区域。用于存放只读的代码。如果paging pool没有使能,则整个RAM都会用来paging,这样就会显著增大RAM的利用率。使用paging pool,会设置有限的RAM用于paging。Paging pool的size越大,越多的RAM可以用来paging。这样就会减少page faults ,因为更多的代码存储在paging pool中。
在手头的项目中,我把Paging pool的size设置为1M,5M,10M,以及不使用Paging pool的情况下,这四种情况系统启动时间,以及读Nand Flash的次数都相似。而当Paging pool的size设置为256K时,系统启动时间会变慢,而且读取Nand Flash的次数明显增多。
既然size设置为1M和10M没什么区别,说明reserve出1M的Ram用于Paging已经足够了,那对于保存在Nand Flash中的十几兆的Image来说,哪些东西是可pagable的,放在Paging Pool中,哪些是不能pagable的。
谢谢!
此帖出自WindowsCE论坛

最新回复

^_^,好文章  详情 回复 发表于 2009-2-17 20:04
点赞 关注
 

回复
举报

58

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
up
此帖出自WindowsCE论坛
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
顶。
此帖出自WindowsCE论坛
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

4
 
这个东西我想知道,但是自己知道还不够水平去研究。哪个知道说说哦。
此帖出自WindowsCE论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 
只有在内存里的数据才有pagable一说,放在Flash里的东西无所谓pagable。CE 5的paging策略非常简单,只有只读数据(即可执行程序的代码段、只读数据段和只读内存映射文件)是pagable的,其余的都不是。CE 6中有两个pool,loader pool和CE 5相同,file pool中可以放read-write内存映射文件和文件系统的缓存数据。
此帖出自WindowsCE论坛
 
 
 

回复

92

帖子

0

TA的资源

纯净的硅(中级)

6
 
引用 4 楼 singlerace 的回复:
只有在内存里的数据才有pagable一说,放在Flash里的东西无所谓pagable。CE 5的paging策略非常简单,只有只读数据(即可执行程序的代码段、只读数据段和只读内存映射文件)是pagable的,其余的都不是。CE 6中有两个pool,loader pool和CE 5相同,file pool中可以放read-write内存映射文件和文件系统的缓存数据。


长见识了。
此帖出自WindowsCE论坛
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

7
 
up
此帖出自WindowsCE论坛
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

8
 
mark。学习
此帖出自WindowsCE论坛
 
 
 

回复

62

帖子

0

TA的资源

禁止发言

9
 
太好了,学习。。。。。。。。。。。。。。。
此帖出自WindowsCE论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

10
 
感谢各位的回答和支持。
最近查了些相关资料,在这儿总结一下我的理解。

1.Paging pool是RAM中reserved的一块区域。用于存放只读的可执行文件的代码,数据以及内存映射文件。如果使用paging pool就会给pagale data所使用的内存设定限制,还包括将pagable data从内存移出的算法机制。
2.如不使用paging pool,这意味着操作系统不限制保存可执行文件和内存映射文件的page的数量。如果你跑了很多的程序或访问大量的内存映射文件,你会看到内存使用率相应的增加。内存使用率会继续上升,直到系统耗尽内存。其他内存分配就会失败。内存看起来好像真的用完了,而实际上还存在大量潜在的可以通过paging data out从而释放的空间。直到最后,当系统达到最低内存限制时,内核将遍历所有的pagale数据,并全部page out(是的,全部)。这样就会突然间出现大量的可用内存,你正在使用的数据就会通过产生page fault重新page in到内存。
3.如果使用paging pool,会设置有限的RAM用于存放pageable的data。Pool的size设置太小,这意味着pages可能会被过早地page out,尽管他们仍然在使用。Pool大小设置得太大,这意味着操作系统将保留更多的内存用于pageable data。这样就会减少page faults ,因为更多的代码存储在paging pool中。但Pool内存将无法被应用程序使用。
4.不管是不是paging pool,都会paging。只不过对于paging pool,page in的data还可以page out。而对于非paging pool中的data则不会被page out。
此帖出自WindowsCE论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

11
 
^_^,好文章
此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表