0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

盟通技术干货:通过Hypervisor技术在对称多处理(SMP)处理器上实现多操作系统部署

盟通科技 2023-11-16 15:00 次阅读

SMP和AMP不同的特点

随着多核处理器的出现,为了提高整个系统性能,诞生了不同的可部署技术。多处理主要有两种类型:对称多处理(SMP)和非对称多处理(AMP)。

在SMP中,所有处理器或CPU内核都被认为是平等的,可以分享相同的系统资源,例如:操作系统、主存的地址空间、I/O和外部设备等;而AMP中,每个处理器或CPU有它们自己的软件,它们独立于其他处理器或内核来处理应用程序。

AMP的设计优势在于,每个CPU在处理特定的应用程序时,不会被其他CPU的任务打断。正如前面所说,在AMP中每个处理器都有自己单独的内核处理逻辑。这样的设计更适合工业现场的实时性需求。

详细的内容可以看文末最后对SMP和AMP不同架构的讨论。

而我们提出了一种新的解决方案,通过Hypervisor技术对SMP架构的CPU进行资源划分,让其每个分割部分运行独立的操作系统和应用程序,同时保证其不会被其他CPU的任务打断。

在SMP架构上实现多操作系统部署

SMP架构上实现单操作系统——Linux使用多个CPU内核

wKgZomVVpoqAFYrpAACzPKm3Is8113.png

在SMP中,大多数情况下一个计算系统运行一个单一的操作系统,如Linux。操作系统可以利用多个处理器或CPU内核来运行系统中的各种应用程序。

02

SMP架构CPU采用共享内存

wKgaomVVppqAEUIAAAAeoI4jtF0067.png

在SMP中各个CPU通过共享内存空间的方式进行数据交互,所有的处理器都可以平等地访问内存、I/O和外部中断。

03

SMP架构上实现多操作系统部署——实时Linux使用多个CPU内核

wKgZomVVpqmAIyFFAAHqMCptVdA724.png

在工业现场上,单个计算系统上部署多个操作系统变得越来越普遍。在使用SMP的管理程序解决方案中,多个不同的操作系统(例如Windows + real-time Linux)可以各自独立地利用一组多个处理器或CPU内核。

Hypervisor技术可以很好的管理这些CPU内核,正如之前所述的SMP的两大特性:多核心处理单任务及共享内存。在工业控制中为了保证实时性,必须确保运行实时任务的CPU不被其他应用占用;必须保证实时任务的内存不被其他应用占用。这些都需要Hypervisor在底层逻辑上将其完全划分开。通过Hypervisor技术,我们可以将专用的CPU和内存分配给实时操作系统。让其他操作系统的应用不能”触碰“这些资源,

相比于直接使用异构的CPU,SMP+Hypervisor的优势还在于可以按需分配整个设备资源,而AMP的异构则是在系统设计之初就固定的了。比如说,我的实际应用需要更强大的非实时应用,需要更多相关资源。相比之下,AMP在异构实现上就有很大的限制,无法按需分配,有时候不得不对应用做减法。而SMP+Hypervisor则可以灵活的倾斜更多资源给非实时应用,而给实时应用的资源可能只需要整个CPU核心的10%。

wKgZomVVpr6AH6sIAALC4h2TeQg052.png

Hypervisor技术不仅仅可以构建一个实时系统,他还可以构建多个实时系统,只要硬件的资源足够丰富,多个不同的操作系统部署在同一个硬件上面是完全可行的。


SMP和AMP不同架构的讨论

对称多处理(SMP)

SMP通常用于高端计算,这些计算环境需要大量的计算能力去执行应用程序任务和进程,许多多处理系统使用SMP架构。SMP最适用于分时(timesharing)和多线程时间共享系统。分时是指将计算资源同时分配给多个用户。类似地,多线程是中央处理器(CPU)的一个特性,它允许单个进程同时执行多个任务。更具体地说,多线程允许指令的多个线程独立执行,所有线程共享相同的处理资源。分时操作系统也使用SMP。这是因为计算资源可以分配给多个用户,多个进程可以并行运行。SMP支持该进程,SMP旨在在不同的处理单元上运行多个进程。出于同样的原因,SMP也是多线程的。这是因为多线程同时处理多个进程,而SMP在每个处理器之间划分线程。但是,SMP通常不会用于那些未针对多线程编程进行修改的pc或应用程序。应用程序和程序集应该设计成允许多线程。允许在不同的并行处理器上调度线程。

