发 帖  
原厂入驻New
实战多通道高速精密测温仪的全系列设计教程,以实际项目为依托,提升工程师核心竞争力!→点击立即抢购←

[经验] 典型的支持多核处理器的RTOS功能解析

2019-6-29 08:30:00  735 rtos 嵌入式
分享
2
1、基于同步原语扩展的实时操作系统
    在多核处理器的每一个处理器核上都运行一个完全相同的RTOS,然后提供扩展的组件库,这种组件库提供相应的同步原语以支持处理器核间的通信。Eg:VxWorks、RealOS。
4.jpg
     通过MP Extended Library同步原语库扩展,运行在一个处理器核(Processor Element)上的任务不仅能和运行在同一PE上的任务通信,还能和运行在不同PE上的任务通信,这样任务间就可以协同通信而完成特定的应用。通过将应用划分成不同的可以并行运行的任务而运行在不同的PE核上就可以并行的处理数据,从而达到提高系统性能的目的。
     在这样的架构中,运行在每个PE上的RealOS和运行在单核上的RealOS没有任何区别,主要扩展在于MP Extended Library的实现,它提供了一种跨核通信的手段,使运行在不同核上的任务能够同步和传输交换数据。
     通过同步原语库的扩展来实现对多核处理器的支持,是一种常见的对RTOS的扩展,不需要对现行的RTOS做太大修改,只需要增加一个相对独立的扩展库,就可以实现对于多核处理器的支持;同时多核的机制对应用程序不透明,应用需要根据需求安排多任务在多核上运行。这样的机制使一份RTOS在系统存储器中拷贝了多份,浪费了一定的存储空间;同时由于对应用程序不透明,需要设计多任务在多核处理器上的调度和运行,增加了应用程序的复杂度,同时需要更多的时间来调试和移植多核处理器程序。

2、基于微内核和分布式技术的实时操作系统
     QNX是由加拿大QNX软件系统公司推出的实时操作系统。QNX Nuetrnio是一种微内核的操作系统,每一个驱动程序、应用程序、协议栈、GUI服务、文件系统都在受保护的地址空间中运行。任何一个模块都可能出现错误,也有可能重新启动运行,但都不会影响到其他模块及内核的运行。
     在QNX Nuetrino中,OS内核只提供最基本的服务,如线程调度、进程间通信、同步,所有其他OS服务、驱动程序、应用程序都作为单独的运行进程,通过同步消息传递与内核进行通信,这种消息传递机制形成了一条软总线,可以根据需要动态地插拔服务程序。因此,可以在系统运行中更换或重新启动几乎所有的模块,甚至是设备驱动程序。
     QNX对多核处理器的支持基于其微内核结构,通信被集成到QNX消息传递原语,本地的IPC和远端节点间的IPC一样。在单CPU上运行的进程分布到多CPU上时,可以同样通信,源代码和运行代码都不需要改动。

3、传统的SMP结构的实时操作系统
      由Linux发展而来的各种RTOS一般采用这种方法,由一个RTOS调度运行各个任务在各处理器核上运行。
      在这种系统结构中,所有的CPU在运行时(除系统引导和初始化外)都是对称的,没有主次之分,通常物理上也采用同一种CPU。所有的CPU通过同一条总线共享同一个内存及所有的外设。为减少访问内存的冲突,SMP结构中的各个CPU通常都有自己的Cache。
4_jpg_thumb.jpg

相关经验

王栋春 2019-6-29 13:04:21
学习了         
回复

举报

tanghuluguang 2019-7-1 09:23:58
谢谢楼主分享!!
回复

举报

BMRTECH 2019-7-1 11:23:12
赞一个!谢谢分享!
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发经验
课程
    关闭

    站长推荐 上一条 /10 下一条

    快速回复 返回顶部 返回列表