多核CPU运行模式

多核CPU运行模式主要有以下三种:

    •非对称多处理(Asymmetric multiprocessing,AMP)——每个CPU内核运行一个独立的操作系统或同一操作系统的独立实例(instantiation)。

    •对称多处理(Symmetric multiprocessing,SMP)——一个操作系统的实例可以同时管理所有CPU内核,且应用并不绑定某一个内核。

    •混合多处理(Bound multiprocessing,BMP)——一个操作系统的实例可以同时管理所有CPU内核,但每个应用被锁定于某个指定的核心。

1、非对称多处理(AMP)

   AMP给开发者提供了一个与传统单核CPU系统相类似的运行环境,使得开发者已有的一系列经验和知识可以继续加以利用;同时,这也为老程序的移植提供了相当大的便利性。

   AMP分为同构(homogeneous)和异构(heterogeneous)。前者是指所有内核运行同一种类型和版本的操作系统,后者则是指每个内核运行不同类型或版本的操作系统(比如一个内核运行QNX Neutrino RT,而另一个内核运行Linux)。

   在同构环境中,开发人员只要选择一个可提供分布式编程模式的操作系统,就能最大化地利用多核,允许某个内核上的应用程序透明地与另一个内核上的应用/系统服务(如设备 驱动、协议堆栈)进行 通信,但不会有传统IPC机制所造成的高CPU占有率。

    异构环境的要求有些不同。在这种环境下,开发人员要么执行专有的通信协议,要么选择可供IPC共享相同架构(如基于IP)的两个操作系统。为了避免资源冲突,两个操作系统还需要通过一个标准机制来访问被共享的硬件。

   在AMP系统中,一个进程(process)总是运行在同一个内核中,即使其他内核处于空闲状态。结果会导致一个内核要么没有被充分利用,要么被利用过度。为了解决这个问题,系统会允许应用程序在内核间动态迁移。然而,这样就需要对状系统信息进行相当复杂的检测。

 

2、对称多处理(SMP)

    所有内核都运行同一个操作系统拷贝。由于操作系统每时每刻都监控着系统的运行状态,因此可以在多核之间分配资源,而无需应用开发人员的干预。另外,操作系统可以提供内嵌的标准化原语(primitives),如pthread_mutex_lock、pthread_mutex_unlock、pthread_spin_lock和pthread_spin_unlock,从而让多个应用可以安全和容易地共享这些资源。

    一个设计良好的SMP 操作系统允许多个应用线程协同地运行在任何一个内核上。这种协同性使得应用程序任何时候都可以利用芯片的整体计算能力。如果操作系统能提供适当的优先权和线程优先排序能力,就能帮助应用开发人员确保CPU为最需要的应用服务。

 

3、混合多处理(BMP)

   由QNX倡导的BMP结合了SMP高级资源管理和AMP应用控制的混合功能。BMP跟SMP一样具有透明资源管理功能,不同的是,可以让开发人员将软件任务锁定在指定的内核上。

    与SMP相比,BMP带来了几大优势。它允许共享同一个数据集(data set)的应用独立地运行在同一个内核上,从而消除了SMP系统中会降低性能的CACHE冲突。BMP还可以让为单核环境编写的传统程序正确地运行在多核环境,即让这些应用运行在某一个内核上。

     在BMP系统中,锁定于一个内核的应用无法利用其他内核,即使其他内核处于空闲状态。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值