论文部分内容阅读
自打Intel出了i系列CPU,奸商们又多了一条忽悠你的新理论——说什么CPU都是四核,性能极强,远超酷睿。把“小菜鸟”忽悠得一愣一愣地,其实千万不要相信奸商那套Intel的i系列CPU都是四核的理论,其实i3及i5-520还是双核四线程……
多核
“多核”,从字面上理解它就是将几个CPU集成在一块上。早期AMD和Intel走了两条路:AMD的多核采用了将核心中的多个CPU和所有组件相连接,而Intel则采用了多核心共享总线的方式。有点像两家公司运货,AMD采用的是多辆车分不同路线同时将货物运达目地地,Intel采用的则是将多辆车组合成一辆大车,走了一条更宽的路。就为这点事,这两位“老大”还大吵一架,AMD力求在多核的“真”与“伪”之间得出答案。而在Intel新推出的i3、i5、i7上,则已经全转为和AMD相似的处理方法了。市售的多核产品基本为双核和四核。
多线程
CPU在某个时间点只能干一件事,我们称之为线程,可以说多核CPU天生就具备了多个线程同时处理的能力(双核就有两条线程,四核就有四条线程),但这并不是真正意义上的多线程。
由于CPU需要处理数据的时间可能很快,但从设备中存储或读取数据时需要等待,为了不让CPU“闲着”,CPU会根据一定的算法,对线程进行切换,当一条线程需要从内存读写数据时就切换到其他线程上,被放弃的线程进入阻塞状态,读写完成之后,该线程进入就绪队列上,等待CPU继续处理。所以,多线程其实就是CPU根据算法切换线程,由于速度很快,所以感觉像多个线程在同时运行。到是有点像日本忍者的“分身术”那样,永远只有一个真身,其他的全是因为速度快而产生的幻影。市售的CPU多是双线程。
i3的“双核四线程”把戏
回到开头所说,所谓“双核四线程”是说CPU利用两个核心不停的在两个线程中不停的切换,以模拟出四核的处理能力,理论上相当于主频一半的四核处理器,实际测试的表现,i3在单线程性能上优于酷睿2,多线程综合性能则落后于酷睿2四核处理器。一方面如果你的预算足够,还是买真正的四核处理器;另一方面,现在越来越多的程序针对多核处理器进行优化,酷睿四核的优势也会慢慢体现出了来。
Atom上的“超线程”
这项老技术你现在能看到的地方估计很少了,也只有上网本用到的Atom CPU能时不时的出现一次。
其实,它是在一个CPU的情况下,虚拟出两个逻辑CPU(有点像硬盘分区),目的就是在同一时间内同时处理两个线程(从另外一个角度来说,超线程其实是为了实现多线程),模拟出双核运算,性能大概提升5%~15%。但这种“伪多核”技术也有很大的不足,一方面并不是所有操作系统都支持,而且需要软件和硬件同时支持,同时如果出现资源互抢的情况,性能反而会下降。
多进程与多线程
“进程”就是操作系统中当前执行的程序,包括了维持系统正常操作运行的程序,你开启、执行的程序,还有一些你不知道的,或是非法的程序(比如病毒)。也就说你每运行一个程序,就会至少启动一个进程。在“任务管理器”的“进程”选项卡下你就可以看到正在运行着的“进程”。
至于进程与线程的关系,简单的说,一个程序至少有一个进程,一个进程至少有一个线程,即线程是进程的一部分。就像我们完成一个项目(应用程序),可以分成几个部分让多个人去完成(多进程),每个人领取自己的几项工作(多线程),最后完成整个项目。
在实际的程序运行时,进程都有自己独立的空间,一个进程崩溃,并不会对其他进程产生影响,就像我们在Windows某个程序因非法操作而关闭一样,它并不会影响到其他程序的正常运行。线程则是支撑着进程的运行,只要一个线程死掉,整个进程就会死掉。
小知识
有些新手可能会问运行的软件负荷是如何分配到多核CPU上的,其实这些都是程序本身和系统来协调的,如果你需要强制干预也可以,只要在“任务管理器”中右击程序进程,然后选择“关系设置”即可。
多核
“多核”,从字面上理解它就是将几个CPU集成在一块上。早期AMD和Intel走了两条路:AMD的多核采用了将核心中的多个CPU和所有组件相连接,而Intel则采用了多核心共享总线的方式。有点像两家公司运货,AMD采用的是多辆车分不同路线同时将货物运达目地地,Intel采用的则是将多辆车组合成一辆大车,走了一条更宽的路。就为这点事,这两位“老大”还大吵一架,AMD力求在多核的“真”与“伪”之间得出答案。而在Intel新推出的i3、i5、i7上,则已经全转为和AMD相似的处理方法了。市售的多核产品基本为双核和四核。
多线程
CPU在某个时间点只能干一件事,我们称之为线程,可以说多核CPU天生就具备了多个线程同时处理的能力(双核就有两条线程,四核就有四条线程),但这并不是真正意义上的多线程。
由于CPU需要处理数据的时间可能很快,但从设备中存储或读取数据时需要等待,为了不让CPU“闲着”,CPU会根据一定的算法,对线程进行切换,当一条线程需要从内存读写数据时就切换到其他线程上,被放弃的线程进入阻塞状态,读写完成之后,该线程进入就绪队列上,等待CPU继续处理。所以,多线程其实就是CPU根据算法切换线程,由于速度很快,所以感觉像多个线程在同时运行。到是有点像日本忍者的“分身术”那样,永远只有一个真身,其他的全是因为速度快而产生的幻影。市售的CPU多是双线程。
i3的“双核四线程”把戏
回到开头所说,所谓“双核四线程”是说CPU利用两个核心不停的在两个线程中不停的切换,以模拟出四核的处理能力,理论上相当于主频一半的四核处理器,实际测试的表现,i3在单线程性能上优于酷睿2,多线程综合性能则落后于酷睿2四核处理器。一方面如果你的预算足够,还是买真正的四核处理器;另一方面,现在越来越多的程序针对多核处理器进行优化,酷睿四核的优势也会慢慢体现出了来。
Atom上的“超线程”
这项老技术你现在能看到的地方估计很少了,也只有上网本用到的Atom CPU能时不时的出现一次。
其实,它是在一个CPU的情况下,虚拟出两个逻辑CPU(有点像硬盘分区),目的就是在同一时间内同时处理两个线程(从另外一个角度来说,超线程其实是为了实现多线程),模拟出双核运算,性能大概提升5%~15%。但这种“伪多核”技术也有很大的不足,一方面并不是所有操作系统都支持,而且需要软件和硬件同时支持,同时如果出现资源互抢的情况,性能反而会下降。
多进程与多线程
“进程”就是操作系统中当前执行的程序,包括了维持系统正常操作运行的程序,你开启、执行的程序,还有一些你不知道的,或是非法的程序(比如病毒)。也就说你每运行一个程序,就会至少启动一个进程。在“任务管理器”的“进程”选项卡下你就可以看到正在运行着的“进程”。
至于进程与线程的关系,简单的说,一个程序至少有一个进程,一个进程至少有一个线程,即线程是进程的一部分。就像我们完成一个项目(应用程序),可以分成几个部分让多个人去完成(多进程),每个人领取自己的几项工作(多线程),最后完成整个项目。
在实际的程序运行时,进程都有自己独立的空间,一个进程崩溃,并不会对其他进程产生影响,就像我们在Windows某个程序因非法操作而关闭一样,它并不会影响到其他程序的正常运行。线程则是支撑着进程的运行,只要一个线程死掉,整个进程就会死掉。
小知识
有些新手可能会问运行的软件负荷是如何分配到多核CPU上的,其实这些都是程序本身和系统来协调的,如果你需要强制干预也可以,只要在“任务管理器”中右击程序进程,然后选择“关系设置”即可。