免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
151 [报告]
发表于 2011-08-16 09:10 |只看该作者
回复 94# mournjust


    您是指在uboot启动参数中设置的mem就是直接映射区的大小是吧

论坛徽章:
0
152 [报告]
发表于 2011-08-16 11:41 |只看该作者
挺好的贴,楼主总不来,没人气了{:2_175:}

论坛徽章:
0
153 [报告]
发表于 2011-08-23 17:36 |只看该作者
好深奥
看来linux并不是那么好学呀

论坛徽章:
0
154 [报告]
发表于 2011-08-24 02:22 |只看该作者
最近又重温了下进程管理。有几个细节问题。

CFS进程调度是从run queue选waiting time时间最长的进程 即RB tree leftmost。
好了,问题来了:
waiting time和priority的关系?
priority和nice值的关系
或priority和 weight load的关系?

论坛徽章:
0
155 [报告]
发表于 2011-08-24 14:23 |只看该作者
本帖最后由 zhanglistar 于 2011-08-24 16:04 编辑

回复 2# chenrvmldd

最近刚好在看内存管理,ULK里面讲了slab的东西~
回答下lz的问题,如果有错误,希望指出。
    有关slab方面的:
在大学的操作系统课程上:在提到内存管理的时候:会强调两点:解决好外部碎片和内部碎片!

1.        slab是为了解决内部碎片提出的,还是外部碎片?

slab提出是为了解决内部碎片的。Linux用来解决外部碎片的算法是伙伴系统。
slab用来分配小内存的,而伙伴系统用来管理页的,属于大内存。

2.        Slab算法的核心思想是什么?请简述

slab算法的核心思想应该是对象思想,把相同对象统一管理~

3.        在什么情况下,会用到slab,请你举几个具体的例子!

比如文件系统中分配inode的时候,会用到slab。
还有分配file的数据结构的时候。

4.        Slab中算法中提到了着色,请问着色问题,主要是解决什么的?

着色主要用来解决使cache失效的。因为同一个硬件高速缓存倾向于把相同大小的对象放在同一行,高速缓存的硬件可能因此而花费内存周期在同一高速缓存行与ram内存单元之间来往传递对象,而其他的行并没有利用。
slab着色就是把不同的颜色的随机数分配给slab。

5.        你觉得slab算法有什么缺点,如果让你来设计,你怎么去改进它的缺点?

缺点???slab相当于在内存分配上加了一层,所以必然要付出管理的代价。缺点目前还不清楚。

论坛徽章:
0
156 [报告]
发表于 2011-08-24 16:35 |只看该作者
回复  linewer


    你是说进程使用mmap来map一个文件到用户地址空间,然后用内存地址的方式来访问文件 ...
futex 发表于 2011-07-06 10:18


匿名映射呢??好像漏了这个吧,我记得代码是有对这种情况的处理的

论坛徽章:
0
157 [报告]
发表于 2011-08-24 18:40 |只看该作者
回复 154# nettom


    这个可以参考LINUX内核设计与实现第4章的4.2节

论坛徽章:
0
158 [报告]
发表于 2011-08-24 20:46 |只看该作者
本帖最后由 nettom 于 2011-08-24 20:52 编辑

3.        在什么情况下,会用到slab,请你举几个具体的例子!

比如文件系统中分配inode的时候,会用到slab。
还有分配file的数据结构的时候。
--补充:凡是涉及到内存cache的,都有可能用到;特别是频繁使用的内核数据结构:进程数据结构分配,proc数据结构等。

论坛徽章:
0
159 [报告]
发表于 2011-08-24 20:52 |只看该作者
这个可以参考LINUX内核设计与实现第4章的4.2节
--结合linux内核架构看了,但都还是讲的不是很清楚。看来要自己啃代码了。

论坛徽章:
0
160 [报告]
发表于 2011-08-26 19:55 |只看该作者
回复 82# chenrvmldd


    这个好像是由于硬件切换需要TSS,而GDT是有限的,这样就限制了进程的数量,所以采用软件的方法.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP