什么是差异B / W TCB(线程控制块)& PCB(处理)

时间:2012-02-29 15:06:48

标签: multithreading linux-kernel pthreads cpu-architecture

在Linux内核中使用process control block (PCB)和线程控制块(TCB),以便在委派给它们的CPU上有时间。两者有什么区别?

过程控制集团(PCB)中通常保留哪些信息?

3 个答案:

答案 0 :(得分:8)

PCB可以包含的一些值得注意的字段是进程ID,进程组ID,父进程和子进程,堆指针,程序计数器,调度状态(运行,就绪,阻塞),权限(系统资源是什么)允许进程访问),通用寄存器的内容和打开的文件。

除了一些特定的值(如线程id和指向包含该线程的进程的指针)之外,TCB还有一些与PCB相同的字段(寄存器值,堆栈指针,程序计数器,调度状态)。请注意,线程之间没有保护。

在Linux中,有一个struct task_struct,用于存储有关线程或进程的信息。它在 sched.h中声明。

答案 1 :(得分:2)

PCB存储有关内核进程的信息。像地址空间等...

进程可以包含不同的内核线程。 两者都由调度程序和调度程序管理。

TCB包含特定于线程的信息。

答案 2 :(得分:1)

'过程控制块(PCB)和线程控制块(TCB)都在内核中使用,以便在委托给它们的CPU上有时间。 - 通常不是,不。 PCB将有一个或多个TCB链接到它。 TCB描述执行上下文(例如,堆栈指针),PCB是环境上下文(例如,内存段和权限)。