由于软件最终都会拆成指令来执行,所以就算CPU厂牌不同,只要都支持相同的x86指令,软件就能直接执行,AMD、Intel或甚至威盛的CPU,执行起来只有快慢的差别,结果都是一样的。而像Apple之前的计算机是用IBM PowerPC,这是另一种指令集的CPU,在转换到Intel时,Apple就得弄Universal Binary和Rosetta技术,让旧程序可以在新的CPU上跑(模拟的方式),或是让重新开发软件同时支持两种指令,这麻烦的转换阵痛期可能要拖个几年。多任务执行「多任务」(Multi-task)是CPU另一个很重要的概念,其实单核心CPU一次只能执行「一条」执行绪,没错!就是一条,现在流行的双核心CPU也只增加到两条。可是一个软件可能就产生不只十条执行绪,为什么我们在Windows下可以同时跑好几个软件?这是因为CPU每次执行的速度都飞快,运算的时间以「奈秒」(1/1000000000秒)为单位,算完一条就立刻切到另一条,高速切换下,我们就会觉得所有程序好像同时在执行一样。所以,CPU越快,每个工作的执行速度就越快,整体感觉就是计算机变快了!我们可以用Windows内建的工具来看CPU的执行状况,做进一步的了解。在Windows底下的工具列空白处按右键,选「工作管理员」,或是按热键「CTRL+ALT+DEL」叫出 「应用程序」的部分是指你在Windows下执行的软件。
hal 7796 0.0 0.7 ? Ss /usr/sbin/haldpostfix 7957 0.0 0.2 ? S qmgr -l -t fifo -u -cnagios 8371 0.0 0.2 ? SNs /usr/sbin/nagios /etc/nagios/nagios.cfg这个输出是经过简化的。你在系统中可以看到更多的行和栏目。如果某些进程消耗了你的全部 CPU或者内存,你可以在这个输出的%CPU和%MEM列中发现它们。找到失控的进程的一种更快捷的方法是使用top命令,因为按照默认的设置,使用占用 CPU资源最多的进程在最上面显示。我们可以使用一条“yes”命令来测试一下:$ yes carla is teh awesum这个命令将以很高的速度反复显示“carla is teh awesum”,直到你停止它运行。这将使你的CPU使用率达到警戒线。$ top...PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND12144 carla 25 0 31592 17m 13m R 93.4 3.5 0:50.26 konsole22236 carla 15 0 2860 468 400 S 4.3 0.1 0:00.97 yes分析一下这个结果,你会发现一些有趣的事,你会发现,占用CPU最多的程序是konsole 虚拟终端程序,而不是“yes”命令,这是因为“yes”命令是在konsole终端程序中运行的。如果在一个“真正的”控制台(按Ctrl+alt+ f2键)中运行同样的命令序列,你将看到“yes”命令被排在第一位。
AMD目前消费端的CPU背面则还有针脚,翻过来就会看到一根根细小的金属针,称为Pin Grid Array,一样是用来让数据进出CPU和供电给CPU。大概所有疯狂DIY的玩家都曾经把这些针脚弄歪过,可能是摔到桌上、安装不当,或甚至只是拿的时候捏太用力了,这时就得瞇着眼拿刀片慢慢抠回来。放AMD CPU的主机板插槽就不是小弹簧了,而是一个个小洞,对应那些针脚。这种针脚和洞的组合有时蛮危险的,因为现在CPU有900多根脚,只要一根针脚有稍微歪掉,没办法准确插到洞里,而安装的人没有发觉还是霸王硬上弓乱插一通,就会让针脚歪到底或折断,CPU可能就毁了。AMD一些服务器的CPU已经换用Land Grid Array,未来消费端的产品应该也会跟进。因为Intel和AMD的CPU背面针脚不同,所以也需要不同的主机板才能支持,事实上,就算针脚相同,有时主机板也不一定能辨识,这是CPU和主机板上芯片组搭配的平台状况,之后会有进一步的解说。现在CPU没有散热器就没办法开机运作,所以盒装CPU都会附赠一颗原厂风扇,紧贴在CPU的正上方。买的CPU愈高阶,送的风扇也会更好。散热器底部和CPU接触的部分通常是铜制的,可以快速导热,那三条灰灰的东西是散热膏,它会填满CPU和散热器之间的空隙,来帮助散热。原厂风扇在正常使用下绝对绰绰有余,不过 真‧玩家 也绝对不会满足,为散热、静音、超频、自己看了爽、别人羡慕的眼光等种种因素,他们都会换上比较好的风扇。图中的只是小Case,比这个更大更暴力的比比皆是。CPU的功能再回头来聊CPU到底做什么,简单的说,就是「什么都做」。你在Windows下做的一切动作,用浏览器看Mobile01、听MP3、播影片、写信、打电动....,所有执行的软件都会拆成一条条的「执行绪」(Thread),执行绪的概念不难理解,它就是程序在跑的工作。比如用iTunes听音乐好了,可能就会拆成两个工作,一个负责iTunes那美美的操作接口,另一个负责和声卡沟通放出声音,当然这是简化的,一个程序可能会有十条以上的执行绪,而执行绪会再拆成更细的指令,也就是最前面提到的x86指令,交给CPU执行。
做个好杀手 Linux的Kill命令与信号-0
做个好杀手 Linux的Kill命令与信号-1