博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
慢慢欣赏linux 页框lru的作用
阅读量:4070 次
发布时间:2019-05-25

本文共 1101 字,大约阅读时间需要 3 分钟。

slab系统对象利用lru可以找到kmem_cache

void kfree(const void *objp)	struct kmem_cache *c;	c = virt_to_cache(objp);		=>struct kmem_cache *virt_to_cache(const void *obj)			struct page *page = virt_to_head_page(obj);				=>struct page *virt_to_head_page(const void *x)					struct page *page = virt_to_page(x);//对象在页框之中					return compound_head(page);			return page_get_cache(page);				=>struct kmem_cache *page_get_cache(struct page *page)					page = compound_head(page);					return (struct kmem_cache *)page->lru.next;//可以参考slab数据结构图	__cache_free(c, (void *)objp);

伙伴系统利用lru组织链表

struct page *buffered_rmqueue(struct zone *preferred_zone, struct zone *zone, int order, gfp_t gfp_flags, int migratetype)	page = __rmqueue(zone, order, migratetype);		=>struct page *__rmqueue(struct zone *zone, unsigned int order, int migratetype)			page = __rmqueue_smallest(zone, order, migratetype);				=>struct page *__rmqueue_smallest(struct zone *zone, unsigned int order, int migratetype)					page = list_entry(area->free_list[migratetype].next, struct page, lru);//只有第一个页加入到伙伴系统里面,第一个页被摘掉了,整个order都脱离了					list_del(&page->lru);

 

转载地址:http://wvlji.baihongyu.com/

你可能感兴趣的文章
SpringBoot 动态编译 JAVA class 解决 jar in jar 的依赖问题
查看>>
fhs-framework springboot mybatis 解决表关联查询问题的关键方案-翻译服务
查看>>
ZUUL2 使用场景
查看>>
Spring AOP + Redis + 注解实现redis 分布式锁
查看>>
elastic-job 和springboot 集成干货
查看>>
php开发微服务注册到eureka中(使用sidecar)
查看>>
mybatis mybatis plus mybatis jpa hibernate spring data jpa比较
查看>>
支付宝生活号服务号 用户信息获取 oauth2 登录对接 springboot java
查看>>
CodeForces #196(Div. 2) 337D Book of Evil (树形dp)
查看>>
uva 12260 - Free Goodies (dp,贪心 | 好题)
查看>>
uva-1427 Parade (单调队列优化dp)
查看>>
【设计模式】学习笔记13:组合模式(Composite)
查看>>
hdu 1011 Starship Troopers (树形背包dp)
查看>>
hdu 1561 The more, The Better (树形背包dp)
查看>>
【设计模式】学习笔记14:状态模式(State)
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
斯坦福大学机器学习——因子分析(Factor analysis)
查看>>
项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved
查看>>
linux对于没有写权限的文件如何保存退出vim
查看>>
Windows下安装ElasticSearch6.3.1以及ElasticSearch6.3.1的Head插件
查看>>