怒开新坑——D0

2015-07-30  本文已影响117人  Quasars
OS考试重点- -囧.jpg

本坑是一本书 —— <Understanding the Linux Virtual Memory Manager>,04年的,距今也有10年了。。10年。。作者是Mel Gorman,所以本书也称为gorman's book.

为什么看这个呢,主要是之前一直对<strong>OS内存管理</strong>非常好奇,教科书上就只学过“伙伴系统”、“碎片”等<strong>理论上的概念</strong>,而考试上最喜欢考的则是缓存替换算法OPT,LRU,CLOCK...etc.搞得我之前面一个实习的时候被问到这方面第一反应就是LRU...直接被挂啊

另外,有一次手贱点进了kalloc的实现,然后呢?一顿瞎navigate,隐约看到了slab/slot甚至看到了color?(当时心里的反映是:什么鬼为何有个color?难道类似红黑树的着色还是什么?)

因此,偶然间发现我的某个文件夹中躺着这本书,恩,Let's go. :-(

前期朦胧的需求:(带着问题跳坑比较容易出来)

Chapter 1

<i>工欲善其事,必先利其器</i>

This Chap contain basics of:

  • how to acquire information on an open source project.

由此可见,第一章是非常适合初学者看的,而且不仅仅局限于MM,任何开源项目,这章的内容都非常适合新手看,叫你如何去开始研究一个部分的代码,另外还介绍了一些看代码的工具。
挑了些主要内容,NOTE一下。

Code-browsing Tools:

Analyzing-code-flow Tools:

以上是第一章介绍的工具,尤其是后面2个Codeviz和Graphviz,第一眼看到简直只能说Awesome!
看一些大的项目,一开始时往往头晕目眩,就好像把你扔到一个陌生的城市,你得自己找路,往往异常浪费时间。但现在,你拥有了一个地图!

我马上开始着手安装,然而却遇到了很大的困难:<a href=http://www.jianshu.com/p/b3ed2b3652ac>Compile GCC-4.6.2 in Ubuntu-14.04_32bit</a>

:( 最后还是没能成功安装codeviz,在编译gcc-4.6.2时失败。

可喜的是:) ,但我最后还是找到了替代方案 Doxygen + GraphVizWin上测试通过可用)。同样可以生成Call Graph,还能生成其他信息,功能仍在探索中。

下图是使用Doxygen+GraphVizdisksim-4.0的一个函数disksim_setup_disksim()画的调用图:

disksim_8c_a7c40f454200d95bfcc12c6b1f85aa83a_cgraph.png

参考:
<a href=http://blog.csdn.net/solstice/article/details/488865>分析函数调用关系图(call graph)的几种方法_陈硕</a>
(to be continued)

上一篇 下一篇

猜你喜欢

热点阅读