2008-11-18 61 views
14

我读到的关于debuggerstepperboundary属性和一个网站说,它是有用的上下文切换。什么是上下文切换?

上下文切换究竟是什么?我假设它是从一个线程切换到另一个线程,或者在执行或安全上下文中切换?但是,这些都不是特别受过教育的猜测,所以我在这里问。

+0

你的问题很有趣,请考虑增加更多的标签(工作系统,内核流程...),并从中取出C#标签。 – 2012-12-03 19:41:48

回答

7

上下文切换是CPU从一个进程/线程切换到另一个进程/线程。

人们有时会在特定计算机世界之外使用术语上下文切换来反映他们在自己的生活中所做的事情。 “如果我要回答这个问题,我需要从思考A转向思考B”。

Wikipedia

4

它通常是指在线程或进程之间切换。 Wikipedia有更详尽的描述。

1

这是在CPU上的进程之间切换的过程。

17

上下文切换(有时也称为进程切换或任务切换)是将CPU(中央处理单元)从一个进程或线程切换到另一个进程或线程。

上下文切换可以稍微更详细地描述,因为内核(即操作系统的核心)对CPU上的进程(包括线程)执行以下活动:(1)暂停一个进程处理和存储处理器某处的CPU状态(即上下文),(2)从存储器中检索下一个进程的上下文,并将其恢复到CPU的寄存器中,(3)返回程序指示的位置计数器(即返回到进程被中断的代码行)以恢复进程。

上下文切换有时被描述为内核暂停CPU上的一个进程的执行,并恢复先前暂停的某个其他进程的执行。虽然这种措辞可以帮助澄清这个概念,但它本身可能会让人困惑,因为根据定义,流程是程序的执行实例。因此,暂停进程的措辞可能更可取。