CPU上下文切换实现教程
2022-11-22 18:25:09
电脑教程
计算机多任务系统经常需要同时执行多个作业。作业的数量往往大于机器中CPU的数量,但是一个CPU同时只能执行一个任务。为了让用户感觉到这些任务是同时进行的,操作系统的设计者巧妙地使用了时间片轮换的方式。CPU为每个任务服务一段时间,然后保存当前任务的状态。加载下一个任务的状态
计算机多任务系统经常需要同时执行多个作业。作业的数量往往大于机器中CPU的数量,但是一个CPU同时只能执行一个任务。为了让用户感觉到这些任务是同时进行的,操作系统的设计者巧妙地使用了时间片轮换的方式。CPU为每个任务服务一段时间,然后保存当前任务的状态。加载下一个任务的状态后,继续下一个任务。保存和重新加载任务状态的过程称为上下文切换。时间片轮换使得多个任务在同一个CPU上执行成为可能,但
(注。更准确的说,上下文切换会带来程序性能的直接和间接消耗。直接消耗包括:CPU寄存器需要保存和加载,系统调度。间接消耗是指多核缓存之间的数据共享。间接消耗对程序的影响取决于线程工作区中操作数据的大小。)yFI
yFI。想想以前学过的东西。我一直认为线程越多,速度就越快。我只是把学过的计算机原理都还给老师了。真正起作用的不是线程,而是CPU。YFI
适合单线程的场景:单线程的工作逻辑简单,速度非常快,比如从内存中读取某个值,或者根据key从哈希表中获取某个值。程序值。Redis和Node.js都是单线程的,适合单线程的简单快速场景。yFI
适合多线程的场景:单线程的工作逻辑复杂,等待。
版权声明
本文由沉淀笔记发布/转载,不代表沉淀笔记立场,本站资讯除标注“原创”外的信息均来自互联网以及网友投稿,版权归属于原始作者,如果有侵犯到您的权益,请联系我们提供您的版权证明和身份证明,我们将在第一时间删除相关侵权信息,谢谢.联系地址:977916607@qq.com
很赞哦!
()