Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 计算机论文 > 正文

基于多核处理器的 RTOS 系统分析探究论文

发布时间:2023-05-12 11:49:39 文章来源:SCI论文网 我要评论














SCI论文(www.lunwensci.com)

  摘 要:嵌入式设备发展需求提升,面向多核处理器系统开发的嵌入式实时操作系统成为研究重点。分析了基于多核处理 器芯片操作系统 2 种体系结构、典型的自旋锁算法及全局任务调动机制等关键技术,指出目前多核 RTOS 系统软件设计与开发 中存在的重难点以及未来发展方向。

  关键词:嵌入式,多核处理器,RTOS

  Analysis and Research of RTOS System Based on Multi-core Processor

  ZHAO Wanfang, CHEN Lili

  (Beijing Polytechnic College, Beijing 100176)

  【Abstract】:The development demand of embedded devices has increased, and the embedded real-time operating system for multi-core processor systems has become the focus of research. This paper analyzes the key technologies of operating system architecture based on multi-core processor chip, typical spin lock algorithm and global task scheduling, and points out the key and difficult points in the current multi-core RTOS system software design and development, as well as the future development direction.

  【Key words】:embedded system;multi-core processor;RTOS

\
 

  传统的单核处理器系统由于主频低、系统耗能现象 严重以及对大型功能需求处理能力低等问题,不能满足 日益增长的嵌入式设备发展需求,逐渐向多核处理器系 统方向发展。多核处理器系统架构的提出为嵌入式系 统带来了性能的全面提升。随着多核处理器的广泛应 用,面向多核处理器系统开发的嵌入式实时操作系统成 为研究重点。由于多核处理器架构下,多个核之间需要 随时互相通信,互相竞争共享核间资源及核间存在同步 和互斥等问题,给系统的实时性及性能功耗比提出了很 大挑战,带来很多不确定性。基于多核架构的操作系统 正处于发展阶段,还具有极大的潜力,因此,基于多核 处理器的实时操作系统 RTOS(Real Time Operating System) 成为目前嵌入式开发领域的研究重点。本文从 当前基于多核处理器的主流操作系统结构出发,分析研 究了自旋锁算法、全局任务调动机制,指出目前多核 RTOS 系统软件设计与开发中的重点与难点。

  1 RTOS 体系结构

  目前多核处理器芯片的操作系统结构主要有 2 种, 一种是 AMP(Asymmetric Multi-processina) 非对称多进程 模式 ;另一种是 SMP(Symmetric Multi-processina) 对 称多进程模式,这 2 种操作系统主要区别在于系统结构 的不同以及代码和数据区的分配方面。

  1.1 AMP 非对称多进程模式

  AMP 模式的实时操作系统的主要特征是,系统有 一个主要核心,负责控制管理整个系统及系统中的其 他核心,需要用户参与系统资源的分配。系统中的每 个 CPU 上均可以运行一个操作系统实例,这些操作实 例可以不相同,即每个核可以运行不同版本的程序和操 作系统,以相对独立的方式运行各自不同的任务。每个 操作系统既有专用内存,也有共享内存,核之间的通 信是通过访问共享内存并遵守约定的通信机制来实现 的。这种多处理模式硬件上可以是同构处理器模式,也 可以是异构处理器模式,但是更多的是异构处理器。目 前 AMP 类型的实时操作系统应用比较少,异构的有 MCU+DSP、MCU+FPGA 等, 同 构 的 有 Sun 公 司 的 Solari4.1.3 系统等。

  1.2 SMP 对称多进程模式

  SMP 对称多处理模式是目前应用最多的模式,该 模式最重要的特征是共享。系统中所有处理器都是由一 个操作系统实例管理控制,为各个内核分配工作负载。 所有处理器共享内存以及大多数的硬件资源,除了少量 硬件,例如私有定时器类型。SMP 模式中所有处理器 核运行同一个操作系统实例,这些核拥有同等地位,共 享系统内存和外设资源,这点与 AMP 模式中各个核上 运行各自操作系统实例完全不同。和 AMP 模式相比, SMP 模式中的所有处理器核可以共享系统中大多数硬 件资源,可以公平的访问内存资源,这使得 SMP 架构 中的处理器核可以方便的通过共享内存的方式来实现同 步与通信,更能发挥多核处理器的硬件优势,实现均衡 负载和较高的性能功耗比。但是这种模式下实现异构结 构较为复杂,一般都是同构多核处理器。

  多核硬件平台是在单个芯片内部集成了多个处理 核心,可以在不同处理器核心上并行执行任务的平台。 SMP 硬件平台是指包含 SMP 处理器的硬件系统,它可 以是一个对称多核处理器,或者是多个对等的单核处理 器构成,系统内存结构是一致内存访问 (UMA) 体系结 构。单核处理器之间的地位平等,公平访问共享资源, 典型的双核 SMP 硬件结构如图 1 所示。

