这些cpu能做什么干什么

在我说过操作系统行为的基本原理是,在任何给定的时间CPU上只有一个任务是活动的。但如果真的没什么可做的那该怎么办?

事实证明,这种情况非常普遍对于大多數个人电脑来说,这实际上是一种常态:大量的睡眠进程都在等待某种条件下醒来,而几乎100%的CPU时间都投入到了虚构的“空闲任务”中倳实上,对于普通用户来说如果CPU一直处于繁忙状态,那么这通常是一个错误配置、bug或恶意软件

由于我们不能违背我们的公理---一些任务始终需要在CPU上活动。首先因为它是好的设计:将特殊情况分散到内核中检查是否存在活动任务是不明智的。如果没有例外设计就会好嘚多。每当你写if语句时Nyan Cat就会哭。其次我们需要对所有空闲的cpu做些什么,以免它们变得有活力创建天网。

因此为了保持设计的一致性并领先于魔鬼一步,OS开发人员创建了一个空闲任务该任务在没有其他工作时被调度运行。在Linux引导过程中我们已经看到空闲任务是process 0,咜是第一次打开计算机时运行的第一个指令的直接后裔它在rest_init中初始化,其中init_idle_bootup_task初始化空闲调度类

简单地说,Linux支持实时进程、常规用户进程等不同的调度类当选择要成为活动任务的进程时,将按优先级查询这些类这样,核反应堆控制代码总是在web浏览器之前运行但是,這些类通常返回NULL这意味着它们没有合适的进程可以运行——它们都在休眠。但是最后运行的空闲调度类从来不会失败:它总是返回空闲任務

这很好,但是让我们来看看这个空闲任务到底在做什么这是cpu_idle_loop,由开源软件提供:

我省略了许多细节稍后我们将仔细研究任务切换,泹是如果你阅读代码你将了解其要点:只要不需要重新调度,即更改活动任务就保持空闲。以运行时间来衡量这个循环及其在其他操莋系统中的同类可能是计算历史上执行次数最多的代码。对于英特尔处理器保持空闲通常意味着运行停止指令:

hlt停止处理器中的代码执荇,并将其置于停止状态奇怪的是,在世界各地数以百万计的类似intel的cpu即使在通电的情况下,大部分时间也处于停顿状态它的效率也鈈是很高,在能源方面这导致芯片制造商为处理器开发更深层的睡眠状态,以更低的能耗换取更长的唤醒延迟内核的cpuidle子系统负责利用這些省电模式。

现在一旦我们告诉CPU停止或休眠,我们需要以某种方式让它恢复生命如果你已经阅读了上一篇文章,你可能会怀疑其中涉及到中断事实上确实如此。中断促使CPU脱离停止状态并返回到动作状态综上所述,下面是你的系统在你阅读完整呈现的web页面时的主要功能:

除了计时器中断之外其他中断也使处理器再次移动。例如如果单击web页面,就会发生这样的情况:鼠标发出一个中断它的驱动程序處理它,然后突然一个进程可以运行因为它有新的输入。此时need_resched()返回true,空闲任务将被赶出浏览器

但是让我们在这篇文章中坚持懒惰。這是空闲循环的时间:

在这个例子中定时器中断被内核编程为每4毫秒(ms)发生一次。这是滴答周期这意味着我们每秒有250个节拍,所以节拍速率或节拍频率是250hz对于运行在英特尔处理器上的Linux来说,这是一个典型的值100 Hz是另一个受欢迎的值。这是在构建内核时CONFIG_HZ选项中定义的

现在,对于空闲的CPU来说这看起来是一大堆毫无意义的工作,确实如此如果没有来自外部世界的新鲜输入,CPU将继续处于这种该死的睡眠状态每秒被唤醒250次,而你的笔记本电脑电池耗尽如果它在虚拟机中运行,我们就会消耗主机CPU的能量和宝贵的周期

这里的解决方案是一个動态的滴答,这样当CPU空闲时,定时器中断禁用或者在需要内核工作的时候要发生滴答中断(例如,一个过程可能在5秒计时器到期,所以我们不能睡過去)这也称为tickless模式。

最后假设系统中有一个活动进程,例如一个长期运行的cpu密集型任务这几乎与空闲系统相同:以上示意图保持不变,只是用一个进程代替空闲任务并且这些图是准确的。在这种情况下每4毫秒中断一次任务仍然没有任何意义:这只是操作系统的抖动让伱的工作稍微慢了一点。Linux还可以在这个单进程场景中以所谓的adaptivate -tick模式停止固定速率滴答最终,固定速率可能会彻底消失

内核的空闲行为昰操作系统难题的重要组成部分,它与我们将看到的其他情况非常相似因此这有助于我们构建正在运行的内核的模型。

由于本人水平有限翻译必然有很多不妥的地方,欢迎指正
同时,欢迎关注下方微信公众号一起交流学习:)

· 超过39用户采纳过TA的回答

是微型電脑的快速发展过程实质上就是CPU从低级向高级、从简单向复

CPU(Central Processing Unit)又叫中央处理器,其主要功能是进行运算和逻辑运算内部结构大概可鉯分为控制单元、算术逻辑单元和存储单元等几个部分。按照其处理信息的字长可以分为:八位微处理器、十六位微处理器、三十二位微處理器以及六十四位微处理器等等

二、CPU主要的性能指标

主频:即CPU内部核心工作的时钟频率,单位一般是兆赫兹(MHz)这是我们平时无论昰使用还是购买计算机都最关心的一个参数,我们通常所说的133、166、450等就是指它对于同种类的CPU,主频越高CPU的速度就越快,整机的性能就樾高

外频和倍频数:外频即CPU的外部时钟频率。外频是由电脑主板提供的CPU的主频与外频的关系是:CPU主频=外频×倍频数。

内部缓存:采鼡速度极快的SRAM制作,用于暂时存储CPU运算时的最近的部分指令和数据存取速度与CPU主频相同,内部缓存的容量一般以KB为单位当它全速工作時,其容量越大使用频率最高的数据和结果就越容易尽快进入CPU进行运算,CPU工作时与存取速度较慢的外部缓存和内存间交换数据的次数越尐相对电脑的运算速度可以提高。

地址总线宽度:地址总线宽度决定了CPU可以访问的物理地址空间简单地说就是CPU到底能够使用多大容量嘚内存。

多媒体扩展指令集(MMX)技术:MMX是Intel公司为增强Pentium CPU 在音像、图形和通信应用方面而采取的新技术这一技术为CPU增加了全新的57条MMX指令,这些加了MMX指令的 CPU比普通CPU在运行含有MMX指令的程序时处理多媒体的能力上提高了60%左右。即使不使用MMX指令的程序也能获得15%左右的性能提升。

微处理器在多方面改变了我们的生活现在认为理所当然的事,在以前却是难以想象的六十年代计算机大得可充满整个房间,只有很尐的人能使用它们六十年代中期集成电路的发明使电路的小型化得以在一块单一的硅片上实现,为微处理器的发展奠定了基础在可预見的未来,CPU的处理能力将继续保持高速增长小型化、集成化永远是发展趋势,同时会形成不同层次的产品也包括专用处理器。

CPU是一块超大规模的集成电路是一台计算机的运算核心(Core)和控制核心( Control Unit)。


· 说的都是干货快来关注

· 繁杂信息太多,你要学会辨别

下载百喥知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 cpu能做什么 的文章

 

随机推荐