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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有什么区别B / W TCB(螺纹控制块)和PCB(工艺)相关的知识,希望对你有一定的参考价值。

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

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

答案

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

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

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

另一答案

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

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

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

另一答案

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

以上是关于有什么区别B / W TCB(螺纹控制块)和PCB(工艺)的主要内容,如果未能解决你的问题,请参考以下文章

什么是进程控制块?进程控制块中一般包含哪些内容?

过程控制块与过程表?

什么是进程,什么是进程控制块(PCB)?

UNIX为啥要把PCB分为进程表项proc区和U区

UCOS2系统内核讲述_TCB任务控制块

golang调度器学习