\
 

  SMP 模式的操作系统同时使用多个 CPU,并将任 务均匀分配到每个 CPU 上运行,从而整体提高系统的数 据处理能力。大部分系统都支持 SMP 模式,如 Linux、 Vxworks、Windows 等。Linux-2.0 内核版本开始引 入对 SMP 的支持,从 Linux-2.4 版本开始,真正实现 了多 CPU 并行执行。Linux-2.4 和 Linux-2.6 系列版本 对 SMP 的支持得到很大完善,对实时操作系统的 SMP 研究具有借鉴意义。但是也由于 SMP 共享内存的结构特点,很大程度限制了 SMP 架构处理器的扩展能力, 随着处理器核数目的增多,内存访问冲突加剧,造成总 线流量风暴,使得处理器访问内存的性能降低。如何通 过合理软件设计来规避多核系统中的这种内存访问冲突 也是目前实施操作系统 RTOS 需要解决的问题。

  2 自旋锁算法相关研究介绍

  多核操作系统中的内核临界区代码经常需要访问核 间共享的操作系统内核数据结构,为了防止冲突,自旋 锁提供了互斥机制用于保护内核临界区,是一种应用比 较广泛的底层同步机制。只有持有自旋锁的处理器核才 能执行临界区代码,没有获得自旋锁的处理核只能进入 自旋等待或者休眠状态,直到持有者释放锁 [1]。

  朴素自旋锁算法在执行中主要由总线来仲裁决定哪 个处理器核先获得自旋锁的使用权,其余处理器核暂时 等待在某一内存共享变量上,是比较简单的自旋锁算 法,具体的实现可分为 TAS 锁和 TTAS 锁 2 种实现方 式, 2 种方式在共享总线的 SMP 架构处理器上存在显 著的性能差异。多核处理器系统中每个处理器核都有 Cache,多核系统中有一套 Cache—致性协议定义,因 此当多个处理器核共享的内存数据被修改时,每个处理 器核都要在总线上发送广播。TAS 锁在自旋时为了迫使 其他处理器核丢弃自己的锁副本,每次都需要调用 Test And Set 操作,这样容易导致总线被自旋的线程一直独 占。而 TTAS 锁在自旋期间,只会读取锁副本从而避免 了该问题。但是 TTAS 锁被释放时,锁释放操作会使得 锁副本失效,这样导致每个在自旋状态的处理器核都需 要调用一次 Get And Set 操作,从而容易引发总线风暴。

  朴素自旋锁的算法是一种无序的锁算法,缺乏公平 性,某个处理器核有可能会长时间得不到锁,无法满足 RTOS 对实时性的要求。而相比较 Ticket 自旋锁算法更 具公平性,处理器核访问互斥资源的时间是可预期的, 因此很多多核 RTOS 采用这种算法。但是由于 Ticket 自 旋锁也是在一个变量上自旋,所以同样存在 TAS 锁占 用总线资源的问题。为此一些队列锁算法被提出,例如 MCS[2]、CLH 等算法,有效规避了总线风暴问题,但是 这类算法在无 Cache 的 NUMA 系统结构下性能会比较 差。另一种 MCS 队列锁算法通过每个处理器核自旋等 待各自节点的变量上,直到前驱节点对其修改的方式来 规避这个问题,在 NUMA 系统结构下同样适用,但是 MCS 锁占用的空间比较大。近些年, 占用空间大的问 题通过压缩数据结构的方式解决了之后, MCS 算法开 始逐渐应用在 Linux 内核中,取代 Ticket 票锁算法。

  3 全局调度机制研究分析

  一般全局任务调度的过程分为 3 个阶段 :就绪队列操作阶段、调度算法执行阶段和任务上下文切换阶段, 在系统的实现中,任务的挂起、恢复以及任务间通信等 这类系统调用 API(Application Interface) 接口会导致 任务状态的变化,从而触发全局任务调度。在多核处理 器环境下,如果系统中正在运行的多个任务同时调用这 些 API,从而并发执行全局任调度,任务调度的 3 个阶段 就会存在增加调度时延及一些非必要的调度开销等问题。

  就绪队列操作阶段主要工作是对就绪队列进行修 改,当任务就绪时,在相应优先级的任务链表中将 TCB 插入,当任务阻塞时,从任务链表中移出 TCB。在全局 调度机制下,全局就绪队列属于临界资源,所有的处理 器核对全局任务就绪队列进行操作时是地位等同的,多 个处理器之间通过竞争来操作任务就绪队列,因此当多 个处理器核并发访问全局任务就绪队列时就必须使用并 发锁来确保互斥性,当任务调度频繁时,多个处理器核 竞争排队,就会增大任务调度时延,影响系统实时性。

  调度算法执行阶段系统会从任务就绪队列中挑选出 优先级最高的N个任务分配给N个处理器核。在调度算 法执行阶段,存在调度算法时间复杂度高且冗余执行的 问题。调度器首先从就绪队列中挑选优先级最高的N个 任务 TCB,将其移出队列,然后将这N个任务与N个处 理器核上正在运行的任务 TCB 做比较,替换掉优先级 更低的任务 TCB,最后将这N个任务 TCB 重新插入回 就绪队列中。这种实现方案时间复杂度高,限制了系统 的多核扩展性,而且,无论是否存在有新的高优先级就 绪任务需要抢占原来低优先级任务的运行,相同的任务 调度算法都必须执行一遍,这种伪调度需求很大程度增 加了系统的非必要调度开销。

  任务上下文切换阶段的主要工作是根据调度算法的执 行结果,向需要切换执行任务的处理器发送 SGI(Software Generated Interrupt) 核间中断, 处理器收到 SGI 中断后 会在刚进入中断处理流程时将任务 T1 的上下文进行保存, 然后在退出中断处理流程时将任务 T2 的上下文恢复,这 样就完成了任务切换。本地处理器核可以直接执行任务的 切换,不用发送 SGI 核间中断,将当前任务的寄存器等上 下文信息保存至任务 TCB 中,然后恢复待切换任务的上 下文。如果执行任务处理器收到某个核发送的 SGI 核间 中断,刚进入中断处理流程,紧接着又收到另外一个核的 SGI 核间中断,这种情况下第二次 SGI 中断响应导致执 行任务处理器执行了一次空切换,增加了任务调度的延 迟,因此在上下文切换阶段存在冗余的核间中断问题。

  4 多核 RTOS 系统软件设计与开发

  多核处理器在硬件上直接增加处理器核数量就可以 提高系统整体的运算性能,但是因为不同的多核处理器可能会有不同的指令集架构,由此会大大增加软件设计 的难度。当同构多核处理器刚开始发展时就已经有 MPI、 Pthread 和 OpenMP 等多种并行编程语言。虽然这些语 言提供了比较完善的并行编程库,但是应用在多核处理 器中时,在提高系统的并行处理能力方面不够有效。当 前在嵌入式开发中,用的最多的语言是 C 和 C++。而它 们的编程模型主要是基于统一的、共享内存的同构处理 器而设计的,如果系统是异构多核处理器架构则会不太 适用,需要专门针对异构多核处理器架构进行软件设计 和开发,才能充分挖掘每个处理器最大处理潜能,真正 有效提升系统性能。因此,针对当前多核处理器环境下 的操作系统设计与开发还需要适应性更强的编程语言和 并行编程模型才能更好的挖掘出多核系统的潜力 , 这也 是将来嵌入式开发领域软件设计一个重要的研究方向。

