堆栈和进程表有什么关系?

堆栈和进程表有什么关系?

根据维基百科和许多其他来源,

由于 PCB 包含流程的关键信息,因此必须将其保存在内存区域中,以防止正常用户访问。在某些操作系统中,PCB 放置在 内核堆栈该过程的一部分,因为这是一个方便的受保护位置。

这很有意义:当发生切换时,当前上下文必须保存在某个地方,而(内核)堆栈看起来是执行此操作的好地方。然而,塔南鲍姆表示

为了实现进程模型,操作系统维护一个表(结构数组),称为工艺表,每个进程一个条目。 (一些作者称这些条目为过程控制块.)

后来,Tanenbaum 提到进程上下文被保存到堆栈中。显然,进程表和堆栈是不同的野兽,现在我很困惑:堆栈和进程表之间有什么关系?

答案1

Tanenbaum 只是说有两种常见的方法来存储有关流程的信息。特定操作系统如何选择执行此操作(在某些内核堆栈上或在表/数组中)只是操作系统设计者可以使用的无数自由之一。

操作系统设计者甚至不必调用它们过程控制块

相关内容