嵌入式实时操作系统应用分析

分享到:

         随着 EOS(Embedded Operation System, 嵌入式操作系统 ) 在工业控制领域内的广泛应用,操作系统的实时性成为一个日益被关注和重视的问题。

         当前主流的 EOS 一般可分为两类, 一类是商业级的嵌入式操作系统,这类操作系统都由知名公司开发与维护,在技术支持与服务上都有较好的保证,如 VxWorks 、 QNX 、 WinCE 等,但这类产品一般使用许可证比较昂贵,且不公开核心代码,这就与嵌入式设备的用户定制性较强、升级换代快等特点相违背。另一类则是逐渐兴起的源码开放的嵌入式操作系统,如嵌入式 Linux 、 eCos 等,由于这类系统具有用户可定制性好、费用低廉等优势,从目前看来,它们已成了嵌入式操作系统应用的主要推动力。

         嵌入式Linux 操作系统

         嵌入式 Linux 系统是标准 Linux 在嵌入式领域的延伸,其特点和功能与标准 Linux 几乎完全相同。 Linux 系统的稳定性和健壮性已经在真实世界中得到了证明,在工业控制领域也有许多非常成功的应用。但是,在针对一些有较强实时性要求的特定工业应用中, Linux 系统仍然暴露 出 了许多技术缺陷。其主要原因是因为 Linux 系统起初是为 PC 开发的,在功能和性能选择上更多的兼顾了 PC 应用的特点,追求系统的功能完备性和整体性能最优。这一点在 Linux 系统的调度策略上表现的尤为明显,如任务之间采用的是基于 分时技术 ( time-sharing ) 的调度策略,而且不支持内核态抢占式调度,这样系统就无法保证紧急任务总是会被优先执行,且调度延迟不确定,是随机可变的。

        因此,有相当多机构和公司都在研究如何提高 Linux 实时性能,并取得了一些富有成效的成果。同时,开源社区也做着同样的事情,那就是 Linux 2.6 版本的开发。开源社区采用的实时化思想是直接对 Linux 内核的调度机制和算法进行修改和优化。 Linux 2.6 内核开发大约是从 2001 年开始,经过三年左右的开发,在 2004 年发布了稳定版本,经过了这几年的测试与改进,已经在桌面 PC 和服务器领域内得到了大量使用,在嵌入式系统上的应用也在不断发展中。 Linux 2.6 版本中与实时性相关的改进主要体现在以下几个方面。

         ⑴ 调度计算的分散性。 2.6 版本中采用了由 Ingo Molnar 实现的调度算法,该算法将进程优先级的计算分散在多处进行,而不是集中在一个统一的调度函数中,这样不仅提高了计算效率,还减小了 CPU 因集中调度计算所消耗的时间,并且使调度器的时间开销是与系统负载无关,是 O(1) 恒定的。

         ⑵ 抢占式内核的支持。 2.6 版本中提供了对抢占式内核的支持,而 2.4 内核是不支持内核抢占的。支持抢占式调度是实时操作系统的标志之一,这也是早期 Linux 系统应用于实时应用时最为诟病的地方。

         ⑶ 系统同步机制的改进。 2.6 内核中则对系统中同步机制的使用进行了优化,大大减小了因同步机制引起的时间消耗。

         ⑷ 更细的时间粒度。在 2.6 内核中,定时器的频率被定义为 1000Hz ,而 2.4 内核中为 100Hz 。

继续阅读
低功耗嵌入式实现的方方面面

任何一个嵌入式设计都是在对电源供电结构进行详尽分析后才能完成的;同样,对于恒定电源供电的有线系统也是如此。处理器和其周边的硬件生态系统的消耗通常占电源的较大比例,因此,这就是所有的“重点”之所在。

评论:飞思卡尔可能失去通讯OEM设计

上世纪90年代初,英特尔凭借基于RISC的控制器设计——i960,在嵌入式通讯市场占有相当大的市场份额。后来首席执行官葛鲁夫决定英特尔不再支持任何不与台式电脑或服务器直接有关的架构,于是英特

新型分布式交通信号灯控制系统

引言要实现道路交通的智能化,就要引入变周期交通信号灯控制技术,实时检测路口的交通流量以及拥塞量等数据,根据规则动态地调节信号灯,获得更加满意的通行率。本文提出了一种具有分布式特征的交通信号灯控制系统设

单片机到嵌入式之路1:简单的讨论一下C语言知识

在单片机中C语言的位操作用的比较多,而且用的好对代码的执行效率都是很有帮助的,下面简单介绍一下在单片机中的应用,就算是抛砖引玉吧。

单片机到嵌入式之路2:单片机部分

几乎很多从事控制代码编写的工程师,第一次接触的控制类项目都是单片机,不论是在学校还是工作了。有了单片机基础,学习其他的单片机和嵌入式都相对要容易些。

精彩活动