admin 管理员组

文章数量: 887021


2024年1月14日发(作者:开源bi)

SlixOS大型实时操作系统实时性分析y李孝成()南京翼辉信息技术有限公司,南京210000摘要:支持S系统内核功能丰富,系统提SlixOS是一款支持多架构的64位国产原创操作系统,MP与AMP多核架构,y,供丰富的文件系统支持、完善的网络协议栈支持与多种图形显示引擎支持。S在实时性方lixOS作为一款大型RTOSy面做了很多有益的设计,但是,系统的实时性与使用过程中的众多因素相关,本文对影响实时性的因素进行分析,并给出优化方法,最后给出SlixOS和VxWorks的测试对比。y;关键词:大型系统;实时性;性能优化策略SlixOSSMP;y中图分类号:TP316

文献标识码:AReal-timePerformanceAnalsisofSlixOSLareReal-timeOeratinstemyygpgSyLiXiaocheng,,emprovidesrichfilesstemsuorterfectnetworkprotocolstacksuortandavarietyypppppy:,AbstractSlixOSisa64bitdomesticoriinaloeratinstemsuortinultiarchitecturesuortinMPandAMPmulti-corear-ygpgsyppgmppgS(,,N)10000,ChinajgAgyCjg2eranalzesthefactorsthataffectthereal-timeper-ypy,,formanceandgivestheotimi,isalare-scaleRTOS,whichhasdonealotofusefuldesininreal-timebutthereal-timeper-ppygppygg:;KewordsSlixOS;SMP;laresstem;real-timeperformanceerformanceotimizationstrateygyppgyy0

言1

实时性影响因素在任务切换实时性、周期任务抖动实时性、中断响应实时性方面,这些实时性的影响因素与调度算法、调度时机、中断屏蔽、多核通知、下面就这几cache保持都有一定关系,个方面进行分析。当一个事件产生时,无论何种情况下都能在确定的时间得到响应,这是实时性的定义。通过这个定义能够得到三个信息:第一个是事件产生进入调度的时机是否及时,第二个是调度任务选取时间是否确定,第三个是任务切换时间是否确定。这三个因素是影响实时性是否确定的核心因素。作为R实时性一般体现TOS考量的一个重要指标,该系统开发自SlixOS是嵌入式通用型操作系统,y具备大型操作系统的特点:内核代码百万行以2006年,上,支持多种硬件架构,动态装载应用程序,支持虚拟进程,兼容P支持标准设备管理模型,支持OSIX标准规范,丰富的文件系统,支持完善的网络协议栈,支持多种图形引擎,可以快捷帮助用户实现图形开发需求。目前已经应用于防务、航空、航天、轨道交通、电力、工控、汽车电子等多种领域的产品上,可替换国外VxWorks和QNX方案。高可靠、高安全、业务场景复SlixOS适用于高性能、y杂的设备,通常运行在高性能处理器平台,典型应用包括弹载操作系统平台、星载操作系统给平台、列车安全计算机、电力继保设备、机器人控制器、数控机床等。使用1.1

调度时机分析系统产生事件一般分为软件事件和中断事件。软件事件为应用程序在执行过程中调用相关系统接口给另一个任务发送消息或同步,此时影响软件事件响应的因素包括内核是否可被抢占。中断事件是指硬件载体产生了一个异常,该异常被中断服务函数捕获,然后投递消息给响应的处理任务,此时的影SlixOS系统的产品很多时候都需要优秀的实时性支持,y影响实时性的因素很多,除了内核设计本身支持优秀的实时性外,系统也提供很多方法可用来优化实时性,本文就影响实时性的因素与优化方式进行一些分析,并给出SlixOS的优化方法。y 8Microcontrollers&EmbeddedSstems

2021年第4期

响因素包括系统最大关中断时长以及中断是否可以被抢占。1.2

调度任务选取当事件产生并进入到内核进行调度时,需要确定任务选取的时间。在多核环境下,还需要确定当前是否有任务在其他核上处于更高优先级,因此调度任务的选取与通知和多核有关。务I然后通过恢复上下文来执行新D获取到任务控制块,的任务,该环节影响的因素为新任务执行的cache抖动。2 SlixOS实时性设计y2.1

内核设计从下至上分为ASlixOS具有良好的架构分层,RCHy/层、内核层、设备驱动框架层、动态加载模块IO子系统、与接口层,系统整体架构图如图1所示。1.3

任务切换当某个核确定需要进行任务上下文切换后,会通过任图1 SlixOS架构图y组件众多,功

