由于嵌入式处理器早期功能单一且运算能力不高,嵌入式应用已不能满足各个领域不断增长的需求。嵌入式操作系统应运而生,嵌入式操作系统可以支持新时代复杂、多任务环境和功能的嵌入式应用程序。嵌入式操作系统使得程序的可移植性得到了增强,系统开发的工作量减轻的同时也提高了开发效率。对实时性和可靠性日益增长的要求正在塑造某些现代领域的嵌入式实时操作系统的发展方向,例如航空航天、工业控制、汽车电子、能源电力和医疗等领域。嵌入式实时操作系统(RTOS)构造简单、功能齐全、便于使用,特别适合各类应用场景,因此它在软件应用程序开发中发挥着重要的作用,使嵌入式系统的开发更加高效。
1.1 嵌入式实时操作系统的特点
实时操作系统响应快速,能准确高效地执行控制指令并按预期做出响应。嵌入式实时操作系统旨在为实时应用程序提供服务,应用程序处理传入的数据,大多数情况下没有缓冲延迟,具有实时性的优点,这是设计者和用户考虑的一个重要指标。
实时操作系统有硬实时和软实时之分,软实时系统与人的反应速度相当,能在几百毫秒内做出反应,而硬实时系统则可在几十毫秒内做出响应甚至更短时间。
但 RTOS 缺点在于:一般不存在图形界面,缺少如网络浏览器的功能,为快速响应中断信号需提供特定的驱动程序;具有较低优先级的任务需要等待很长时间。
1.2 实时操作系统与通用操作系统
用于运行笔记本电脑的通用操作系统(例如Windows)包含丰富的应用程序和功能,能够满足动态变化的用户需求。但它无法满足小尺寸嵌入式系统所需的精确要求、极低延迟、持久的正常运行时间和无需干预的性能,因此需要实时操作系统的支撑。相比于较大的通用操作系统,实时操作系统反应速度更快,占用空间更少。
开源通用操作系统(GPOS)以丰富功能和灵活性而闻名,通常在非关键系统上使用,具有时间灵活性。而在机器人和飞行控制器等安全关键系统上,通常选择实时操作系统进行开发,这是成功的关键因素。与此同时,RTOS 也存在一些不足:资源消耗大,使得系统昂贵;算法复杂很难理解,因此,在选择 RTOS 时,不仅需要使用内部实时操作系统,开源或基于社区的操作系统也不可或缺。
1.3 嵌入式实时操作系统调度算法
调度是一种确保作业在特定时间执行的方法,是指将可用 CPU 资源分配给进程的过程。对于实时系统而言,调度策略在任何实时系统中都至关重要,其中关键因素是调度算法。因此,实时系统研究的一个重要领域在于如何采用适当的算法来确保每个任务都能在其时间限制内完成。
μC/OS-II 调度算法,主要采用基于事件触发的优先级的抢占式调度,其特征是系统为每个任务分配优先级,一旦具有最高优先级的任务准备就绪,它就可以获得 CPU 的控制。基于 μC/OS-II 实时操作系统内核,提出了一种基于动态优先级的时间触发调度算法,以支持多处理机多任务,并设计相应函数来实现动态优先级调整,可以满足任务在实时系统中动态变化的需求。该算法避免了优先级反转,保证了实时性,即解决“同级优先级”任务调度问题,又有效提高了任务调度的效率。
最后,通过分析动态优先级调度算法性能,可看出在处理器使用率相同的情况下,使用改进的动态优先级调度算法的归一化实时响应时间更快。当然,该算法在投入机载计算平台之前,还需要做大量的实验去验证算法的其他性能,对平台做进一步完善。
从智能家居到交通管理,从工业控制到军用,全世界无数产品都配备了实时操作系统。在很大程度上,RTOS 行业受到计算机硬件行业发展的影响,产生了一系列的应用案例,对操作系统要求也更高。
智能家居中的不同设备可以相互通信,多个设备可以通过智能感应、远程控制和语音识别进行链接。智能家居以更便捷的方式帮助用户管理家庭设备,提供高效且舒适的生活与工作环境。
交通管理
将与物联网技术有效融合的实时操作系统嵌入到交通管理应用,利于实现交通的智慧化管理。实时分析、高效传递城市道路交通状况信息,合理规划路线,使得交通的拥堵情况得到有效缓解。比如:高级驾驶辅助系统(ADAS)可通过提供实时增强的可视化和与周围环境的交互来改善驾驶员对车辆的控制。
当今出现的众多智能机器人都依赖于内置实时操作系统,工业控制的要求往往比较高,需要复杂的设备接口,并在显示屏上实时显示这些设备状态和传感器等信息。凭借其独特的优势,内置的实时操作系统可以在许多环境恶劣、地面条件复杂的区域实现无人值守监控。
RTOS 在如今的高科技战争中愈发重要,它集成了卫星定位、无线通信、图像摄取传送等功能,这些不同功能要求的技术研发产品将应用装备到特定的作战场合。比如说,各种陆海空军用电子设备,军用雷达对抗通信设备,以及各种野战指挥作战专用设备,均搭载了实时操作系统。
上述实时操作系统是针对特定用例设计的,其缺点是成本高且耗时。定制操作系统将不可避免地耗费大量时间,在硬件上的投入大量资金而且性能得不到保证。如果开源系统的实施过程出现问题,也可能导致工期紧张甚至超支。相比之下,商用系统易于使用、快速,技术团队专业且经验丰富。
随着嵌入式实时操作系统不断进化升级,以下概括总结了 VxWorks、Linux 与 WinCE 这三种国外实时操作系统的优缺点。
3.1 VxWorks
VxWorks 凭借良好的可靠性和实时性被广泛地应用在各种高精尖技术行业中,如卫星通讯、军事演习等。VxWorks 最大的缺点是价格昂贵,软件的开发和维护成本都非常高,一般只提供二进制代码,源代码是不提供的,支持的硬件数量有限。
3.2 Linux
Linux 开源操作系统使用免费、可自由修改,它的功能强大、设计完善,为运行不同计算机平台提供了准确有效的通信手段,在价格上极具竞争力,目前最为流行。Linux 的弊端在于提供实时性能需添加实时软件模块来实现调度策略、硬件中断异常和程序执行。因此,代码错误可能破坏操作系统从而影响整个系统的可靠性。
3.3 Windows CE
Windows CE(Wince)相对简易开发,周期短且内核完善,可灵活支持通信,GUI丰富且开发功能完善,能更大程度地控制调度机制。但 Wince的版权费用也不可避免存在价格不菲的缺点,没有考虑实时应用,很难支持多种硬件平台,无法做到可定制性,且对资源的要求更高,在网络功能方面应用很少。
随着物联网的快速发展,国产设备自主可控需求强烈,国产嵌入式实时操作系统发展也逐渐步入轨道。鸿道(Intewell)操作系统是一款以微内核为基础、功能灵活、易扩展、高安全、高可靠的实时操作系统。
科东软件自主研发的鸿道(Intewell)工业操作系统,拥有三十多年的研发历史以及应用经验,具备微内核,高实时,虚拟化等诸多特点,可以实现工业控制底层通用化以及人工智能与控制一体化。为企业客户提供国产化行业解决方案,目前已成功应用于高端数控系统、工业机器人、医疗机器人、运动控制系统、轨道列车控制系统、配电自动化、汽车控制域等业务场景。
RT-Thread 是一款组件丰富、易扩展、低功耗、安全性高的国产开源的嵌入式实时操作系统。RT-Thread 内核对象与对象容器分配的链表相链接。
RT-Thread 不依赖于特定的内存分配方式,通过对象容器中内核对象动态与静态相结合的方法,极大提高了系统的灵活性。它凭借稳定丰富的系统功能,在新能源、航空和医疗等领域被广泛应用,其高度可靠的实时性得到了证实。
翼辉信息的 SylixOS 自主实时操作系统,在实时性方面做了很多有益的设计。SylixOS 的应用程序动态装载功能使业务逻辑与系统平台分离开发、独立升级,仅需更新相关的组件即可变更相关算法、增减应用功能等,这利于项目更加便捷、高效的开发与维护。
SylixOS 的实时处理及动态加载机制,支持在操作系统上集成各部门应用软件,满足了分布式软件开发需求。总之,SylixOS 能成为国内实时操作系统的最优秀代表之一,并在具体性能上达到或超过了众多实时操作系统的水平,是因为在设计思路上借鉴了众多实时操作系统的设计思想。
随着 RTOS 的广泛应用,其功能与需求种类也日益多样化,其结构形式与开发也日益复杂。实时操作系统必须响应创新,采用最先进的开发技术,适应新一代嵌入式系统开发人员采用的框架、语言和方法,并提供信息和功能的安全性、高性能和可靠性。因此,操作系统支持生活化、系统化、网络化、精细化开发环境。
(1)生活化:应用嵌入式实时操作系统的设备、家电与工具已经进入了千家万户的生活之中。它能满足大家在信息、通讯、出行和娱乐等方面的需求,使得人们的工作和生活质量有效提高。
(2)系统化:为更好地满足实时操作系统的开发需求,其开发工具将不断向着系统化方向发展。随着嵌人式设备的普及,不可避免地会出现全局处理需求,例如对各种嵌入式设备的数据进行全面整理,甚至综合分析和统筹处理。
(3)网络化:网络化发展将进一步推动嵌入式实时操作系统与互联网技术的深层次耦合。它更加可以让互联网技术在生活和工作中帮助人们快速、高效地完成很多事情,解决人们遇到的困难,所以现在人们对它的依赖很大同时要求很高。
(4)精细化:基于用户需求的嵌人式系统的本质特点,决定它必然会朝着功能细分和专业化方向发展,这也取决于各个领域的科学发展。实现将嵌入式实时操作系统的更多功能集成在更小的芯片上,从而降低生产成本。
尽管嵌入式实时操作系统在中国开发起步较晚,中小科研机构和厂商一直面临资金的短缺和研究经费不足的难题。还长时间受制于国外技术垄断,存在 RTOS 版税和服务费用昂贵的情况,大幅增加了嵌入式生产成本,从而使得产品市场和竞争力受到限制。但随着我国信息科技的快速发展和系统设计水平的稳步提高,RTOS 在不断发展进步,功能也日益强大,使得市场上的 RTOS 产品也日趋成熟。
只有开发出具有自主版权的系统,才能摆脱对国外嵌入式实时操作系统产品的依赖。Linux 开放的源代码,技术支持广泛与价格优势这一系列特征,有利于国产的嵌入式操作系统的开发。因此,我国本土操作系统仍有机会占领更多的市场份额与之抗衡。
事实上,要独立设计一个实时操作系统非常复杂,从现有的系统运行角度来讲,整个系统处理功能会受到软件与硬件的制约,是基于网络需求实现的。因此,要利用好信息化的网络优势,将系统本身所具备定向性功能进行逐步分解与更新,在保证系统关联运行功能前提下进行独立化操作;同时充分利用现有开源代码,实现对基础功能的扩展升级,从而开发出自主版权的嵌入式实时操作系统产品。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。