开发者社区> 问答> 正文

多任务系统的上下文切换是什么?

多任务系统的上下文切换是什么?

展开
收起
7大帅 2021-12-04 21:32:51 349 0
1 条回答
写回答
取消 提交回答
  • 上下文切换(Context Switch) 或者环境切换

    多任务系统中,上下文切换是指CPU的控制权由运行任务转移到另外一个就绪任务时所发生的事件。

    在操作系统中,CPU切换到另一个进程需要保存当前进程的状态并恢复另一个进程的状态:当前运行任务转为就绪(或者挂起、删除)状态,另一个被选定的就绪任务成为当前任务。上下文切换包括保存当前任务的运行环境,恢复将要运行任务的运行环境。

    进程上下文用进程的PCB(进程控制块,也称为PCB,即任务控制块)表示,它包括进程状态,CPU寄存器的值等。

    通常通过执行一个状态保存来保存CPU当前状态,然后执行一个状态恢复重新开始运行。

    上下文切换会对性能造成负面影响。然而,一些上下文切换相对其他切换而言更加昂贵;其中一个更昂贵的上下文切换是跨核上下文切换(Cross-Core Context Switch)。一个线程可以运行在一个专用处理器上,也可以跨处理器。由单个处理器服务的线程都有处理器关联(Processor Affinity),这样会更加有效。在另一个处理器内核抢占和调度线程会引起缓存丢失,作为缓存丢失和过度上下文切换的结果要访问本地内存。总之,这称为“跨核上下文切换”。

    2021-12-05 13:12:54
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多