降温软件是如何实现降温的?

降温软件是如何实现降温的?前言 一般电脑发热后 我们就听到了风扇呼呼的声音 这个是电脑的物理散热的机制 除了物理降温 我们当然还有软件降温 而软件降温就和 CPU 有关了 常见的电脑降温软件有 鲁大师呀 驱动精灵这类的 那么我们就一起来探索这些降温软件是如何实现降温的吧 一 CPU 运行原理如果要探究降温软件是如何减少 CPU 能耗来降温的 那么我们应该要了解一些 CPU 工作的原理 当我们启动电

前言:

     一般电脑发热后,我们就听到了风扇呼呼的声音,这个是电脑的物理散热的机制。除了物理降温,我们当然还有软件降温,而软件降温就和CPU有关了。常见的电脑降温软件有:鲁大师呀,驱动精灵这类的。那么我们就一起来探索这些降温软件是如何实现降温的吧。

 

一、CPU运行原理

      如果要探究降温软件是如何减少CPU能耗来降温的,那么我们应该要了解一些CPU工作的原理。当我们启动电脑时,CPU便开始工作了,怎么工作呢,冯诺依曼体系告诉我们,CPU一直在取指令和执行指令,只是抽象到我们的用户层时,我们就只是单纯的点击按键,然后来实现多种多样的功能。

      计算机的底部运算都是二进制的运算(这个和电路的特性有关),然后利用矩阵和数学逻辑的知识将我们需要做的指令打包抽象,于是就有了下面这样CPU取指令和执行指令的图片:

降温软件是如何实现降温的?这个图片要表达的两个值的加法操作,例如x=3,y=2,这个程序要实现y=x+y;如果你了解汇编语言,这个是很好理解的。我们一起来熟悉一下这个操作的流程:

