上下文切换

来源:互联网 发布:淘宝爆笑差评加买家秀 编辑:程序博客网 时间:2024/05/17 01:48

上下文切换

 

保存一个被挂起的任务的上下文 并在 任务恢复时 恢复其上下文的这个处理过程就叫做上下文切换(context switching)。

任务上下文是指任务运行的环境。例如,针对x86的CPU,任务上下文可包括程序计数器、堆栈指针、通用寄存器的内容。

进程上下文切换由以下4个步骤组成:

(1)决定是否作上下文切换以及是否允许作上下文切换。包括对进程调度原因的检查分析,以及当前执行进程的资格和CPU执行方式的检查等。在操作系统中,上下文切换程序并不是每时每刻都在检查和分析是否可作上下文切换,它们设置有适当的时机。

(2)保存当前执行进程的上下文。这里所说的当前执行进程.实际上是指调用上下文切换程序之前的执行进程。如果上下文切换不是被那个当前执行进程所调用,且不属于该进程,则所保存的上下文应是先前执行进程的上下文,或称为“老”进程上下文。显然,上下文切换程序不能破坏“老”进程的上下文结构。

(3)使用进程调度算法,选择一处于就绪状态的进程。

(4)恢复或装配所选进程的上下文.将CPU控制权交到所选进程手中。