SMP架构CPU采用共享内存

wKgaomVVp-qAMqXPAAAetVA-2JI316.png

不对称多处理(AMP)

传统的单处理器系统提供的执行环境与非对称多处理的工作方式非常相似。它提供了一种相对简单的方式来移植代码,并提供了一种控制CPU使用的直接机制。在大多数情况下,你可以使用标准的调试工具和技术。AMP系统可以是同构的(每个CPU运行相同类型和版本的操作系统)或异构的(每个CPU运行不同的操作系统或相同操作系统的不同版本)。此外,AMP最有可能用于不同的CPU架构对特定应用的优化,如数字信号处理器(DSP)和微控制器(MCU)。在AMP系统中,可以在每个处理器或CPU内核上部署不同的操作系统。

如果你的操作系统支持特定的分布式编程模型,则可以充分利用同构环境中的多个cpu。在特定CPU上运行的应用程序将能够与其他CPU上的应用程序和系统服务(例如,协议栈、设备驱动程序等)透明地通信,而不需要传统的处理器间通信所带来的高CPU负载。在异构系统中,必须选择两个共享公共基础资源(最常见的是基于ip的)的操作系统,或者为处理器间的通信实现专有的通信方案。操作系统还应该提供访问共享硬件组件的机制,以帮助避免资源冲突。使用AMP,应用程序使用的共享硬件资源必须在CPU之间分配。外设、物理内存以及中断处理等资源通常是在启动时静态分配的。

动态分配资源会导致CPU之间复杂的协调。在AMP系统中,即使其他CPU空闲,一个进程也总是运行在同一个CPU上。因此,CPU可能会轻负荷或过载。为了解决这个问题,系统可以允许应用程序动态地从一个CPU迁移到另一个CPU。然而,这可能涉及复杂的状态信息检查,如果应用程序在一个CPU上停止,而在另一个CPU上重新启动,可能会中断服务。此外,如果cpu运行不同的操作系统,这样的迁移即使不是不可能,也是非常困难的。

使用AMP在不同的cpu上分区内存和I/O

wKgaomVVp_-ATx0pAABmtvGD5Ys130.png

联系盟通

北京盟通科技有限公司成立于2013年,是工业自动化领域的高新技术企业。公司专注于实时现场总线技术及工业通讯技术的研发、推广及技术支持服务。依托于核心团队多年的海外和行业经验,盟通科技与欧洲多家自动化领域的佼佼者达成战略合作关系,为客户提供EtherCAT主站协议栈、OPC UA SDK软件开发包、CANopen协议栈、FSoE协议软件、CAN总线硬件、DINA安全模块、艾默生Connext软件等工业协议的标准和定制化产品

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19281

    浏览量

    229789
  • 操作系统
    +关注

    关注

    37

    文章

    6818

    浏览量

    123325
  • ethercat
    +关注

    关注

    18

    文章

    690

    浏览量

    38691
  • 操作系统内核

    关注

    0

    文章

    8

    浏览量

    2369
