Chinaunix首页 | 论坛 | 博客
  • 博客访问: 46747
  • 博文数量: 14
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 35
  • 用 户 组: 普通用户
  • 注册时间: 2018-11-19 18:25
文章分类

全部博文(14)

文章存档

2018年(14)

我的朋友

发布时间:2018-11-29 11:19:53

http://zzjlzx.blog.chinaunix.net/uid-14528823-id-4761421.html......【阅读全文】

阅读(1827) | 评论(0) | 转发(0)

发布时间:2018-11-23 08:58:38

 思考问答在系统启动时,ARM Linux内核如何知道系统中有多大的内存空间?在32bit Linux内核中,用户空间和内核空间的比例通常是3:1,可以修改成2:2吗?物理内存页面如何添加到伙伴系统中,是一页一页添加,还是以2的几次幂来加入呢?内核的一级页表存放在什么地方?二级页表又存放在什.........【阅读全文】

阅读(2450) | 评论(0) | 转发(0)

发布时间:2018-11-19 19:45:49

上一篇回收slab对象时,先考虑放入local cache,当local cache已超过上限时,尝试放入shared cache。否则从local cache中批量释放batch_count对象放入slab三链。当slab三链的空闲对象超过上限,并且待释放的slab对象对应的slab中已经没有正在使用的对象时,将slab直接释放掉。释放slab对应的函数是slab_destroy,下面分.........【阅读全文】

阅读(1897) | 评论(0) | 转发(0)

发布时间:2018-11-19 19:45:46

我们的分析顺序是初始化、创建cache、申请对象、申请对象时会涉及创建slab、释放对象、释放对象时会涉及释放slab、销毁cache。前面已经介绍到了创建slab,本节分析一下释放对象,有两个入口kfree和kmem_cache_free,由于两者实现的本质相同只是对外体现为了两个API,这里放在一起梳理一下,下面分析一下代码。.........【阅读全文】

阅读(2138) | 评论(0) | 转发(0)

发布时间:2018-11-19 19:45:42

在前文分析kmalloc时,首先从local cache中获取,没有空闲对象时再从shared local cache中获取,再从slab的三个链表中获取。当链表中也没有空闲对象时,则需要调用cache_grow函数来创建slab了。实际上刚开始创建cache时里面是没有slab对象的,真正使用时才进行slab的创建。下面分析一下cache_grow的实现。点.........【阅读全文】

阅读(2118) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

yves_zhang2018-11-19 18:27

hello.chainUnix

回复  |  举报
留言热议
请登录后留言。

登录 注册