我读到,
Linux不支持线程或轻量级进程的概念,它像任何其他进程一样考虑内核线程.但是这个原则并不是很准确地反映在
代码中.我们看到包含一个进程的状态信息的task_struct(如果
错误的话请纠正我),并且将thread_info附加到进程内核栈的
底部.
现在的问题是为什么当linux应该像任何其他进程一样解释线程时,代码支持通过thread_info的个人线程的概念?
请让我知道我在这里缺少什么 – 我是linux内核开发的新手.
Linux中的线程被视为刚刚
分享一些资源的进程.每个线程都有自己的thread_info(在堆栈的
底部,就像你说的)和它自己的task_struct.我可以想到为什么将它们作为单独的结构维护的两个原因.
> thread_info是依赖于架构的. task_struct是通用的.> thread_info切入该进程的内核栈的大小,所以应该保持较小. thread_info作为微优化放置在堆栈的底部,使得可以通过舍入大小保存cpu寄存器,从当前堆栈指针计算其地址.
原文链接:https://www.f2er.com/linux/393532.html