1.概述

自动化与控制行业中有很多场景需要循环周期控制,而运动控制领域对循环周期控制的时间确定性要求尤为严格,周期抖动的时间确定性和周期控制的极限范围直接影响运动控制产品的质量和性能。
SylixOS作为一款嵌入式实时操作系统,针对不同循环周期和不同程度的时间确定性要求均有对应的周期控制方式,其中就有为周期性任务解决多任务调度冲突并且时间确定性良好的速率单调调度(Rate Monotonic Scheduling RMS),还有传统的以硬件平台定时器作为中断源,以中断服务程序作为实时任务运行载体的周期控制方式。

2.周期定时方式

本文档主要针对SylixOS实时周期任务进行时间确定性的测试,为贴近真实场景,除了实时周期任务,还有多个普通线程以及不间断的串口中断、网络中断等干扰项,以此保证本文档测试数据以及抖动分析有实际参考价值。

2.1 SMP模式的RMS方式

2.1.1 测试模型

测试平台有两个CPU,在应用程序中将实时任务绑定到CPU1上,其他任务则在CPU0上运行,其中SylixOS中断的绑核不提供应用层的接口,因此我们编写了一个.ko文件用于绑定中断(包括串口中断、网络中断、定时器中断等)到CPU0上,测试时加载此.ko模块即可,具体测试模型如图 2-1所示。

图 2-1  SMP模式的RMS方式测试模型

2.1.2 抖动分析

RMS实现说明:基于操作系统tick的软件定时,循环周期高于tick的部分以tick来实现,循环周期低于tick的部分以CPU忙等待处理实现,以此保证时间延时精度。
    SylixOS在高精度时间的CPU忙等待处理中会使用自旋锁,在这一过程中,操作系统不停地获取CPU的时间计数值,每次获取值的过程需要自旋锁加锁、解锁的操作,多核竞争下共享资源使用自旋锁进行互斥访问会对RMS有影响,存在一个极限情况,CPU0在CPU1上的实时任务延时完成之前抢先占有自旋锁,自旋锁被占有的时间会导致SMP模式的RMS最大抖动极限值。

2.1.3 优点

  • SylixOS提供了RMS应用层接口,用户使用方便;
  • RMS有助于解决多个实时任务调度冲突的问题,RMS基于任务的周期指定优先级,周期越短优先级越高。

2.1.4 缺点

  • SMP模式下的自旋锁机制会影响实时任务的抖动;
  • 实时任务周期低于时钟tick周期时会独占CPU运行。

2.2 SMP模式的ISR方式

2.2.1 测试模型

以硬件平台定时器作为中断源,以中断服务程序作为实时任务运行载体,这种SMP模式的ISR方式,将实时线程转化为中断任务,可有效提高任务的响应速度和任务循环周期的时间确定性,具体测试模型如图 2-2所示。

 
图 2-2  SMP模式的ISR方式测试模型

2.2.2 抖动分析

SMP模式的ISR周期控制方式,SylixOS使用双核平台的私有定时器产生定时中断到中断处理程序开始执行存在一定时间间隔,不可避免。这段时间间隔就是中断响应时间,稳定的中断响应时间可以保证ISR方式的稳定循环周期。存在一个极限情况,前后两次的定时中断分别以最小的中断响应时间和最大的中断响应时间让中断处理程序开始执行,就会导致ISR周期控制方式的最大抖动极限值。SylixOS在双核平台的中断响应时间集中在2-3μs,因此ISR周期控制方式的最大抖动极限值为±1μs。

2.2.3 优点

周期控制方式中时间确定性最好的一种方式。

2.2.4 缺点

因为任务在中断服务程序中执行,要求任务代码短小精悍且不允许有耗时操作,需要根据具体情况决定是否采用此方法,不具备通用性。

2.3 AMP模式的RMS方式

2.3.1 测试模型

SylixOS支持AMP模式,在双核平台的两个CPU上分别运行SylixOS,测试模型与SMP模式的RMS方式类似,具体的测试模型如图 2-3所示。

 
图 2-3  AMP模式的RMS方式测试模型

2.3.2 抖动分析

AMP模式的RMS周期控制方式相对SMP模式的RMS周期控制方式避免了多核竞争下共享资源使用自旋锁互斥访问的影响,最大抖动主要是和前后两次实时任务运行之前的任务上下文切换时间有关,存在一个极限情况,前后两次任务上下文切换分别以最小切换时间和最大切换时间来完成任务调度,会造成AMP模式的RMS方式的最大抖动极限值。

2.3.3 优点

由于每个CPU单独运行一个操作系统,相比SMP模式下的RMS方式,避免了多核竞争下共享资源使用自旋锁互斥访问的影响,提高了时间确定性。

2.3.4 缺点

AMP模式的RMS方式可能会出现RMS任务独占CPU的情况,SylixOS在双核平台的时钟周期为100μs,当任务延时时间低于100μs(时钟周期)时就会出现任务独占CPU的情况。

3.总结

AMP模式的ISR周期控制方式和SMP模式的ISR控制方式结果类似,不单独列出。
    SylixOS有多种循环周期控制方式可供选择,在对较小循环周期的控制场景下,SylixOS可以以针对性的控制方式保证实时任务的时间确定性,本文档测试场景模拟了一些干扰任务和中断任务,用户可根据自身实际场景选择合适的周期控制方式。

SylixOS周期定时抖动分析相关推荐

  1. am335x linux内核烧写_实时 Linux 抖动分析 Step by step

    本文首次发表于 实时 Linux 抖动分析 Step by step 前段时间有同学问到: 大家有显卡方面实时性调优经验交流吗?我现在是 x86,不加显示任务实时性可以保持在 20us 内,如果加上显 ...

  2. 软件工程生命周期模型对比分析

    软件工程生命周期模型对比分析 2018年3月29日2018年3月28日 由 xyjisaw 本文共1515个字,预计阅读时间需要5分钟. 文章目录 迭代-递增生命周期模型 增量模型 进化树模型 编码- ...

  3. 基于金融业顾客生命周期的商业分析

    随着近些年商业银行之间的竞争逐渐加大,客户,作为银行利润的最终来源就愈发重要.银行若要提高自身盈利能力,对客户价值的挖掘与深入洞察必不可少. 客户分级就是常用的方法之一. 客户分级,即:基于客户需求的 ...

  4. EPSON RX8010SJ RTC 调试笔记之五, 固定周期定时中断功能 (Fixed-cycle Timer Interrupt Function)

    硬件: EPSON RX8010 SJ 功能描述: 固定周期定时中断功能 (Fixed-cycle Timer Interrupt Function) 产生一个循环周期的中断事件, 在 244.14u ...

  5. Android之内存泄露、内存溢出、内存抖动分析

      内存 JAVA是在JVM所虚拟出的内存环境中运行的,内存分为三个区:堆.栈和方法区. 栈(stack):是简单的数据结构,程序运行时系统自动分配,使用完毕后自动释放.优点:速度快. 堆(heap) ...

  6. 【安卓 R 源码】Activity 启动流程及其生命周期源码分析

    1. Activty 的生命周期 activity的生命周期 oncreate()->onstart()->onResume()->onPause()->onStop()-&g ...

  7. Activity的生命周期和启动模式--Activity的生命周期的全面分析

    本节将Activity的生命周期分为两部分内容,一部分是典型情况下的生命周期,另一部分是异常情况下的生命周期.所谓典型情况下的生命周期,是指在有用户参与的情况下,Activity所经过的生命周期的改变 ...

  8. SimaPro生命周期评价案例分析

    生命周期评价(Life Cycle Assessment,即LCA)是一种用于评估产品在其整个生命周期中,即从原材料的获取.产品的生产直至产品使用后的处置,对环境影响的技术和方法.它是对一个产品系统的 ...

  9. 第三代互联网蓄势待发 a16z:加密货币和Web 3.0将是下个周期的中心 分析红杉资本的Web 3版图

    ​​最近一个月二级跌跌不休,但从长线来看,希望大家不要忘记 Web3 正处于建设阶段.按照Bankless的说法:熊市使 CEO 能够从基本原则角度进行思考,花更多的时间来打造有意义的技术.随着大批新 ...

最新文章

  1. R语言ggplot2地理信息可视化(上)
  2. javascript扩展插件alook_使用 Kotlin 编写你的第一个 Firefox WebExtension 扩展
  3. stl的nth_element
  4. Python多任务(8.进程与线程之间的区别以及多进程和多线程的区别 )
  5. http://www.appinn.com/bookmark-manager-chrome/
  6. OC之OBJC2_UNAVAILABLE
  7. MAC算法原理与常用实现
  8. 我的天!我靠这个拥有了自己第一架无人机!
  9. 易到遭******以数据要挟索要巨额比特币
  10. Python字符集编码和文件读写
  11. tar、tar.gz、tar.Z、tgz、bz2、bin软件包的安装
  12. [转载经验] 探亲签证申请
  13. 微信开发之微信jssdk录音功能开发
  14. 七代处理器装win7_七代cpu为什么不支持win7?
  15. 几个互联网项目管理软件
  16. BF算法和KMP算法详解
  17. 【翻译】LearnYouSomeErlangForGreatGood(一):导言
  18. 解决MAC系统升级后虚拟机黑屏问题
  19. unity剩余高度自适应实现办法
  20. Eclipse插件TPTP-程序Profile与分析工具详细教程

热门文章

  1. 习题 3.7 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
  2. 主板、中小板、创业板、新三板的区别是什么?企业选择上市板块时的参考依据是什么?...
  3. Oracle数据库中的序列、索引和同义词,详细笔记。
  4. Cad二次开发(三)
  5. 聊城初中计算机考试成绩查询,聊城市初中学业水平考试成绩查询入口2021 http://wsbm.lcedu.cn...
  6. java读取txt文件内容并处理,将内容写到txt文档里面并读取及删除的方法
  7. eclipse中常见的红叉叉
  8. 青龙面板 XDD QQ机器人修复方案 22/6/6更新
  9. [JAVA软件工程师-面试宝典-2013最新版]
  10. shutdown 定时关机