在linux中的线程上下文切换期间,用于保存线程状态如PC,SP和寄存器的结构是什么?相当于freebsd中的TCB。如果可能,请指向源文件here。
请注意,PCB本身是不够的,因为每个线程每个进程都有PC,SP等。
答案 0 :(得分:7)
实际上是task_struct
。在Linux中,任务可以是线程,进程或介于两者之间的某种东西。线程只是您为与其他任务共享大多数事物(VMA,文件描述符等)的任务提供的名称。
这与线程只是一种特定的过程,并且可以通过相同的函数等处理的想法非常一致...... Plan 9的rfork()
和Linux的clone()
允许创建一个具有可定制级别共享的流程,因此您最终使用相同的机制来创建流程和线程。
答案 1 :(得分:1)
也许你想要setcontext和朋友(但你的代码不是非常便携,而且很难做到正确)?
或者你在内核里面说话?那么也许task_struct可能就是你想要的东西?