调度器和上下文切换器的区别



我现在正在学习操作系统。我知道上下文切换器负责切换CPU运行的进程。它还保存和恢复进程的状态,以便以后可以恢复执行。但是,调度员,我不安静的理解…它负责什么?

谢谢

正如在另一个答案中已经说过的,实际含义取决于使用这些术语的上下文。


当中断发生时,CPU将控制权交给系统级代码。该代码负责保存被中断任务的上下文,建立上下文以运行系统级代码,并恢复(可能不同的)被中断任务的上下文。这就是我所说的上下文切换器

术语调度与调度有关,意味着大致选择下一个要运行的任务。

因此,在典型的任务切换中,例如由于计时器中断,上下文切换器首先保存被中断任务的上下文,建立上下文以运行系统代码,然后调用调度程序。它的工作是选择要切换到的任务。该任务返回给上下文切换器,上下文切换器恢复关联的上下文。

请记住,这些术语往往有正式的定义,并且不同系统的用法可能不同。也就是说,你所说的"上下文切换器"通常被称为"调度器"。

所以,上下文切换是指保存当前运行进程的上下文,以便以后可以恢复,并将寄存器和程序计数器的值加载到即将到来的进程的上下文中。

调度是什么?

短期调度器决定就绪队列中存在的所有进程中下一个应该分配CPU。因此,短期调度器选择要在CPU上执行的进程并调用调度器。然后调度程序执行上下文切换并保存当前运行进程的上下文,将其从运行状态移除,并将短期调度程序选择的进程分派给CPU。综上所述,调度是一个涉及上下文切换的过程,尽管上下文切换不需要仅由调度程序调用。上下文切换也可能由于中断而发生。

最新更新