(图片来源网络,侵删)
提起实时操作系统,行业内的都不陌生,如:uclinux、FreeRtos、Ucos-III、Rt-thread、VxWorks和SYS/BIOS(TI-RTOS)等等它们大多数应用于嵌入式领域,由于其轻量级的内核,优秀的调度性能和强大的实时性等特点广泛用于嵌入式系统开发之中,如今在嵌入式软件组成中已占有非常重要的地位那么众多版本的操作系统中如何评判其性能的优劣?如何进行嵌入式系统设计时操作系统的选择呢?下面从个人的观点谈谈看法什么是嵌入式实时操作系统?当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统注:在工业控制、 军事设备、 航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统我们常常说的嵌入式操作系统都是嵌入式实时操作系统比如μC/OS-II、eCOS和Linux、HOPEN OS故对嵌入式实时操作系统的理解应该建立在对嵌入式系统的理解之上加入对响应时间的要求以上是百度百科对于嵌入式实时操作系统(RTOS)的定义从定义上可以看出嵌入式实时操作系统不同于一般的嵌入式操作系统,区别主要体现在“快”字之上从个人理解的角度,简单粗暴的讲,首先它是一个操作系统,具有操作系统的一般功能和特征,重点是它在任何状态下都能在特定的时间内对于外界的特定激励给出相应的响应那么很显然众多版本的实时操作系统最重要的拼的就是这个“激励与响应构成的快字”那么是不是只要快就可以了呢?很显然不是,要不就只留下微微微内核得了,别的都不要了最快操作系统概念从一个特殊的例子入手探讨一下实时操作系统的关键指标,进而总结出一般的嵌入式实时操作选用时所关注的重点指标下面是从TI的RTOS名为SYS/BIOS的文档中选取的Benchmarks表,表中主要列出了其在不同的DSP、ARM和单片机体系结构下时间和空间的基准情况TI-RTOS基准参数表下面是C66体系下的时间基准参数,可以看出其列出了中断延迟、中断上下文切换、硬中断操作API的耗时、中断到阻塞的任务切换耗时、硬中断到软中断的耗时、不同情况下的软中断API耗时、不同情况下信号量的操作耗时以及系统时钟API耗时等值得注意的是耗时的单位,这里没用us或者ms,而是cycles,因为这项测试没有在固定主频下进行C66体系下的时间基准参数表所以,不管具体的指标性能,一个RTOS在测试性能指标结果出来的时候首先应该列出来:(1)硬件的环境是什么?(2)硬件有什么特殊的配置没有?(3)编译器的版本?(4)编译器的选项?(5)测试结果如果不是CPU的cycle数,而是us,那么至少应该列出CPU的主频信息否则,拿别的RTOS作比较的时候,任何一个参数或者环境改变,都是不公平的比如:一个编译用Debug 优化等级-O1,另一个Release,优化等级 –O3 怎么比呢?除了时间基准,内核还提供了空间的基准值,包括其存储所占ROM空间和运行所占RAM空间大小情况(分别在静态和动态两种应用配置前提下)静态配置系统所占空间基准表动态应用系统所占空间基准表表中给出的指标非常详细,包括不同种类应用前提下的代码和数据所占ROM空间大小,运行时中断栈、任务栈、堆和BSS的RAM空间大小等由于多数嵌入式系统体积、功耗和成本等因素的约束,ROM和RAM资源都很紧张,在同样的功能和性能的前提下,这些指标也是评价一个RTOS的关键因素以上是针对TI-RTOS的一些指标,下面总结一些通用的嵌入式RTOS所关注的指标,以便在选用操作系统软件时做一些参考嵌入式系统实时性能(最关注的):(1)信号量等待时间(2)信号量释放时间(3)任务挂起时间(4)任务恢复时间(5)消息队列发送时间(6)消息队列接收时间(7)上下文切换时间(8)中断响应时间(9)中断恢复时间(10)最长锁中断(11)信号量混洗时间(12)系统时钟开销(13)时间抖动 标准库的支持 字符串 数学计算存储操作相关文件操作拷贝数据网络性能TCP和UDP测试内核所占ROM和运行时占用RAM资源情况处理器体系支持情况(SMP/AMP) 硬件接口驱动支持情况设计、开发、调试、仿真、测试和集成部署环境的支持集成开发环境
0 评论