• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

page cache中存的是页的内容还是索引(地址)?

发布: 2007-7-04 12:06 | 作者: admin | 来源:  网友评论 | 查看: 11次 | 进入软件测试论坛讨论

领测软件测试网
看了很多资料,都说存的是页的内容. 但我觉得存的是页的索引,或者地址指针.如果存的是页的内容, 那不是浪费了物理内存空间吗?

 grub007 回复于:2003-07-18 09:17:04
是页面的内容

 flightbird 回复于:2003-07-18 09:31:32
从下面的叙述看,应该是指针:
   当一页的数据从内存映射文件中读出,例如当 demand paging 时需要放到内存中的时候,此页通过  page cache 中读出。如果此页在缓存中,就返回一个指向 mem_map_t 数据结构的指针给 page fault 的处理代码。否则,此页必须从存放此文件的文件系统中加载到内存中。  Linux 分配物理内存并从磁盘文件中读出该页。如果可能, Linux 会启动对文件下一页的读。这种单页的超前读意味着如果进程从文件中顺序读数据的话,下一页数据将会在内存中等待。

 qjlemon 回复于:2003-07-18 09:37:41
此cache非彼cache,对CPU而言的page cache存放的是页的内容,至于OS自己的cache那就不能一概而论了

 flightbird 回复于:2003-07-18 09:54:13
对cup而言的page cache指的是什么? 在cpu内部? 否则应该只有os自己的page cache吧.

 qjlemon 回复于:2003-07-18 09:57:55
现在买CPU不都能看到一个指标是缓存有多大吗?就是CPU里面的cache。
其实CPU里的cache并不只有这一种,还有诸如页表缓存之类,存放的就是最新的页表项。。。

 flightbird 回复于:2003-07-18 10:22:17
[quote:86d68444db="qjlemon"]现在买CPU不都能看到一个指标是缓存有多大吗?就是CPU里面的cache。
其实CPU里的cache并不只有这一种,还有诸如页表缓存之类,存放的就是最新的页表项。。。[/quote:86d68444db]     

ft..

 qjlemon 回复于:2003-07-18 10:31:48
[quote:fba879b396="flightbird"]    

ft..[/quote:fba879b396]   :twisted:  :twisted:  :twisted:

 flightbird 回复于:2003-07-18 13:36:10
页表放在cpu里面的cache里?

 qjlemon 回复于:2003-07-18 14:50:41
每次更新段寄存器的内容时CPU都会把相应的页表项读到一个专门的cache里,每个段寄存器都有一个对应的cache
要不然每次访问一块"内存",都要到"内存"里查一遍页表,那还不慢死了!

 flightbird 回复于:2003-07-18 16:14:22
我想你指的是cpu里的tlb吧? 页表是存在物理内存中的. tlb里只是一部分页表的拷贝.

 qjlemon 回复于:2003-07-18 16:19:15
就是这个意思

 qjlemon 回复于:2003-07-18 16:31:09
[quote:ca2427c4e0="flightbird"]tlb里只是一部分页表的拷贝.[/quote:ca2427c4e0]如果是全部页表的拷贝,就不叫cache了

 flightbird 回复于:2003-07-18 16:42:25
我想问的是page cache里存的是内容还是数据.如你所述,tlb是页表的部分拷贝,而页表存的不是数据(页数据).这里的page cache不是你所说的cpu里面的cache,而是os里面的page cache.

 blsword 回复于:2004-04-14 14:24:43
晕,讨论半天到底page cache里寸的是什么啊?如果page cache是占用的物理内存,那再从page cache里读页到物理内存中,岂不是在物理内存中有两份拷贝?

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网