收藏 人收藏

    评论

    相关推荐

    如何在windowsemulate不同操作系统

    包括: 虚拟机监控Hypervisor):负责管理虚拟机的资源分配和调度。 虚拟机(VM):模拟的计算机系统,可以运行不同的操作系统。 虚拟化软件:提供创建和管理虚拟机的工具。 二
    的头像 发表于 12-05 15:50 185次阅读

    混合部署 | 在迅为RK3568同时部署RT-Thread和Linux系统

    (非对称多处理)是一种更灵活的架构,允许不同的核心运行不同的操作系统实现更高效的资源利用和任务分配。通过 AMP,系统可以为不同的任务选择
    发表于 11-01 10:31

    盛显科技:拼接处理器如何实现高效数据拼接操作?

    众所周知,高效的数据拼接操作无疑是数据处理领域的核心优势,它能极大地缩短了处理时间,让拼接处理器能够迅速应对海量数据的挑战,实现数据的快速整
    的头像 发表于 10-23 10:58 245次阅读
    盛显科技:拼接<b class='flag-5'>处理器</b>如何<b class='flag-5'>实现</b>高效数据拼接<b class='flag-5'>操作</b>?

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+ Hypervisor应用场景调研

    Hypervisor有两个类型:I型和II型,其中I型直接运行在硬件设备,II型运行在一个操作系统,该操作系统运行在硬件设备
    发表于 10-14 11:21

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+ 了解Hypervisor

    被称为主管(Supervisor),而虚拟机监控程序用来托管主管,称为超级主管,即Hypervisor,也被称为虚拟机管理。看来Hypervisor是用来实现主机虚拟化的,同时管理多
    发表于 10-13 16:47

    对称多处理器的特点是什么

    的主要特点是处理器之间的对称性,这意味着每个处理器都可以执行任何任务,并且它们在处理能力是等价的。 1.
    的头像 发表于 10-10 16:36 394次阅读

    对称多处理器系统中的进程分配包括

    在现代计算机系统中,对称多处理器SMP)架构已经成为主流。这种架构允许多个处理器共享相同的内存地址空间和系统资源,从而提高了
    的头像 发表于 10-10 16:34 264次阅读

    对称多处理器和非对称多处理器的区别

    随着计算需求的日益增长,单处理器系统已经无法满足高性能计算的需求。多处理器系统应运而生,它们通过将多个
    的头像 发表于 10-10 15:58 912次阅读

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第三四章阅读报告

    通过时间片轮转、内存分页等技术实现资源的公平分配和高效利用。 中断与异常处理 :学习了Hypervisor如何
    发表于 10-09 18:29

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第一二章读后感

    我对本书后续章节的学习充满了期待。我希望通过深入学习PRTOS Hypervisor的设计与实现技术,以及其在RTOS、Linux等操作系统
    发表于 10-09 18:22

    混合部署 | 在迅为RK3568同时部署RT-Thread和Linux系统

    (非对称多处理)是一种更灵活的架构,允许不同的核心运行不同的操作系统实现更高效的资源利用和任务分配。通过 AMP,系统可以为不同的任务选择
    发表于 09-18 10:54

    【本周六-上海】SMP对称多处理 线下培训

    对称多处理(SymmetricMultiprocessing,SMP)是一种常见的并行计算架构,其中多个处理器核心共享相同的内存和总线系统。这种架构允许多个
    的头像 发表于 06-13 08:35 309次阅读
    【本周六-上海】<b class='flag-5'>SMP</b><b class='flag-5'>对称多处理</b> 线下培训

    RT-Thread SMP培训即将来袭,提升嵌入式开源开发技能,快来报名!

    对称多处理(SymmetricMultiprocessing,SMP)是一种常见的并行计算架构,其中多个处理器核心共享相同的内存和总线系统。这种架构允许多个
    的头像 发表于 06-06 08:35 384次阅读
    RT-Thread <b class='flag-5'>SMP</b>培训即将来袭,提升嵌入式开源开发技能,快来报名!

    精进嵌入式开源开发技能,RT-Thread SMP培训即将来袭!

    对称多处理(SymmetricMultiprocessing,SMP)是一种常见的并行计算架构,其中多个处理器核心共享相同的内存和总线系统。这种架构允许多个
    的头像 发表于 05-31 08:35 494次阅读
    精进嵌入式开源开发技能,RT-Thread <b class='flag-5'>SMP</b>培训即将来袭!

    如何在多处理器系统中使用EMIF?

    我想在多处理器系统中使用 EMIF。 为此,应不时将地址和数据总线设置为高阻抗状态。 可能吗? 我找不到图纸中连接 EMIF 总线的位置? 直接连接到 PIN 或
    发表于 03-05 06:51