问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

《操作系统 - 清华大学》 8 -11:进程管理:上下文切换

创作时间:
作者:
@小白创作中心

《操作系统 - 清华大学》 8 -11:进程管理:上下文切换

引用
CSDN
1.
https://blog.csdn.net/weixin_44399845/article/details/145952805

进程管理之上下文切换与进程控制详解

一、上下文切换的定义

在多程序运行环境下,程序以进程形式存在,且多个进程共享CPU资源。不同时刻,进程需要切换以获取CPU执行权,这个切换过程被称为进程的上下文切换。“上下文”英文为“context” ,“context switch”即上下文切换。

二、上下文切换的具体内容

传统操作系统课本指出,进程上下文切换涉及寄存器。寄存器与CPU联系紧密,若要在操作系统内实现进程切换,就必须清楚操作系统所在CPU的寄存器情况,包括寄存器的种类以及进程对它们的使用情况。

进程运行时依赖多种寄存器,例如程序计数器,它用于指示进程的执行位置;栈指针同样作为寄存器,栈能反映调用关系和局部变量的位置等。进程切换时,这些寄存器信息会被保存到进程控制块(PCB)的特定位置。当运行其他进程时,再从相应进程的PCB中取出寄存器等上下文信息,恢复到CPU中,依据PCB信息重新配置寄存器资源,确保新进程能在CPU上继续执行。

三、上下文切换的过程示例

以进程A和进程B为例,进程A执行一段时间后,操作系统会调度进程B执行。此时,进程A需将其“context”(即各类寄存器信息)保存到PCB中,随后将进程B的PCB中保存的上下文信息恢复到CPU,以此完成进程间的切换。

四、上下文切换的实现方式及开销要点

上下文切换涉及的信息与硬件关联密切,在实际操作和真实操作系统中,这部分代码大多由汇编代码编写。

上下文切换的开销十分关键,我们期望其开销越小越好,这样进程就能将更多时间用于执行自身任务,而非耗费在上下文切换上

五、进程队列管理

能够在CPU上执行的进程被放置在一个队列中,该队列常被称为就绪队列(也叫rq或运行队列等),它以链表形式存在,便于操作系统挑选进程执行。部分进程暂时无法占用CPU,它们在等待特定事件,这类进程会被置于等待队列。此外,还有一个僵尸队列,其具体含义将在后续进程控制时深入探讨,在此先给留个思考问题:僵尸队列中存放的是什么呢?

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号