从图1中可以看出,SlixOS架构庞大,y能丰富。内核采用抢占式设计,因此在执行内核态任务的时候可以及时响应用户的高优先级任务。同时在进入内核等相关原子区域操作的时候,采用最小粒度的关中断处理,最大程度上减少软件层面对中断响应的影响。SlixOS采用了bitmayp算法进行高任务优先级的选,择,该算法满足O(每次进入调度的时候,无论任务多1)寡,均可在指定的时间内完成高优先级任务的选择。生时,及时获取到当前要调度到的任务在其他核内是否处于高优先级,如果发现要调度的任务优先级不高于本核、但高于其他核,就会向目标核发起一个核间中断,然后触发另外一个核进行一次调度。3 SlixOS优化方法y产品的实时性一般由OS实时性+BSP实时性+应用程序相关优化手段来实现,SlixOS本身在设计的时候y已经进行了众多优化设计,下面将给出一些工程实践中常用的实时性优化方法。2.2

多核相关设计在多核模式下,SlixOS支持多核SMP运行,SlixOSyy为了提高任务实时性,在多核架构中为每个核增加了候选表的概念,若候选表不为空,有一个优先级高于“候选表中线程”的线程就绪时,会产生优先级卷绕,并将CPU的优所示。采用候选表与优先级卷绕模式,可以在一个调度产先级卷绕标志位设置为1,SlixOS线程调度流程如图2y3.1

打开中断嵌套现代处理器中,不同的中断源会产生不同等级的中断,而在实时产品的设计过程中,我们需要保障高优先级中断能够在中断产生后及时得到响应。一般情况下,中断进入中断服务程序后系统中断是关闭的,为了解决这个问题,通过调用aSlixOS支持中断嵌套功能,rchIntHandley

敬请登录网站在线投稿

()2021年第4期

9

图3

中断上下半段处理示意图所示。3.3

对相关的一组任务进行亲核性绑定另一个任务,且另一个任务运行在另外一个核上,那么会多触发一次核间中断,这种情况下可以通过分析业务逻辑关系把一组有直接唤醒关系的任务或者中断绑定在同一个核上,这样就能解决多触发一次核间调度的问题。在提供两种方式来进行任务与核的绑定。SlixOS上,ySlixOS支持通过Shell命令的方式进行任务与核的y_T还可以通过调用APIhreadSetAffinity函数进行绑定设置,该种方式主要用在任务启动自动绑定的场景,API描述如表2所列。图2 SlixOS任务调度流程图y表2

线程绑核函数说明参数说明在S如果一个任务激活了lixOS多核SMP模式下,y,绑定,该种方式一般为调试时使用。Shell命令为affinity函数名来打开中断嵌套,archIntHandle的函数描述如表1所列。打开中断嵌套系统支持后,用户在BSP编写对应的中断服务程序即可。表1

中断嵌套打开函数函数名archIntHandle(,)ulVectorbPreemtivep参数说明:中断号Vector:是否支持嵌套bPreemtivep:线程IulIdD_T,APIhreadSetAffinitulIdy(:stSizeCPU掩码集内存大小,)stSizecusetpp:cusetCPU掩码pp定,实现一个核只运行一个指定的任务。该种情况可以实现任务的及时响应以及c可通过Sache热度的保持,hell命令cuaffinitpy对系统某个核进行排他性绑定设置。此外,SlixOS还支持通过设置CPU亲核性排他绑y3.2

缩短中断服务程序时间众所周知,中断服务程序在执行的时候,系统中断是关闭的,长时间的中断关闭会导致系统响应延迟,实时性下降。因此,在设计驱动服务程序时,需要使用上下半段的方法来拆分中断服务程序,从而缩短中断关闭时间、提高系统实时性。中断服务程序的拆分原则如下:一般把和业务逻辑相关的数据处理放到任务中,中断服务程序负责处理数据获取、清理现场,然后通过消息机制通知任务处理业务逻辑,从而实现缩短中断服务程序的目的。具体示意图如图34

性能对比测试测试对比,测试条目包括m自旋锁接口耗alloc接口耗时、时、二进制信号量投递耗时、计数信号量投递耗时、互斥信号量投递耗时、就绪态到运行态耗时、延迟态到运行态、悬置态到运行态以及通过QPerf进行的QT图形相关测试。测试结果整体来看,SlixOS性能与VxWorks基本相当,y测试环境如表3所列。测试对比数据比较多,因篇幅有限,挑选2组操作系在x86多核环境下SlixOS和VxWorks做过一系列y统关键数据进行展示,如表4和表5所列。1 0Microcontrollers&EmbeddedSstems

2021年第4期

表3

