专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »博文摘选 » atmega16ucosii:μC/OS-II实时性能测试和分析 »正文

atmega16ucosii:μC/OS-II实时性能测试和分析

来源: 发布时间:星期一, 2009年11月30日 浏览:0次 评论:0
μC/OS-II实时性能测试和分析

任务切换时间和中断响应时间是嵌入式实时操作系统实时性能重要指标本文对μC/OS-II上述指标进行了测试并给出了测试思路方法;分析了区别情况对μC/OS-II实时性能影响实验结果表明:实时性能和CPU运行频率成正比而CPU利用率对实时性能影响较小

关键词 实时性能 μC/OS-II 任务切换时间 中断响应时间

  实时性是指系统能够在限定时间内完成任务并对外部异步事件作出及时响应在大多数工业控制中对实时性要求非常高

  实时操作系统是能够满足实时系统中实时任务处理响应时间要求操作系统实时操作系统是事件驱动(eventdriven)能对来自外界作用和信号在限定时间范围内作出响应它强调是实时性、可靠性和灵活性和实时应用软件Software相结合成为有机整体起着核心作用;由它来管理和协调各项工作为应用软件Software提供良好运行软件Software环境及开发环境在多任务实时系统中必然由实时操作系统来对实时任务进行管理

  μC/OS-II是种结构小巧、具有可剥夺实时内核实时操作系统其内核提供任务调度和管理、时间管理、任务间同步和通信、内存管理和中断服务等功能

  现在许多工业控制系统用到了μC/OS-II为了对其实时性有更深入具体了解本文对μC/OS-II实时性进行了测试和分析在实时系统设计中具有现实意义

1  μC/OS-II实时性能测试指标

  衡量嵌入式实时操作系统好坏般主要参考以下主要性能指标参数: 任务切换时间、中断响应时间、任务响应时间、任务创建/删除时间、交替信号量时间、取得/释放信号量时间、交替消息队列传输时间等本文仅对前2个最重要指标参数进行测试分析

1.1  任务切换时间

  任务切换时间(Task Content Switch Time)可以反映出RTOS执行任务速度

  μC/OS-II使用是占先式内核以保证系统响应时间每个任务都被赋予优先级最高优先级任务旦就绪就能得到CPU控制权个运行着任务通过信号量等机制使个更高优先级任务进入了就绪态μC/OS-II会进行任务调度这时当前任务CPU使用权就要被剥夺那个高优先级任务会立刻得到CPU控制权

  每个任务都有自己套CPU寄存器和栈空间任务切换实际上就是CPU寄存器内容切换CPU内部寄存器越多额外负荷就越重

  在任务切换的前还需要在就绪表中查找出优先级最高任务它由任务调度OSSched完成是比较花费时间这个有固定长度语句所以它执行时间是常数和应用建立了多少个任务没有关系

  所以任务切换时间取决于CPU有多少寄存器要出入栈以及相关调度执行速度

1.2  中断响应时间

  中断响应时间(Interrupt Response Time)可以反映出RTOS对外界变化反应速度是指从中断发生起到执行中断处理条指令所用时间它是衡量嵌入式实时操作系统实时性能最主要、最具有代表性性能指标

  中断响应时间=中断延迟时间+保存CPU状态时间+该内核ISR进入执行时间

  中断延迟时间=关中断最长时间+开始执行中断服务子(ISR)第1条指令时间

  关中断最长时间取决于运行时区别情况其他参数在其系统中都有固定长度代码中断响应是系统在最坏情况下响应中断时间

2  μC/OS-II实时性能测试原理

2.1  任务切换时间测试原理

  任务切换时间测试是利用系统内部定时器计算任务切换时间给定时器值a1并建立两个任务;在任务1中开启定时器利用消息邮箱切换到任务2停止计时记录定时器值为a2设系统时钟计数频率为f任务切换时间为Ttcst则:

按此在新窗口浏览图片

2.2  中断响应时间测试原理

  中断响应时间测试同样也是利用定时器计算中断响应时间给定时器值a1建立个任务和定时器中断服务在任务中开启定时器;当定时器自减为0时进入中断服务子在该子中关闭定时器记录定时器值为a2注意: 定时器归0后自动变为值a1设系统时钟计数频率为f中断响应时间为Tirt则:

按此在新窗口浏览图片

3  μC/OS-II实时性能测试步骤及结果

  本文测试使用硬件平台为2410开发板其中处理器采用Samsung公司S3C2410XS3C2410X是款基于ARM920T内核16/32位RISC嵌入式处理器系统主频是202.8 MHz

3.1  任务切换时间测试步骤及结果

  ①  系统时钟这里只用到定时器0PCLK = FCLK /4 = 202.8 MHz /4 = 50.7 MHz预分频值设置为0除法器设为1/4所以最小分频为0.08 μsf = 12.5 MHz计时器0值TCNTB0设为60 000即a1=60 000

按此在新窗口浏览图片
图1  任务切换时间测试

  ②  如图1所示建立两个任务:  Task_TCST_Start和Task_TCST_EndTask_TCST_End优先级高运行后因等待邮箱消息而挂起等待;然后Task_TCST_Start开始运行向邮箱发送则消息同时定时器开始计时;的后该任务延时段时间进入挂起状态Task_TCST_End收到邮箱消息由等待状态进入就绪态拥有就绪态队列中最高优先级所以获得CPU使用权它进入运行态后立即停止计时记为a2
  ③  根据式(1)计算结果
  ④  重复10次实验取最大值为5.36 μs

  需要注意2点: 其有意义任务切换时间和中断响应时间是系统在最坏情况下发生所以不能取平均值应该取最大值其 2定时器是循环计数即从值自减到0然后恢复继续自减所以停止计时时定时器可能经过了两次或多次循环设计时要注意这在本次实验中循环最大间隔为60 000×0.08 μs = 4 800 μs远大于次任务切换时间或中断响应时间所以定时器没有经过多次循环

3.2  中断响应时间测试步骤及结果

  ①  同任务切换时间测试

按此在新窗口浏览图片
图2  中断响应时间测试

  ②  如图2所示建立个任务Task_IRT_Test和定时器0对应中断服务子Timer0_IRT_Test在任务中开启定时器0当定时器0自减到0时CPU响应该中断CPU中断向量跳转到定时器0中断服务子Timer0_IRT_Test由它保存CPU全部寄存器;然后通知内核进入中断服务子同时将堆栈指针保存到当前任务控制块OS_TCB中的后用户中断服务代码开始执行在此停止定时器0读出它数值a2
  ③  根据式(2)计算结果
  ④  重复10次实验取最大值0.24 μs

4  CPU运行频率对μC/OS-II实时性影响

  将CPU运行频率分别降低到152.00 MHz、101.25 MHz、67.50 MHz和33.75 MHz

  测试思路方法不变其测试结果分别如图3和图4所示其中任务切换时间最大值分别为7.14 μs、10.74 μs、16.35 μs、32.71 μs;中断响应时间最大值分别为0.32 μs、0.47 μs、0.95 μs、1.90 μs

按此在新窗口浏览图片
图3  CPU运行频率对任务切换时间影响

按此在新窗口浏览图片
图4  CPU运行频率对中断响应时间影响

  测试结果分析: 总体上随着CPU运行频率增加任务切换时间和中断响应时间都会减小且呈非线性变化特别是CPU运行频率较低时其变化对实时性能影响较大;当CPU运行在较高频率时其变化幅度相对要小些其非线性变化是和最小分频时间相关

  这介绍说明CPU运行频率对实时性能起着非常重要作用它直接决定指令处理周期频率增加时指令周期减小系统用于同步等待时间缩短CPU执行每条语句速度加快保存和恢复CPU寄存器内容速度也相应加快因此实时性能变得更好

5  CPU利用率对μC/OS-II实时性能影响

  的前测试都是在CPU负荷较小情况下进行当CPU负荷增大(即利用率升高)时实时性又会如何变化呢?这里建立了N个相同任务同时进行大批量浮点运算再建立个任务利用μC/OS-II自带OSStat计算CPU利用率对应区别N值有区别CPU利用率分别测试其实时性得到结果如图5所示测试结果表明: 当CPU负荷增大时任务切换时间会增加中断响应时间也会略有增加CPU利用率对系统实时性能有影响但不是很大

按此在新窗口浏览图片
图5  CPU利用率对任务切换时间和中断响应时间影响

6  结论

  本文在特定硬件平台上测得μC/OS-II在区别情况下任务切换时间和中断响应时间能较好地反映出它实时性能测试思路方法在没有精密仪器条件下即可完成具有简单易行、硬件依赖性低、可信度高特点为开发人员将μC/OS-II用于嵌入式操作系统实时应用提供了依据

标签:atmega16ucosii
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: