【发布时间】:2021-08-29 12:13:37
【问题描述】:
我目前正在阅读 Remzi 和 Andrea 所著的操作系统 - 三个简单的部分,在上下文切换部分,它指出在中断期间,正在运行的进程的寄存器被保存到其内核堆栈中,然后下一个进程的寄存器是从它的 PCB 加载的,但后来它说它是从它的内核堆栈加载的
我的问题是,为什么在稍后从内核堆栈加载寄存器时从 PCB 加载寄存器,当您将所有信息保存在内核堆栈上时,PCB 的意义何在?
【问题讨论】:
-
架构相关。它们可以保存在用户空间线程堆栈中。
-
@MartinJames 这本书决定在这里区分内核堆栈和 PCB 是有原因的
-
不知道......如果是我,我会在一个块中分配一个包含线程特定状态数据和内核堆栈空间的结构,并调用很多“TCB/PCB”。然后,无论是否推送,寄存器值都将位于该结构中。
标签: operating-system