nit*_*ian 7 process linux-kernel
在Linux 2.6内核之前,struct task_struct存在于每个进程的内核堆栈的末尾.没有thread_info struct概念.但是在Linux 2.6内核中,不是task_struct放在进程内核堆栈的末尾,而是thread_info struct放在最后.此thread_info结构包含指向结构的指针task_struct.
thread_info结构的引入需要什么?我们可以task_struct使用stack pointer直接访问结构,如果task_struct放在进程的内核堆栈的末尾.
在2.6内核中,task_struct使用动态分配slab_allocator.在2.6内核之前,它是静态分配的吗?
小智 6
弗兰克,他正在寻找(出于纯粹的兴趣,因为我是,我怀疑)这个变化的原因.这个,如果我发现我的l33t谷歌技能.链接后面的更多信息:
"task_struct很大.在32位机器上它大约是1.7KB.另一方面,你可以很容易地看到thread_info更加纤薄.
内核堆栈是4或8KB,无论哪种方式都是1.7KB,所以存储一个指向task_struct的超薄结构,可以立即节省大量的堆栈空间,是一种可扩展的解决方案."
(c)http://www.spinics.net/lists/newbies/msg22263.html
| 归档时间: |
|
| 查看次数: |
3638 次 |
| 最近记录: |