(左边内存里面的数字其实是指令操作,例如1940中“1”代表load AC from memory就是从内存里面读取数据存到AC临时存储空间,其中的940我们可以认为是地址。依次类推,之后的5941 和 2941中的“5”和“2”表示的是从内存中读取数据加到AC上将AC的数据存到内存中

 

  1. 所以我们开始取指令,然后指向指令的操作“1”,得到了X=3的数据,计数器++,准备读取下一条指令;取指令“5”,将Y=2的数据加到AC中,实现了Y=5,计数器++;取指令“2”,执行指令,将AC中的数据存到内存中。就此完成上面的操作。

     我要说的重点并不是CPU是如何工作的,而是想要大家知道,从开机一开始CPU就一直在取指令执行指令,从未停止,所以就会产生大量的热量。

 

二、进程

     为什么要说进程呢?我们不是要了解如何让CPU减少耗能吗?这里我们再次的抽象,你可以打开任务管理器,例如,我的这一个(温馨提示,当你要打开任务管理器的时候,不要有大型的任务,不然占CPU过高,会卡顿,如果有腾讯管家也可以先关闭再打开任务管理器,不然也会有卡顿):

  1. 降温软件是如何实现降温的?

      其实我们的这些应用都是作为进程来管理的,当然,进程里面也有线程(这个我们之后博客探讨哦,这里只关注进程)。例如,我们打开一个记事本,此时你查看进程会发现多了一个进程。这些进程会进行抢夺CPU的资源,那么接下来我给出一个最简单的模型——五状态进程模型。

降温软件是如何实现降温的?

     好的,我们看看这个模型,我会从操作系统的角度简单的说一下,首先我们创建一个进程,为它分配PCB数据结构(它就是进程的数据结构,可以先抽象理解),内存等资源,然后它进入就绪队列(这里的就绪态ready)。然后运行,如果超出给定的运行时间片,重新回到就绪态,如果需要读取IO硬盘等操作(因为CPU读取速度比外设的读取速度快了大概几万年左右,所以当程序要读取外设时,我们会把程序变成阻塞态去读取外设,而CPU继续运行下一个指令),那么进入阻塞态,准备好之后又进入就绪态。如果运行结束,那么我们退出,进程交出CPU等资源。

      所以,我们可以概括为进程都是在就绪—–运行—–等待这个状态中循环,你会发现此时CPU一直在工作,那么如何实现降温呢?好吧,很简单,让CPU停下来,可是我们可以直接让CPU停下来吗?答案是否定的,我们需要使用指令来让CPU停下来,就像上面“1”“2”“5”这些指令一般,CPU会去执行它们。

 

三、降温软件原理

     那么介绍一个指令HLT(处理器暂停指令),有了这个指令,那么我们可以直接让CPU执行它吗?如果直接这样做,是不妥当的,所以我们需要一个聪明的方法。

     再看看上面的就绪队列,既然是队列,那么我们肯定是可以设置优先级别的对吧。如果你足够细心,你会发现CPU中的进程其实是有优先级别的(看看任务管理器就知道啦),这里我们暂不考虑如何去实现它,而是抽象来看,我们可以设置进程的优先级别。

     是的,当我们打完一局游戏,电脑很热,而此时CPU依旧一直执行,从不停息,不断产热,风扇呼呼的转,除了物理降温(搬到冰箱里)等操作,我们当然希望有软件也可以实现这样的操作。所以我们可以将HLT这个指令设置为优先级最低的指令。这样,当我们打完游戏,又没什么需要做的,就可以让CPU处于暂停态。让它无限的循环与HLT指令中,除非有一个新的进程进入了就绪队列需要使用CPU而结束循环,其它时候一直让CPU休息。

     所以,HLT唯唯诺诺,没有进程时让CPU休息降温,有进程时执行进程。这也就是降温软件的原理了。

 

四、总结

     但是,经验告诉我,手机发热了,“打开鲁大师?不,直接放冰箱”。是的,这种让CPU减少耗能的操作其实我们直接感受到的不够迅速,毕竟没有物理降温快速。但是这个才是根源,我们可以改变电源性能,让CPU自动的调节,当电脑不需要进行游戏等操作时,可以处于低耗阶段,反之,进入游戏阶段(这个阶段就不要想着一边打游戏一边开降温软件降温了,看看上面的例子,你就知道HLT唯唯诺诺,此时物理降温才直接有用)。

     温馨小提示,你的电脑清灰了么?

 

参考文献:

CPUCool是一款计算机程序,可以在Windows环境中让CPU降温,另外还包含支持在Windows环境中最佳化CPU功能。

百度百科地址:

https://baike.baidu.com/item/CPUCool/?fr=aladdin

百度百科:

CPU优化——CPUCool  随着CPU的频率不断加快,CPU的发热量也越来越高。不过,我们除了可以通过CPU风扇来降低CPU的温度,还可以通过一些降温软件来实现CPU的降温。这类软件可以随时监测CPU的使用情况,当CPU空闲时就向CPU发送HLT指令(CPU状态控制指令之一,使CPU不执行任何操作,处于暂停状态),使其进入暂停状态,有外来指令到达CPU时,该类软件再将CPU唤醒,从而减轻CPU的工作量,以达到降温的目的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232833.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AutoFac文档5(转载)

    AutoFac文档5(转载)

    2021年8月25日
    60
  • 无尽的忙碌换来幸福的日子「建议收藏」

    人总是忙碌的,从小要读书,长大了工作,结婚了,有孩子了,一辈子也可能等到孩子成家了才能稍微休息一下下吧,不过有时候想想,忙碌点好,一辈子也就那么长,等闭了后还能休息好久好久呢,何不忙碌点呢。从过年以后,一直忙碌着,忙撒呢,上班忙新网站改版,下班忙结婚,周末也忙结婚,几乎一天都没有消停过,老婆无数次问我累不累,我说不累,再累也觉得幸福,嘿嘿。感叹了一下,好久也没来了,最近工作上呢刚赶出来一个…

    2022年4月13日
    33
  • 大数据:数据采集平台之Scribe[通俗易懂]

    大数据:数据采集平台之Scribe[通俗易懂]大数据:数据采集平台之ScribeGitHub地址:https://github.com/facebookarchive/scribeScribe是Facebook开发的数据(日志)收集系统。已经多年不维护。部署架构如下:参考:https://mp.weixin.qq.com/s/emQ_94T0_Hw3ywQc0-4Dtg…

    2022年5月18日
    39
  • 面试被问到CAS原理,触及知识盲区,脸都绿了!

    面试被问到CAS原理,触及知识盲区,脸都绿了!CAS底层原理想要了解CAS底层原理,那么我们先来了解一下JUC包的一个类即:AtomicInteger。那么这个AtomicInteger有什么用呢?我们平时开发或多或少都会使用到i++这个操作,那么稍微了解多线程的同学都会知道,在多线程环境下,i++操作是线程不安全的操作,譬如下面这段代码:publicclassMain{privateinti=0;publicvoidaddI(){i++;}..

    2022年10月17日
    2
  • windows下怎么安装laravel框架

    windows下怎么安装laravel框架windows下怎么安装laravel框架

    2022年4月24日
    43
  • 中级java面试问题大全及答案大全_Java中级面试题

    中级java面试问题大全及答案大全_Java中级面试题String和StringBuffer、StringBuilder的区别在于String声明的是不可变的对象,每次操作都会生成新的String对象,然后将指针指向新的String对象,而StringBuffer、StringBuilder可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用String。相对于java初级面试,中级面试肯定是要有些难度的,毕竟java跟等级是挂钩的,等级越高,薪资越高,当然要求的技能也是不能低的,那java中级面试题有哪些?..

    2022年10月11日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号