多核:操作系统3种处理模式(SMP+AMP+BMP)

转自:https://blog.csdn.net/honour2sword/article/details/45248121

多核化趋势正在改变IT计算的面貌。跟传统的单核CPU相比,多核CPU带来了更强的并行处理能力、更高的计算密度和更低的时钟频率,并大大减少了散热和功耗。目前,在几大主要芯片厂商的产品线中,双核、四核甚至八核CPU已经占据了主要地位。在将应用从单核环境向多核系统迁移的过程中,通过选择合适的操作系统,应用开发人员可以大大地减少麻烦。

系统设计和软件开发面临的多核挑战

    有效地利用多核技术,不仅会大大地改善下一代网络环境的性能和可扩展性,还会对系统设计和软件开发产生深远的影响。目前,系统设计工程师和软件工程师们非常熟悉针对单核CPU的编程环境,却对多核计算一无所知,或者缺乏足够的经验技能。

 

 

图1 典型的多核CPU结构

    例如,多核芯片如何管理共享资源就是一大挑战。在大多数情况下,多核CPU的内核拥有独立的L1缓存,共享L2缓存、内存子系统、中断子系统和外设(如图1)。因此,系统设计师需要让每个内核独立访问某种资源,并确保资源不会被其他内核上的应用程序争抢。

    多核的出现还让系统设计变得更加复杂。如运行在不同内核上的应用为了互相访问、相互协作,需要进行一些独特的设计,如高效的IPC(进程间通信,interprocess communication)机制、共享内存的数据结构和同步原语(synchronization primitives)。

    程序代码迁移(code migration)也是个问题。大多数系统厂商都在针对单核CPU架构的代码库上进行了大量投资。因而,这些公司需要有一个清晰的迁移策略,来使其代码可以最大化地利用多核硬件资源。

    针对多核设计的操作系统可能会大大减少解决上述挑战所需的工作量,也可能增加另一些问题的复杂性。这全都取决于操作系统是如何支持多核芯片的多处理模式。多处理模式主要有以下三种:

•非对称多处理(Asymmetric multiprocessing,AMP)

每个CPU内核运行一个独立的操作系统或同一操作系统的独立实例(instantiation)。

•对称多处理(Symmetric multiprocessing,SMP)

一个操作系统的实例可以同时管理所有CPU内核,且应用并不绑定某一个内核。

•混合多处理(Bound multiprocessing,BMP)

一个操作系统的实例可以同时管理所有CPU内核,但每个应用被锁定于某个指定的核心。

上述三种模式都有其各自的优点和缺点。每一个模式适合于解决某方面的特定问题,而且对操作系统的要求也各不相同。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章