当前位置: 代码迷 >> 综合 >> 进程切换(上下文切换)
  详细解决方案

进程切换(上下文切换)

热度:36   发布时间:2024-03-06 01:50:42.0

多任务操作系统是怎么实现运行远大于CPU 数量的任务个数的?当然,这些任务实际上并不是真的在同时运行,而是因为系统通过时间片分片算法,在很短的时间内,将CPU 轮流分配给它们,造成多任务同时运行的错觉。

为了控制进程的执行,内核必须有能力挂起正在CPU 上运行的进程,并恢复以前挂起的某个进程的执行。这种行为被称为进程切换。

什么叫上下文?

在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好CPU 寄存器和程序计数器(Program Counter),这个叫做CPU 的上下文。

而这些保存下来的上下文,会存储在系统内核中,并在任务重新调度执行时再次加载进来。这样就能保证任务原来的状态不受影响,让任务看起来还是连续运行。

在切换上下文的时候,需要完成一系列的工作,这是一个很消耗资源的操作。