当进程在执行时,PCB(位于内核内存空间中?)的内容会加载到CPU寄存器、状态寄存器、内核堆栈指针、用户堆栈指针等中。当发生上下文切换到另一个进程时,当前的“上下文”被存回到PCB中,并切换到新的PCB。
现在当内核想要恢复这个PCB的“上下文”时,它如何找到这个PCB,在内存中呢?哪些信息可以帮助内核在内存中找到PCB?
现在当内核想要恢复这个PCB的“上下文”时,它如何找到这个PCB,在内存中呢?哪些信息可以帮助内核在内存中找到PCB?
调度程序的工作是查找处理器的可用性,只有这样才会发生上下文切换。一旦核心可用,内核中存储的PCB的程序计数器值就被取出并赋给CPU寄存器。我想告诉你PCB被内核以堆栈方式存储。
scheduler
”可以访问所有内核数据结构,因此它定义了进程的顺序(可以是抢占式或协作式调度程序)。始终记住:内核就像是一个服务员,为所要求的服务,不知道任何事情,像驴子一样做所有工作(虽然最重要),按照指示执行。