摘要: 由一个struct里的member(成员)的指针得到这个struct的指针,从而可以得到这个struct的其他成员。 通过这种方法,Linux内部就不需要维护一个task_struct的双向链表了,只需要维护task_struct里面的某个成员的双向链表,效果等同于一个task_struct的双向链 阅读全文
posted @ 2016-05-01 20:31 walkerlala 阅读(536) 评论(1) 推荐(1) 编辑
摘要: 1.  Each process in Linux has two stacks, a user stack and a kernel stack (8KB by default) 2. thread_info is architecure dependent but task_struct is 阅读全文
posted @ 2016-05-01 18:59 walkerlala 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 假如一个变量 foo 没有被声明为volatile,那么在打开编译器优化的情况下,如果第二次使用 foo,编译器产生的代码可能会直接使用已经存放在寄存器中的值,而不会再次从内存”reload"这个变量。这时如果这个变量已经是被修改过的了(在多线程的情况下经常发生),那么内存里的foo和寄存器里的fo 阅读全文
posted @ 2016-05-01 16:02 walkerlala 阅读(200) 评论(0) 推荐(0) 编辑
摘要: http://stackoverflow.com/questions/18034272/python-str-vs-unicode-types :) 阅读全文
posted @ 2016-04-29 16:23 walkerlala 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 最近一直在学习OS, 然后今天早上给我们上OS的老师突然问了一句大概是 “C语言里面的数组是行存取快还是列存取快?" 的问题。这个问题挺有意思的,而且老师也说了,低级程序员写的代码和高级程序员写的代码就差在这些隐晦的问题上。哎,上个学期学的计算机组成原理终于用上了: Hurb Sutter和Scot 阅读全文
posted @ 2016-04-21 15:04 walkerlala 阅读(505) 评论(0) 推荐(0) 编辑
摘要: Linux kernel里面用到的一个叫 CFS (Completely-Fair-Scheduler)的调度算法。在网上找的描述都很不直观,很难读。但是找到了一篇很通俗易懂的(大道至简啊。。。): http://people.redhat.com/mingo/cfs-scheduler/sched 阅读全文
posted @ 2016-04-19 23:06 walkerlala 阅读(429) 评论(0) 推荐(0) 编辑
摘要: http://www.matrix67.com/blog/archives/5044 :) 阅读全文
posted @ 2016-04-17 13:24 walkerlala 阅读(333) 评论(0) 推荐(0) 编辑
摘要: http://learnyouahaskell.com/higher-order-functions#function-application http://lambda.jstolarek.com/2012/03/function-composition-and-dollar-operator-i 阅读全文
posted @ 2016-04-15 23:42 walkerlala 阅读(146) 评论(0) 推荐(0) 编辑
摘要: Scenario 1: The problem is, there's a significant chance that the function oops will exit before the buffer has been converted to a std::string ,thus 阅读全文
posted @ 2016-04-13 13:55 walkerlala 阅读(207) 评论(0) 推荐(0) 编辑
摘要: Strongly recommended: http://stackoverflow.com/questions/4178175/what-are-aggregates-and-pods-and-how-why-are-they-special/4178176#4178176 先贴一个关于Aggre 阅读全文
posted @ 2016-04-10 20:55 walkerlala 阅读(239) 评论(0) 推荐(0) 编辑