勇敢心资源网

当前位置:首页 > 百科 / 正文

进程切换

(2020-06-08 07:18:44) 百科

进程切换

进程切换是当今多任务多用户作业系统所应具有的基本功能。

作业系统为了控制进程的执行,必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行,这种行为被称为进程切换,任务切换或上下文切换。

或者说,进行进程切换就是从正在运行的进程中收回处理器,然后再使待运行进程来占用处理器。 这里所说的从某个进程收回处理器,实质上就是把进程存放在处理器的暂存器中的中间数据找个地方存起来,从而把处理器的暂存器腾出来让其他进程使用。那幺被中止运行进程的中间数据存在何处好呢?当然这个地方应该是进程的私有堆叠。

基本介绍

  • 中文名:进程切换
  • 外文名:Process Switch
  • 别称:任务切换、上下文切换
  • 类别:计算机
  • 属于:作业系统

简介

让进程来占用处理器,实质上是把某个进程存放在私有堆叠中暂存器的数据(前一次本进程被中止时的中间数据)再恢复到处理器的暂存器中去,并把待运行进程的断点送入处理器的程式指针PC,于是待运行进程就开始被处理器运行了,也就是这个进程已经占有处理器的使用权了。
这就像多个同学要分时使用同一张课桌一样,说是要收回正在使用课桌同学的课桌使用权,实质上就是让他把属于他的东西拿走;而赋予某个同学课桌使用权,只不过就是让他把他的东西放到课桌上罢了。
在切换时,一个进程存储在处理器各暂存器中的中间数据叫做进程的上下文,所以进程的 切换实质上就是被中止运行进程与待运行进程上下文的切换。在进程未占用处理器时,进程 的上下文是存储在进程的私有堆叠中的。
显然,进程的切换可以用中断技术来实现,即当调度器获得了待运行进程的控制块之后,应立即用软中断指令来中止当前进程的运行,并保存当前进程的PC值和PSW值。其后,使 用压栈指令把处理器其他暂存器的值压入进程私有堆叠。接下来,就从待运行进程的进程控 制块中取出私有堆叠指针的值并存入处理器的暂存器SP,至此SP就指向了待运行进程的私 有堆叠,于是下面就自待运行进程的私有堆叠中弹出上下文进人处理器。最后,利用中断返回指令来实现自待运行进程的私有堆叠中弹出PSW值和自待运行进程的私有堆叠中弹出PC值的功能。
这是一个完整的软中断处理过程,只不过在保护现场和恢复现场工作中,保护的是被中止 运行进程的现场,恢复的是待运行进程的现场,这一切都依赖于堆叠指针的切换。
进程切换时,被中止进程保护断点和待运行进程保护断点的示意图如图所示。

进程切换步骤

进程上下文切换由以下4个步骤组成:
1)决定是否作上下文切换以及是否允许作上下文切换。包括对进程调度原因的检查分析,以及当前执行进程的资格和CPU执行方式的检查等。在作业系统中,上下文切换程式并不是每时每刻都在检查和分析是否可作上下文切换,它们设定有适当的时机。
(2)保存当前执行进程的上下文。这里所说的当前执行进程,实际上是指调用上下文切换程式之前的执行进程。如果上下文切换不是被那个当前执行进程所调用,且不属于该进程,则所保存的上下文应是先前执行进程的上下文,或称为“老”进程上下文。显然,上下文切换程式不能破坏“老”进程的上下文结构。
(3)使用进程调度算法,选择一处于就绪状态的进程。
(4)恢复或装配所选进程的上下文,将CPU控制权交到所选进程手中。

进程切换注意事项

保存处理器PC暂存器的值到被中止进程的私有堆叠;
保存处理器PSW暂存器的值到被中止进程的私有堆叠;
保存处理器SP暂存器的值到被中止进程的进程控制块;
保存处理器其他暂存器的值到被中止进程的私有堆叠;
自待运行进程的进程控制块取SP值并存入处理器的暂存器SP;
自待运行进程的私有堆叠恢复处理器各暂存器的值;
自待运行进程的私有堆叠中弹出PSW值并送入处理器的PSW;
自待运行进程的私有堆叠中弹出PC值并送入处理器的PC。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net
搜索
随机推荐

勇敢心资源网|豫ICP备19027550号