位置:51电子网 » 技术资料 » 其它综合

硬实时操作系统-RTLinux

发布时间:2007/8/30 0:00:00 访问次数:1083

    摘要:介绍了RTLinux的两个重点特点:硬实时性和完备性,及其在嵌入式系统应用中的一些重要功能,并结合实时处理的具体实例对其编程方法加以说明。

    关键词:操作系统 实时处理 Linux 嵌入式系统

近年来,基于PC的嵌入式系统得到迅速的发展。在各种不同的操作系统中,由于Linux操作系统的廉价、源代码的开放性以及系统的稳定性,使其在基于PC的嵌入式系统中的应用日益广泛。RTLinux(RealTime Linux)[1]是一种基于Linux的实时操作系统,是由FSMLabs公司(Finite State Machine Labs Inc.)推出的与Linux操作系统共存的硬实时操作系统。它能够创建精确运行的符合POSIX.1b标准的实时进程;并且作为一种遵循GPL v2协议的开放软件,可以达GPL v2协议许可范围内自由地、免费地使用、修改和再发生。本文介绍了RTLinux的特点及功能,并结合一个实时处理的具体实例对其编程方法加以说明。

1 RTLinux的特点

在Linux操作系统中,调度算法(其于最大吞吐量准则)、设备驱动、不可中断的系统调用、中断屏蔽以及虚拟内存的使用等因素,都会导致系统在时间上的不可预测性,决定了Linux操作系统不能处理硬实时任务。RTLinux为避免这些问题,在Linux内核与硬件之间增加了一个虚拟层(通常称作虚拟机),构筑了一个小的、时间上可预测的、与Linux内核分开的实时内核,使得在其中运行的实时进程满足硬实时性。并且RTLinux和Linux构成一个完备的整体,能够完成既包括实时部分又包括非实时部分的复杂任务。

1.1 硬实时性

RTLinux将Linux源码中所有的cli、sti、iret指令分别用宏S_CLI、S_STI、S_IRET替换,引入虚拟层将截取所有的硬件中断,分割Linux系统与硬件中断之间的直接联系。当RTLinux虚拟层接收到与实时处理有关的硬件中断时,立即启动执行相应的实时中断服务程序;而接收到与实时处理无关的中断时,先保存相应的信息,等到RTLinux内核空闲时通过软中断传递给Linux内核去处理,这样就使得RTLinux内核不受各种软、硬件中断的影响,不会造成时间上的不可预测性。同时又区别于其他实时处理方案,它并未对操作系统的内核作结构性的修改,因此并不会妨碍Linux操作系统的进一步发展和变化。

Linux采用基于最大吞吐量准则的调度策略,并不能确保各个实时进程的及时调度。而RTLinux在缺省情况下采用优先级的调度策略,即系统调度器根据各个实时任务的优先级来确定执行的先后次序。优先级高的先执行,优先级低的后执行,这样就保证了实时进程的迅速调度。同时RTLinux也支持其它的调度策略,如最短时限最先调度(EDP)、确定周期调度(RM)(周期短的实时任务具有高的优先级)。RTLinux将任务调度器本身设计成一个可装载的内核模块,用户可以根据自己的实际需要,编写适合自己的调度算法。

操作系统精确的定时机制,可以提高任务调度器的效率,但增加CPU处理定时中断的时间开销。RTLinux采用一种折衷的方案,不将8354定时器设计成10毫秒产生一次定时中断的固定模式,而是根据最近事件(进程)的时间需要,不断调整定时器的定时间隔。这样既可以提供高精度的时间值,又避免过多增加CPU处理定时中断的时间开销。RTLinux系统同时将各时间间隔相加,保持一个系统全局时间变量,并使用软中断的方式来模拟传统的100Hz定时中断,将其传递给Linux系统使用。

1.2 完备性

过去,实时操作系统仅是一组原始的、简单的可执行程序,它所做的仅仅是向应用程序提供一程序库,但如今,实时应用程序通常要求能够支持TCP/IP、图形显示、文件和数据库系统及其它复杂的服务。为了满足当今实时应用程序的多种需求,通常采用在实时控制内核上增加这些服务或完全修改标准操作系统内核的方法,而RTLinux所采用的是一种新型高效

    摘要:介绍了RTLinux的两个重点特点:硬实时性和完备性,及其在嵌入式系统应用中的一些重要功能,并结合实时处理的具体实例对其编程方法加以说明。

    关键词:操作系统 实时处理 Linux 嵌入式系统

