|
以下是小弟的一些拙见:
很多的书上都说了,thread_info是放在内核栈的栈顶上的,之前一直没弄明白, 现在把自己的理解分享下:
每个任务都有一个task_struct, 而task_struct内一个thread_info的结构体,把thread_info 放栈顶是通过使用 union thread_union 来实现的,
union thread_union定义在sched.h,
union thread_union {
struct thread_info thread_info;
unsigned long stack[THREAD_SIZE/sizeof(long)];
};
这样,thread_info就在内核栈上了,因为栈是向下生长的,于是thread_info 就处于栈顶了!
个人愚见!!
........................... |
|