有什么区别B / W TCB(螺纹控制块)和PCB(工艺)

问题描述 投票:6回答:3

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

通常在过程控制块(PCB)中维护哪些信息?

multithreading linux-kernel pthreads cpu-architecture
3个回答
8
投票

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

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

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


2
投票

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

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

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.