免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chenrvmldd
打印 上一主题 下一主题

也谈谈这四年来对内核的研究 [复制链接]

论坛徽章:
0
131 [报告]
发表于 2011-07-30 16:08 |只看该作者
本帖最后由 imcg 于 2011-07-30 16:11 编辑

感谢楼主秉持对读者的责任心,尤其是咱们国内的孩童们。国书无心,不知是我看的书少还少看书,不过我看过的国内IT技术书98%是虚作(抄、揍、缺、假)。至今看过的最有责任心的国人作品是《程序员的自我修养》,那时无比欣慰。求精不求多,谢谢楼主,无言以致!期待你的心作

论坛徽章:
0
132 [报告]
发表于 2011-07-30 18:16 |只看该作者
内核博大精深,是需要投入相当的精力的。

论坛徽章:
0
133 [报告]
发表于 2011-07-31 12:41 |只看该作者
感谢大家对我的支持,最近一段时间比较忙,等忙完这阵,我会继续把我的问题提出来,然后再整理一下这十个问题,

论坛徽章:
0
134 [报告]
发表于 2011-08-02 17:16 |只看该作者
回复 44# chenrvmldd


    中断线程化这个东东。。我翻源码。。找了好久没找到。linux/irq.h中。。说有个task_struct 结构体的。。 没找到,仁兄是否可以指点下。。 在哪个文件。。

论坛徽章:
0
135 [报告]
发表于 2011-08-03 22:19 |只看该作者
楼主弄得我没睡意了

论坛徽章:
0
136 [报告]
发表于 2011-08-05 04:10 |只看该作者
个人感觉以对象的观点去考虑slab,对理解slab没一点好处,他就是一小块内存,可用来存储各种数据。
gw2004 发表于 2011-07-08 18:15



    然,内核只是大繁杂,其实没啥巧的。slab这种东西无非就是把类似原来malloc这种变长分配分开成一个个的定长分配,节省分配时间,防止内存碎片,对频繁分配释放的内存意义大一些,什么对象之类的都是浮云。

论坛徽章:
0
137 [报告]
发表于 2011-08-05 23:31 |只看该作者
都好厉害阿

论坛徽章:
0
138 [报告]
发表于 2011-08-06 10:19 |只看该作者
回复 136# oooooxxxxx


这个观点我真不敢苟同,兄弟要知道slab的提出,是CCS当年最牛的一篇paper,就你一句话浮云,

论坛徽章:
0
139 [报告]
发表于 2011-08-06 10:30 |只看该作者
最近比较忙,在搞一个驱动,搞了很久了,也许比较复杂,总是有些BUG,所以没时间去总结一些问题,今天算是忙里偷闲,发一个我当时在学习的过程中曾经困惑过的问题:是有关红黑树的!这应该算是第四个问题了:
1.        首先第一个:我们知道红黑树是用来管理虚拟地址的,我记得在0.11版本的Linux中也有虚拟地址的概念,为什么不用红黑树来管理虚拟地址了,后来我仔细的想了想发现原来在0.11中每个进程最大的虚拟地址空间是64M,但是在现在的内核中32位的系统,虚拟地址3G,所以就引入了红黑树,好的,虚拟地址的管理是用红黑树,虚拟地址是用数据结构VMA来表示的,那么VMA这个东东,比没有VMA这个东东有哪些好处了?
2.        第二个问题,到现在我也不是很深入的研究过:原来在2.2的版本左右吧,管理VMA的时候用的是AVL树,后来引入了RB-树,据说RD-树的统计性能要比AVL树要好,这个我也不是特别的清楚,等待高手过来解答

论坛徽章:
0
140 [报告]
发表于 2011-08-08 11:15 |只看该作者
本帖最后由 lysde 于 2011-08-08 11:22 编辑

回复 139# chenrvmldd


    1.        首先第一个:我们知道红黑树是用来管理虚拟地址的,我记得在0.11版本的Linux中也有虚拟地址的概念,为什么不用红黑树来管理虚拟地址了,后来我仔细的想了想发现原来在0.11中每个进程最大的虚拟地址空间是64M,但是在现在的内核中32位的系统,虚拟地址3G,所以就引入了红黑树,好的,虚拟地址的管理是用红黑树,虚拟地址是用数据结构VMA来表示的,那么VMA这个东东,比没有VMA这个东东有哪些好处了?

对于第一个问题,加入这种二叉树的目的就是为了提高内存区域查找,插入,删除的效率,在ULK的第三章进程中有写到,当进程内存区域较少的时候(小于32个),就使用链表管理内存区域(memory region),当数量超过这个数目时就开始使用AVL树来组织内存区域(我看的是2.2内核,我觉的高版本的内核可能就是RB树了)

2.        第二个问题,到现在我也不是很深入的研究过:原来在2.2的版本左右吧,管理VMA的时候用的是AVL树,后来引入了RB-树,据说RD-树的统计性能要比AVL树要好,这个我也不是特别的清楚,等待高手过来解答!

这个问题你自己其实已经回答了,RB树的性能从理论上分析并不比AVL高,但是在实际的应用统计当中,它的效率要高于AVL树,我不是高手,也只是这样理解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP