SMP(Symmetric multiprocessing)
SMP意为多进程对称处理,用来指代多个处理器可以共享同一内存和各种IO设备的硬件架构,如果一个处理器有多个核心,那么SMP会把每个核心作为一个处理器来对待。
每一个任务(操作系统调度的最小单位)只能在同一个处理器执行,不存在同一任务在多个处理器上同时执行,原因是每个处理器可以处理任意一个任务,无论这个任务的数据在内存的哪个位置,其目的是为任务的调度提供灵活性。
优点:可以通过多个处理器并发处理来达到增加处理速度的目的
缺点:同一块内存数据可能出现在多个处理器的高速缓存中(考虑多进程共享内存的情景),因此存在数据一致性的问题,这会潜在的影响并发效率。此外,当任务从一个处理器迁移到另外一个处理器时(考虑到各个处理器需要负载均衡),数据的转移会产生额外开销。这些缺点需要操作系统进行优化处理才能避免性能出现问题。
SMT(Simultaneous multithreading)
SMT指代多线程并发执行处理,该技术用来增加超标量CPU的总体运行效率,通过允许多个线程在同一个核心并发执行来更好的利用现代处理器架构提供的资源。
优点:加速程序整体运行效率
缺点:多个线程的共享资源会导致瓶颈,这需要程序