摘要: 由一个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) 编辑