需要有模式切换才能被认为是上下文切换吗?

5

在进行上下文切换的行为被称为上下文切换时,是否必须存在模式切换,即从用户模式切换到内核模式?


2
它们并不直接相关。"模式切换"发生在一个进程内部。上下文切换涉及多个进程(或线程,或其他)。上下文切换并不意味着模式切换(可以仅由硬件完成)。模式切换也不需要上下文切换。 - Mat
3个回答

7

上下文切换仅在内核模式下发生。如果上下文切换发生在两个用户模式进程之间,第一个CPU必须转换到内核模式,执行上下文切换,然后返回到用户模式等等。 因此,在上下文切换中必须有一种模式切换。


7

不是所有的处理器都具有特权级别

上下文切换通常意味着从进程控制块中恢复执行状态。然而,“上下文”的概念是由实现定义的。来自维基百科

构成上下文的内容由处理器和操作系统确定。
...
当操作系统需要在用户模式和内核模式之间进行转换时,不一定需要进行上下文切换;仅进行模式转换本身并不是上下文切换。然而,根据操作系统的不同,在这个时候也可能发生上下文切换


当操作系统需要在用户模式和内核模式之间进行转换时,不需要进行上下文切换。如果反过来呢?我的意思是说,上下文切换是否需要模式切换? - Palak Jain

3

模式切换 - 当单个进程模式从用户级别切换到内核级别或相反时发生。这是通过系统调用完成的。当进程调用系统调用时,进程模式将更改为内核模式,内核将代表用户进程开始操作。一旦系统调用返回,进程模式将从内核模式更改为用户模式。"模式"是与进程关联的属性。因此,模式切换是单个进程模式的切换。

上下文切换 - 当正在运行的进程当前状态被存储在某个位置,并选择一个新进程进行运行,其已经存储的状态被加载到CPU寄存器中时,就会发生上下文切换。现在,新进程开始运行。整个"上下文切换"过程由"进程调度程序"完成。


好的解释,我正在寻找这个。 - Safin Ghoghabori

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接