\
 

  另外在单核 RTOS 进行 SMP 扩展时面临的主要问题 有系统完整性、系统性能和外部编程模型等方面。系统完 整性的主要任务是正确协调 CPU 间的并行活动,避免内 核数据结构遭到破坏。在系统完整性有保证的前提下尽最 大可能的提升系统性能。在设计外部编程模型时, 如果 外部编程模型被改变,和原有系统不一致,那么基于原系 统编写的应用程序也要随之修改, 这样会大大增加开发成 本,所以当对 RTOS 的 SMP 进行扩展设计时应该尽量保 持原有 API(Application Interface) 接口不变。其次要 注意 RTOS 的可预测性和实时性也是考虑的重点问题。

  5 结语

  随着多核技术发展,而面向多核处理器的嵌入式实 时操作系统也逐渐成为近些年的研究重点。目前虽然已 有多款面向 SMP 的典型 RTOS,但在多核架构下,多 个核心竞争使用核间共享资源及共享内存,加之自旋锁 算法和现有的全局调度机制缺乏优化,也为系统的实时 性引入了更多的不确定性。随着嵌入式在物联网各领域 的急速发展,多核处理器的发展具有广阔的前景 , 如何 通过软件合理设计来规避多核系统中存在的问题,优化 提高系统性能与实时性,也是目前以致未来一段时间实 时操作系统 RTOS 需要解决的问题。

  参考文献

  [1] HERLIHY M,SHAVIT N.The Are of Multprocessotr Programming[M].Burlington:Morgan Kaufmann Publishers,2008.

  [2] MELLOR-CRUMMEY J M,SCOTT M L.Alrorithms for Scalable Synchronization on Shared-memory Multiprocessors[J].ACM Transactions on Computer Systems (TOCS),1991.9(1):21-65.
 
 
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!

文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/55971.html

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml