“硬实时”为Linux注入新活力
作者:网络转载 发布时间:[ 2017/1/11 10:23:19 ] 推荐标签:操作系统 Linux
将Linux作为电子设备的软件开发和运行平台,这早已成为设备软件领域的热门话题,这的确可以为电子产品制造企业带来不少好处。然而,由于Linux一直都只能提供软实时(soft real-time)性能,而在汽车控制、工业控制、电信基础建设等诸多需要硬实时性能的应用中,都无法采用只有“软实时”能力的Linux,这使得许多对时间较为敏感的应用都成为Linux难以涉入的禁地。
近,美国风河系统公司从FSMLabs购买了硬实时Linux技术——RTLinux,并将其与风河全球的Linux设备软件平台的结合,为电子设备制造商提供一套成熟、可靠的全新技术,用于开发和部署各种基于Linux的下一代应用,满足电子设备制造商们对“硬实时(hard real-time)”特性的需求,例如功能型手机、需要高容量流媒体的数字图像应用以及包括车辆避撞系统在内的各类车载应用等。其中,集成RTLinux技术的Wind River Platform for Consumer Devices, Linux Edition可以把各种基于Linux的高速包交换设备软件应用提升到一个全新的高性能级别。
那么,让我们一起来了解一下,“硬实时”和“软实时”有什么样的区别,哪些场合必须有“硬实时”的软件系统来实现,以及怎样才能获得真正具有“硬实时”特性的Linux平台。
实时性的“软”和“硬”
实时操作系统 (Real-time OS) 是相对于分时操作系统 (Time-Sharing OS) 的一个概念。在一个分时操作系统中,计算机资源会被平均地分配给系统内所有的工作。在分时系统中,各项任务需要花多长时间来完成,这一点并不重要;而在一个实时操作系统之中,关注的是每个任务在多长时间内可以完成。简单地说,实时和分时操作系统大的不同在于 “时限(deadline)”这个概念。
从上述区别中可以看出,在实时操作系统中,系统必须在特定的时间内完成指定的应用,具有较强的“刚性”,而分时操作系统则注重将系统资源平均地分配给各个应用,不太在意各个应用的进度如何,什么时间能够完成。不过,算是实时操作系统,其“刚性”和“柔性”的程度也有所不同,好像是系统的“硬度”有所不同,因而有了所谓的“硬实时(hard real-time)”和“软实时 ( soft real-time)”。硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。软实时系统的时限是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,例如在网络中仅仅是轻微地降低了系统的吞吐量。
当你从事设备软件开发时,首先需要知道该系统究竟属于硬实时、软实时还是非实时系统,这一点很重要。这三种系统所要求的编程技术和规范存在很大差别。
风河公司认为,硬实时与软实时之间关键的差别在于,软实时只能提供统计意义上的实时。例如,有的应用要求系统在95%的情况下都会确保在规定的时间内完成某个动作,而不一定要求。在许多情况下,这样的“软性”正确率已经可以达到用户期望的水平。比如,用户在操作DVD播放机时,只要98%的情况都能正常播放,用户可能满意了;而发射卫星、控制核反应堆的应用系统,这些系统的实时性必须达到,是不允许出现意外的。
何时需要“硬实时”?
几乎在每个行业垂直市场都有大量的应用系统要求必须采用硬实时才能达到。例如,在网络基础设施市场,电信应用的关键业务常常对硬实时、软实时和超高速包传输提出了综合性的要求。在许多对服务水平有特定要求的话音和其它媒体流传输应用中,对硬实时的要求显然超出了市场上现有通用操作系统所能提供的水平。高吞吐量以及高密度数据交换网络也会令简单的网络堆栈和传统In-House的嵌入式操作系统陷入性能拙劣的泥潭。
即使在当今的消费电子市场,移动电话中的调制解调器控制和应用处理都离不开硬实时技术,以便减少芯片组的数量,降低硬件成本。特别是手机设计者希望采用单核处理器来实现这些功能的时候更是如此。在数字音响和视频设备中,更是不乏硬实时技术的大量应用。数码相机的快门只要被按下,必须跟随一连串确定的动作,否则无法拍出高质量的照片。
更严重的情况是,在有些领域系统出错可能导致重大的损失,甚至是人命关天的。例如航空与国防应用中的指令控制、导航、安全、武器控制等,还有飞机驾驶模拟系统等应用,都需要将复杂的计算、存储、显示和机电控制系统有条不紊地协调起来。工业生产流水线,特别是在化工、电力、交通等行业,都有许多精确度极高的机电控制系统。所有这些应用,毫无疑问都必须建立在硬实时技术的基础之上。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11