目前,我正在阅读有关调度程序和调度算法。
我真的很困惑于短期调度和调度员。
在某些地方,它们是一样的。在一些地方,他们的工作是不同的。
无论我读到什么,我都得出结论:调度程序的“调度”是由与硬件中断相关联的代码或与系统调用相关的代码引起的。这样就实现了从用户模式到内核模式的模式切换。然后,短期调度程序从可用进程的队列中选择一个进程来控制CPU。短期调度器的任务在这里结束。
现在调度员来了。dispatcher是将CPU控制给由短期调度程序选择的进程的模块。此函数涉及以下内容:-Switching context -Switching to user mode -Jumping到用户程序中的适当位置以重新启动该程序。
发布于 2018-11-10 17:32:34
流程切换步骤的各个部分是系统依赖的。操作系统书籍喜欢使这些步骤变得复杂,并将其划分为多个步骤。
实际上只有两个步骤: 1.选择一个新的过程。2.改用新的程序。
最后一步非常简单,非常简单,可能不值得被称为单独的一步。
大多数CPU定义的结构通常称为流程上下文块( Process,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有些处理器需要更多的步骤,比如必须单独保存浮点寄存器。
https://stackoverflow.com/questions/53240584
复制相似问题