目前,我正在阅读有关调度程序和调度算法的信息。
我真的对短期调度程序和调度程序感到困惑。
在某些地方,它们是相同的。在某些地方,他们的工作有所不同。
从我所读的内容中,我得出的结论是-调度程序的“调度”是由与硬件中断相关的代码或与系统调用相关的代码引起的。通过这种方式,从用户模式切换到内核模式。然后,短期调度程序从可用进程的队列中选择一个进程,以对其进行控制。短期调度程序的任务到此结束。
现在调度员开始工作了。调度程序是将CPU控制权交给短期调度程序选择的进程的模块。此功能涉及以下内容:-切换上下文-切换到用户模式-跳转到用户程序中的适当位置以重新启动该程序。
我的理解正确吗?
假定进程A被抢占,然后进程B被调度。上下文切换期间发生了什么?过程的上下文数据如何 A,调度程序,调度程序,进程B是否已保存和还原?
答案 0 :(得分:0)
过程切换步骤的不同划分取决于系统。操作系统书籍喜欢使这些步骤变得复杂,并将其分为多个步骤。
实际上只有两个步骤: 1.选择一个新的过程。 2.切换到新流程。
最后一步很简单;非常简单,可能不值得被称为一个单独的步骤。
大多数CPU定义一种通常称为“进程上下文块”(PBC)的结构。 PCB的每个寄存器都有一个插槽,用于定义过程状态。切换过程可以很简单:
SAVEPCTX pcb_address_of_current_process ; Save the state of the running process
LOADPCTX pcb_address_of_new_process ; Load the state of the other process.
REI
某些处理器需要更多步骤,例如必须分别保存浮点寄存器。