• 内容讲解

1.超线程技术

每个单位时间内,CPU只能处理一个线程(Thread)。除非有两个核心处理单元,否则要想在单位时间内处理超过一个的线程是不可能的。

超线程HT(Hyper-Threading)技术是在单个核心处理单元中集成两个逻辑处理单元,也就是一个实体内核(共享的运算单元),两个逻辑内核(有各自独立的处理器状态),从而可以在单位时间内处理两个分别进行整数和浮点运算的线程,模拟双内核运作。

线程是程序执行的基本原子单位,一个进程可以由多个线程组成。

在分布式程序设计中正确使用线程,能够很好地提高应用程序的性能及运行效率,其实现原理是将一个进程分成多个线程,然后让它们并发异步执行,从而提高运行效率。

所谓“并发执行”,在单核情形下并不是各线程同时执行(占有CPU),在任意时刻还是只能有一个线程占用CPU,只不过它们彼此轮换使用CPU相对频繁一些,感觉上似乎都在运行。

下面通过一个简单的例子来说明超线程的工作原理。

设一个进程要完成两个任务:任务1和任务2,并且任务1要经历A1àB1àC1三个步骤才能完成,任务2要经历A2àB2àC2三个步骤才能完成。

①如果两个任务同步执行的话,完成两个任务是这样执行的:

花费时间段:

1

 

2

 

3

 

4

 

5

 

6

 

A1

B1

C1

A2

B2

C2

这样从A1到C2只能一个一个地执行,当A1执行时,CPU被占用,B1到C2的线程只能等待,甚至当它们彼此之间并不竞争同一个资源时,也要等待前面的线程执行完毕后才能执行。

②如果两个任务异步执行的话,完成两个任务是这样执行的:

花费时间段:

1

 

2

 

3

 

4

 

5

 

6

 

A1

B1

C1

 

 

 

 

 

 

 

A2

B2

C2

 

 

 

 

 

 

这样,任务1和任务2就分成两个独立的执行对象,也就是说: A1àB1àC1和A2àB2àC2是并发执行的。当A1在执行某个运算时,A2线程可以去做其他的一些事情,比如访问磁盘等外部设备等。

对比①和②两种执行方式,完成所有任务,方式①需要6个时间段,而方式②只需要3个时间段,方式②所需时间是方式①的一半,所以方式②完成整个任务要快于方式①。

2.多核技术

多核(Multi-Core)是指在一片处理器中包含两个或两个以上的独立的内核,可以在单位时间内同时处理多个线程,如图5-25所示。

521.gif

多核技术的开发源于这样的认识:在单核芯片中,仅仅提高芯片的速度会产生过多的热量,且无法带来所预期的性能改善。

多核处理器是单片芯片,能够直接插入单一的处理器插槽中,但操作系统会利用所有相关的资源,将它的每个执行内核作为分立的逻辑处理器使用。通过在两个执行内核之间划分任务,多核处理器可以在特定的时钟周期内执行更多的任务。

处理器的超线程/多核发展,如图5-26所示。

522.gif