关于cpu

CPU是负责运算和处理的,内存是交换数据的。

当程序或者操作者对CPU发出指令,这些指令和数据暂存在内存里,在CPU空闲时传送给CPU,CPU处理后把结果输出到输出设备上,输出设备就是显示器,打印机等。在没有显示完之前,这些数据也保存在内存里,如果内存不足,那么系统自动从硬盘上划分一部分空间作为虚拟内存来用。但写入和读取的速度

跟物理内存差的很远很远,所以,在内存不足的时候,会感到机器反应很慢,硬盘一直在响。

512M的物理内存如果增加到2GB,你会感到电脑变得飞快。但内存512,即使你把CPU从单核换成双核,加速感觉也不明显。

如果你本来就有2G内存,再增加2G,使用起来几乎没有多少性能的改变。

在理论上,物理内存太大反而会减慢速度,因为它增加了寻址的时间。

所以家用机器推荐使用2GB-4GB足矣。

电脑是企业,内存是车间,CPU是生产线,硬盘是仓库,主板是地基,

CPU速度快,生产就快,内存大,一次处理的原材料就多,

所以提高机器速度有两条路,一是CPU升级,一是扩大内存,一次处理更多的信息产品,

但CPU与内存又互相制约,车间再大,CPU慢也快不起来,CPU快,但车间小,一次送来的加工材料没多少,也快不了

cpu的利用率

 

最简单的说法就是处理器的繁忙程度...使用率很低就很空闲...使用率很高就是很忙....当处理器使用率超过90%是基本上也就达到了满载(并不是非要达到100%才到满载)可能会出现卡顿的现象...达到100%时就开始卡了....
Linux/Unix下,CPU利用率分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用率是指:
CPU执行非系统空闲进程的时间 / CPU总的执行时间

 

CPU利用率和CPU使用率是相同概念,计算方法如下:

  1. 需要两个进程,一个为idle进程;一个为统计进程。 

  2. idle进程在系统空闲时执行,每执行一次为一个计数器count加一。统计进程每秒执行一次负责计算CPU使用率,并把count清零。 

  3. 首先要求出没有其它进程时count一秒中内由零开始的累加值max,这通常在系统初始化时完成。有其它进程时idle进程执行的次数减少,count的累加值也小于max。

  4. 统计进程计算CPU使用率时采用以下公式: usage=(1-count/max)*100。

1.线程是CPU调度的最小单位,是不是指时间片是按线程分的?
2.如果1的答案为是,那么某个进程有超多的线程,那么这个进程将占据绝大多数CPU时间?
3.如果1的答案为否,那么时间片按进程分,单核多线程速度会比单线程慢呗,因为要线程切换?
1,进程是资源分配单位,线程是CPU调度单位,对大多数操作系统来说,时间片是线程而非进程相关的;
2,不一定,线程的调度执行是有优先级的,优先级高的得到更多时间片,Linux系统中优先级高的线程时间片大于优先级低的时间片,所以进程有多个线程并不一定这个进程会占用更多CPU时间;
3,这个还是跟优先级有关,如果优先级低,线程再多也不能加快执行速度,即使进程是单线程也是通过操作系统来调度的,也会分配时间片,因为后台还有许多线程在调度执行;但有一点是明确的,线程是对CPU的虚拟,进程有多个线程相当于给该进程分配了多个CPU来执行,效率肯定要高于只分配一个CPU来执行。

  

posted @ 2017-09-07 09:58  申小贺  阅读(313)  评论(0编辑  收藏  举报