为什么一些进程控制块包含许多与线程控制块相同的信息?
Why do some process control blocks hold many of the same information as thread control blocks?
如果每个进程至少有一个线程,那么为什么线程控制块不保存寄存器和程序计数器。一些内核也会在进程控制块中实现相同的信息,这似乎是一种浪费。这样做还有其他原因吗?
在内核中使用术语 "process" 是进程为单线程时代的遗留物。通过"process",内核真正意味着内核必须调度的东西。 "things that the kernel has to schedule" 没有简单的词,"process" 一词的使用具有历史意义。
当您看到 "process control block" 时,您真正看到的是内核用来跟踪它安排的内容的结构。这通常包括内核线程并包括进程中的每个线程。
如果每个进程至少有一个线程,那么为什么线程控制块不保存寄存器和程序计数器。一些内核也会在进程控制块中实现相同的信息,这似乎是一种浪费。这样做还有其他原因吗?
在内核中使用术语 "process" 是进程为单线程时代的遗留物。通过"process",内核真正意味着内核必须调度的东西。 "things that the kernel has to schedule" 没有简单的词,"process" 一词的使用具有历史意义。
当您看到 "process control block" 时,您真正看到的是内核用来跟踪它安排的内容的结构。这通常包括内核线程并包括进程中的每个线程。