Linux内核:线程与进程 – task_struct对thread_info

前端之家收集整理的这篇文章主要介绍了Linux内核:线程与进程 – task_struct对thread_info前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我读到,Linux不支持线程或轻量级进程的概念,它像任何其他进程一样考虑内核线程.但是这个原则并不是很准确地反映在代码中.我们看到包含一个进程的状态信息的task_struct(如果错误的话请纠正我),并且将thread_info附加到进程内核栈的底部.

现在的问题是为什么当linux应该像任何其他进程一样解释线程时,代码支持通过thread_info的个人线程的概念?

请让我知道我在这里缺少什么 – 我是linux内核开发的新手.

解决方法

Linux中的线程被视为刚刚分享一些资源的进程.每个线程都有自己的thread_info(在堆栈的底部,就像你说的)和它自己的task_struct.我可以想到为什么将它们作为单独的结构维护的两个原因.

> thread_info是依赖于架构的. task_struct是通用的.> thread_info切入该进程的内核栈的大小,所以应该保持较小. thread_info作为微优化放置在堆栈的底部,使得可以通过舍入大小保存cpu寄存器,从当前堆栈指针计算其地址.

猜你在找的Linux相关文章