测试环境CPU:IntelCoreI72655LECPU@2.20GHz:内存4GDDR3DDR3在信号量投递上多核性能基本和V在任务xWorks相当,,切换上多核性能要略差于V但通过绑核操作,性xWorks。能要优于VxWorks测试环境系统版本()版本7.8y()版本s85

语丰富的功能、优秀的性能,SlixOS以其开放的姿态、y已得到广大客户的认可,广泛应用在军工防务、电力工控、轨道交通等领域,实时性、稳定性和通用性均得到进一步验证。参考文献)表4 SlixOS和VxWorks多核测试结果(1y二进制信号量耗时/sμ绑核均值1.470.881.410.88VxWorks最大1.691.711.601.09最小1.270.841.360.85均值SlixOS原生接口y最大1.370.802.123.49最小SemTakeSemTakeSemGiveSemGive0.330.410.500.510.300.390.440.44[]塔嫩鲍姆.操作系统设计与实现[陈渝,等译.北京:电子1M].不绑核[]牛建伟,刘禹.嵌入式S北京:北2lixOS实践开发教程[M].y工业出版社,2007.)表5 SlixOS和VxWorks多核测试结果(2y悬置→运行耗时/sμ绑核均值VxWorks最大最小SlixOS原生接口y均值最大最小[]田泽.嵌入式系统开发与应用[北京:北京航空航天大学3M].京航空航天大学出版社,2017.出版社,2005.社,send→ptaskRuntaskSusend→ptaskRun[]腾艳平.计算机操作系统[哈尔滨:哈尔滨工业大学出版4M].1.752.371.640.871.580.801.692.131.553.987.821.62不绑核,李孝成(研发副总)主要研究方向为实时操作系统及边缘计算。通信作者:李孝成,lixiaochen@。g()责任编辑:芦潇静

收稿日期:2021-02-08通过上述对比可以看出,在RTOS核心参数对比中,ImainationGPU助赛昉科技打造高性能星光RISCVAI单板计算机g本次两家企业的合作充分展现了Imaination的GPU在设计之初就考虑到能够与所有处理器架构协同工作,maination对开放且gg发展迅猛的RISCV生态的良好支持。,业界领先的R平台及解决方案提供商赛昉科技有限公司(简称“赛昉ImainationTechnoloies宣布:ISCV处理器、StarFivegg),科技”授权采用了I知识产权(以支持其最新R的开发。maination的B系列图形处理器(GPU)IP)ISCV单板计算机(SBC)I-g。星光不仅配有自研的NN人工智能视觉处理芯片惊鸿7其多核R还搭载了100,ISCV处理器运算主频高达1.5GHzE和ISP,具备当今台式机的所有可扩展性功能,具有体积小巧、价格低廉、噪音低等特点。凭借LVDSP及视频编解码,inux与RISCV的单板计算机的功能更加完善。星光单板计算机可为业界所追求的高性价比、多用途的RISCV开发硬件提供十分理想的解决方案。“星光”是全球首款用于边缘计算的、为L它采用了赛昉科技自主研发的inux操作系统量身定制的RISCVAI单板计算机,)赛昉科技将在星光人工智能(单板计算机的后续量产版本上加入I以添加强大、灵活的图形处理性能,使该AImainationGPU,g、融合,星光A数据中心、边缘计算等领域的产品和项目开发提供强有力的软硬件支持,缩短项目开I单板计算机可为工业机械、AI发周期,加速产品上市。赛昉科技本次选用的I是I可以在性mainationBXE432GPUIP,maination最新一代IMGB系列GPU中的一款内核,gg能、尺寸、成本等方面为赛昉科技的单板计算机提供充足优势。B系列是I凭借先进的多mainationGPU产品的又一次重要演进,g带宽需求降低3且填充率比竞品I为移动设备、消费类设25%,5%,P内核高2.5倍。B系列GPU共拥有多达33种不同的配置,、备、桌面端、服务器、物联网、数字电视(汽车等多个市场提供了极为广泛的选择。DTV)核架构,其可提供高达6T每秒万亿次浮点运算)的计算能力,同时相比前几代产品,功耗降低多达3面积缩减了FLOPS(0%,”RISCV技术持续向前发展。“赛昉科技C我们很高兴与I双方对REO徐滔表示:maination进行合作,ISCV生态的坚定支持是合作成功的重要保障。I-g性能、功耗、面积)特性,可以帮助我们在优化成本的同时提供强大的功能。我们期待未来可maination的GPU拥有出色的PPA(g以和I利用双方各自的技术和产品优势形成合力,共同打造更加完备的处理器生态,并助推maination展开更多的战略性合作,g

敬请登录网站在线投稿

()2021年第4期

1 1


本文标签: 中断 任务 实时性 支持 系统