近年来,基于PC的嵌入式系统得到迅速的发展。在各种不同的操作系统中,由于Linux操作系统的廉价、源代码的开放性以及系统的稳定性,使其在基于PC的嵌入式系统中的应用日益广泛。RTLinux(RealTime Linux)[1]是一种基于Linux的实时操作系统,是由FSMLabs公司(Finite State Machine Labs Inc.)推出的与Linux操作系统共存的硬实时操作系统。它能够创建精确运行的符合POSIX.1b标准的实时进程;并且作为一种遵循GPL v2协议的开放软件,可以达GPL v2协议许可范围内自由地、免费地使用、修改和再发生。本文介绍了RTLinux的特点及功能,并结合一个实时处理的具体实例对其编程方法加以说明。

1 RTLinux的特点

在Linux操作系统中,调度算法(其于最大吞吐量准则)、设备驱动、不可中断的系统调用、中断屏蔽以及虚拟内存的使用等因素,都会导致系统在时间上的不可预测性,决定了Linux操作系统不能处理硬实时任务。RTLinux为避免这些问题,在Linux内核与硬件之间增加了一个虚拟层(通常称作虚拟机),构筑了一个小的、时间上可预测的、与Linux内核分开的实时内核,使得在其中运行的实时进程满足硬实时性。并且RTLinux和Linux构成一个完备的整体,能够完成既包括实时部分又包括非实时部分的复杂任务。

1.1 硬实时性

RTLinux将Linux源码中所有的cli、sti、iret指令分别用宏S_CLI、S_STI、S_IRET替换,引入虚拟层将截取所有的硬件中断,分割Linux系统与硬件中断之间的直接联系。当RTLinux虚拟层接收到与实时处理有关的硬件中断时,立即启动执行相应的实时中断服务程序;而接收到与实时处理无关的中断时,先保存相应的信息,等到RTLinux内核空闲时通过软中断传递给Linux内核去处理,这样就使得RTLinux内核不受各种软、硬件中断的影响,不会造成时间上的不可预测性。同时又区别于其他实时处理方案,它并未对操作系统的内核作结构性的修改,因此并不会妨碍Linux操作系统的进一步发展和变化。

Linux采用基于最大吞吐量准则的调度策略,并不能确保各个实时进程的及时调度。而RTLinux在缺省情况下采用优先级的调度策略,即系统调度器根据各个实时任务的优先级来确定执行的先后次序。优先级高的先执行,优先级低的后执行,这样就保证了实时进程的迅速调度。同时RTLinux也支持其它的调度策略,如最短时限最先调度(EDP)、确定周期调度(RM)(周期短的实时任务具有高的优先级)。RTLinux将任务调度器本身设计成一个可装载的内核模块,用户可以根据自己的实际需要,编写适合自己的调度算法。

操作系统精确的定时机制,可以提高任务调度器的效率,但增加CPU处理定时中断的时间开销。RTLinux采用一种折衷的方案,不将8354定时器设计成10毫秒产生一次定时中断的固定模式,而是根据最近事件(进程)的时间需要,不断调整定时器的定时间隔。这样既可以提供高精度的时间值,又避免过多增加CPU处理定时中断的时间开销。RTLinux系统同时将各时间间隔相加,保持一个系统全局时间变量,并使用软中断的方式来模拟传统的100Hz定时中断,将其传递给Linux系统使用。

1.2 完备性

过去,实时操作系统仅是一组原始的、简单的可执行程序,它所做的仅仅是向应用程序提供一程序库,但如今,实时应用程序通常要求能够支持TCP/IP、图形显示、文件和数据库系统及其它复杂的服务。为了满足当今实时应用程序的多种需求,通常采用在实时控制内核上增加这些服务或完全修改标准操作系统内核的方法,而RTLinux所采用的是一种新型高效

相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!