实时与非实时系统对比实验

举报
歌尽桃花 发表于 2019/01/16 13:03:01 2019/01/16
【摘要】 实时与非实时系统对比实验一 实时工具RTX简介Windows是通用操作系统,其调度功能不针对实时应用程序。因此,实时开发人员受到严重限制,并且经常无法使用Windows操作系统。 IntervalZero的RTX64产品通过向Windows添加实时功能来弥补这一差距。它还提供用于构建和执行实时程序的工具和实用程序。实时系统有时被分类为硬实时或软实时系统。硬实时系统是其中响应时间确定性要求...

实时与非实时系统对比实验

   实时工具RTX简介

Windows是通用操作系统,其调度功能不针对实时应用程序。因此,实时开发人员受到严重限制,并且经常无法使用Windows操作系统。 IntervalZeroRTX64产品通过向Windows添加实时功能来弥补这一差距。它还提供用于构建和执行实时程序的工具和实用程序。实时系统有时被分类为硬实时或软实时系统。硬实时系统是其中响应时间确定性要求是绝对的;对于软实时系统,允许一些小的偏差。 IntervalZero没有容忍的偏差,这意味着硬实时。

通过扩展Windows操作系统,RTX64使需要确定性和高速响应时间的应用程序组件或模块与其他非实时应用程序组件一起在通用Windows系统上协同工作。使用RTX64,可以使用单个,低成本的平台来满足全方位的实时和嵌入式应用需求。

   安装RTX插件

intervalzero公司的官网即可下载RTX插件,64位系统可选择intervalzero公司最新推出了64位插件RTX64 3.0版本的插件,安装好RTX64 3.0 SDKRTX64 3.0Runtime后需要激活。激活完成后,配置分配运行在window系统下和RTSS系统下的处理器。打开RTX64 3.0Runtime下的ControlPanel软件点击Assign system processors进行分配。分配如图1所示,可选择将电脑或者笔记本的处理器分成window处理器和RTSS处理器,本次实验使用的笔记本有8个处理器,最大可选7个处理器为RTSS处理器。于是可分配处理器如图1所示,4window处理器,4RTSS处理器。重启电脑,在visual stdio工具中即可建立实时工程如图2所示。通过编译运行实时代码进行实时开发。

1.png

                                         图1

shi-2.png 

2

   intervalzero rtx64延迟视图工具

intervalzero RTX64延迟视图工具如图3所示,是RTX插件附带的一个程序, IntervalZero延迟视图工具显示WindowsRTX64内核之间的延迟比较。 系统定时器响应延迟测量为从子系统定时器中断发送信号到该信号被中断服务线程(IST)中运行的软件识别的总时间。 如图4所示,延迟由硬件延迟,(信号被中断服务程序(ISR)识别所花费的时间),以及软件延迟(从ISRIST中的例程运行所花费的时间)组成

图3.png

3  intervalzero RTX64延时视图工具

 

图4.png

4

 

延迟工具以1秒为间隔重复捕获数据,并为每个核心提供该时间段的最大值的图形显示。 每个磁芯还显示累计最小值,最大值和平均值。 可以从运行在Windows内核上的32位和/64位进程查看延迟值,并将其与运行在RTSS内核上的64位进程的延迟值进行比较。 可以选择向选定的内核添加视频和/或磁盘负载,模拟系统活动,以便更准确地显示繁忙系统上的最大延迟时间如图5所示选择加载磁盘负载来达到使系统繁忙情况下采集延迟值的数据。

图5.png

5

6是在加载了磁盘负载的情况下,window系统内核的每个磁芯还显示累计最小值,最大值和平均值,图7在加载了磁盘负载的情况下,RTSS系统内核的每个磁芯还显示累计最小值,最大值和平均值。

从显示的数据来看window系统内核的平均延迟为52us,53us,49us,49us,RTSS系统内核的平均延迟为2us,2us,2us,3usRTSS系统响应延迟非常小,是window系统下响应延迟的1/26

图6.png

6

 

图7.png

7

那么实时window和非实时window下相同的程序运行结果会发生变化吗?我们进行了优先级翻转实时与非实时的对比试验进行观察。

   优先级翻转

4.1 概念

有优先级为ABC三个任务,优先级A>B>C,任务AB处于挂起状态,等待某一事件发生,任务C正在运行,此时任务C开始使用某一共享资源S。在使用中,任务A等待事件到来,任务A转为就绪态,因为它比任务C优先级高,所以立即执行。当任务A要使用共享资源S时,由于其正在被任务C使用,因此任务A被挂起,任务C开始运行。如果此时任务B等待事件到来,则任务B转为就绪态。由于任务B优先级比任务C高,因此任务B开始运行,直到其运行完毕,任务C才开始运行。直到任务C释放共享资源S后,任务A才得以执行。在这种情况下,优先级发生了翻转,任务B先于任务A运行。

 

4.2 程序实现流程

按照概念选择使用临界区建立线程1和线程3的共享资源,程序流程图如图8所示。首先建立三个线程1,2,3,并使3个线程挂起,为线程分配优先级。按照概念令线程1优先级最高,其次线程2,线程3优先级最低。初始化临界区,激活线程3,线程3处于运行状态执行占用临界区资源的指令。激活线程1,激活线程2,三个线程执行完后释放。

图8.PNG

8

4.3 实时与非实时系统结果对比

windowRTSSwindow系统上实现上述程序逻辑后。分别统计10次结果,window系统执行效果如图9所示,RTSSwindow如图10所示。Window系统下,程序执行不一定发生优先级翻转,而RTSSwindow系统下,程序均发生优先级翻转。

 

图9.png

9

图10.png

10

4.4 结论

出现线程2先于线程1执行结果的情况即可认为优先级发生翻转,在本次实验window系统和RTSSwindow系统下模拟现实生活任务执行过程中出现的优先级翻转的情况,发现实时和非实时系统下执行效果具有如下差异:

Ø  非实时情况下:

       优先级不一定按照程序的逻辑效果进行翻转

Ø  实时情况下:

       优先级在观测下均发生发展,严格按照程序逻辑进行执行

经思考,两者的差异来自于实时与非实时内核的延迟时间不同。实时系统在执行任务方面表现效果优于非实时系统。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。