
【操作系统|嵌入式开发:多核系统、虚拟机监控程序和多核框架】在嵌入式开发中 , 多核嵌入式系统的软件可能非常复杂 。 一个经常讨论的主题是如何在每个核心上实现代码 , 从而使其得到最佳利用 。 在这篇短文中 , 有一个不同的视角:关注可以跨多个核心运行的软件 。
多核硬件体系结构
从硬件的角度来看 , 多核设备大致有两种类型:同质多核(其中有多个相同类型的核)和异质多核(其中核的类型不同) 。 异构设备可以包括一些相同的核心 。
要跨多个内核运行单个软件 , 内核必须相同(无论如何 , 从指令集的角度来看) 。 因此 , 需要一个同质多核设备或异质设备中的同质“岛” 。
对称多处理
构建多核系统的一个原因是以节能的方式最大化计算能力 。 这是个人电脑设计师所采取的方法;多核处理器在笔记本电脑和台式机系统中几乎无处不在 。 嵌入式开发人员可能有同样的目标 。 最好的方法是使用支持对称多处理(SMP)的操作系统 。
SMP操作系统将进程分布在可用的内核上 。 这通常是自动的 , 但嵌入式开发人员可能需要执行一些控制 , 并可能将某些应用程序锁定到特定的核心 。 进程不“知道”它们正在不同的内核上运行;操作系统提供它们之间的通信和同步 。 多种实时操作系统(RTOS)的SMP版本可用;Linux还提供SMP变体 。
管理程序
尽管嵌入式SMP操作系统提供了某种程度的控制 , 但嵌入式开发人员通常希望确保资源分配完全按照他们的喜好进行配置 。 因此 , 另一种选择是使用自己的操作系统实例配置每个核心 , 并且所有核心不必运行相同的操作系统和应用程序代码 。 然后 , 在所有可以控制其操作(引导顺序等)并提供内核间(或操作系统间)通信的内核上运行虚拟机监控程序 。要获得更大的灵活性…
到目前为止 , 我们已经通过从系统中的单个(SMP)操作系统转移到多个可能不同的操作系统实例来提高灵活性 。 但是 , 如果需要更大的灵活性 , 需要使用不同体系结构的核心 , 该怎么办?这取消了跨多核运行代码的选项–SMP操作系统或虚拟机监控程序都需要一个同构的多核环境 。 但是 , 还有另一种选择:在每个核心上运行多核框架(可能是基于OpenAMP的产品) 。 这种方法提供了核心间通信和生命周期管理 。 此外 , 可以选择在“裸机”(即没有操作系统)上运行应用程序 。
结论
在多核嵌入式系统上开发软件是一项复杂的任务 。 嵌入式开发人员有必要考虑一些选项——相对简单性和完全灵活性之间的权衡 。
- meta|促进更逼真AR/VR体验,Meta正在开发全新空间音频工具
- NVIDIA的DLSS技术已经深受玩家和开发者认可|性能2倍于DLSS!AMD游戏神技FSR 2.0正式支持Xb
- 6月23日消息|全面自主可控!首个全链路国产操作系统OpenCloudOS
- 操作系统|618战报揭晓!淘宝拼多多失声,京东重回C位
- 蓝牙AOA定位那点事系列085:如何应对第一次合作软件开发合作伙伴的问题和需求
- 程序员|俄罗斯传来新消息,无法更新微软系统,国产操作系统崛起的机会?
- |美国拒绝分享系统漏洞,中国打造首个桌面操作系统根社区应对
- 操作系统|婴儿手环找到实物?二审“四朵金花”三缺一,许敏会笑着离场
- 操作系统|AirPods3和AirPodsPro之间有什么区别?哪款耳机最值得购买?
- 酷家乐|硬件创业:智能硬件产品详细开发指南
