免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4067 | 回复: 4
打印 上一主题 下一主题

后备高速缓存作用?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-03 17:55 |只看该作者 |倒序浏览
“设备驱动程序常常会反复地分配很多同一大小的内存块。既然内核已经维护了一组拥有同一大小内存块的内存池,那么为什么不为这些反复使用的块增加某些特殊的内存池呢?实际上,内核的确实现了这种形式的内存池,通常称为后备高速缓存.”

在LDD上看到这句话,可是看了几遍都不知道后备高速缓存作用??请问有哪位知道呢??怎么觉得这句话翻译得很别扭的??


论坛徽章:
0
2 [报告]
发表于 2013-05-25 13:51 |只看该作者
后备高速缓存池是给那些经常需要小空间的驱动程序使用的,这是为了保证内存资源的使用率。实际上,一般内存分配都是调用__get_free_pages()  来分配内存,但是这种分配机制都是按页分配,当然如果需求量较大,这是一种不错的方法,但是对于小量的内存申请,就大大浪费了内存资源,因为即使是一个字节,也会给你分配一个页。这就诞生了slabe 后备高速缓存机制,总体是申请若干了页,但是将这些页分成若干小单位的内存,这样就大大提高了资源的利用率。kmalloc() 申请内存时,就是从高速缓冲中申请内存,还有很多使用实例。

论坛徽章:
0
3 [报告]
发表于 2013-08-30 09:40 |只看该作者
那kmalloc() 和kmem_cache_create都是高速缓存,他们又有什么异同呢?

论坛徽章:
1
水瓶座
日期:2013-10-14 10:55:54
4 [报告]
发表于 2013-09-06 20:41 |只看该作者
你用kmalloc分配内存时可能会睡眠,因为底层会换出页得到你需要的内存。但是后备高速缓存是提前分配好的一些相同大小的内存块,你需要时执行分配
就不会再睡眠了。而且在内存使用效率上也更好一些。

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
5 [报告]
发表于 2013-09-23 17:49 |只看该作者
可以看下英文原版的描述,另外了解一下内存分配的相关东西就明白了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP