时间/事件混合触发的操作系统架构及任务调度方法与流程

文档序号:12463555阅读:956来源:国知局
时间/事件混合触发的操作系统架构及任务调度方法与流程

本发明涉及一种时间触发操作系统架构,具体涉及一种时间/事件混合触发的操作系统架构。还涉及基于时间/事件混合触发的操作系统架构的任务调度方法。



背景技术:

随着嵌入式系统的发展,嵌入式应用变得越来越复杂和多样化。早期,研究人员提出了事件触发机制来保证系统的灵活性和实时性,但可靠性和确定性却不能很好的保证,文章“《Priority Assignment for Event-triggered Systems Using Mathematical Programming》,Design,Automation&Test in Europe Conference&Exhibition(DATE),2013:982-987”提出了一种解决事件触发任务优先级分配的方法,方法将优先级求解问题转化为有约束条件的二次元公式,简化了系统事件触发任务系统的优先级分配为题,但所设计的方法无法保证系统的确定性。后来又提出时间触发机制进行改善,如“《时间触发系统体系结构研究》,计算机工程与设计,2014,06,1956-1961”提出了一种基于ARINC-659总线的时间触发系统体系结构,并给出了可靠性模型,保证了系统的可靠性,但系统的灵活性和实时性相对较差。针对当前部分嵌入式系统中事件触发任务和时间触发任务共存的情况,使用某种单一机制已不能满足系统要求。



技术实现要素:

为了克服现有时间触发系统体系结构实时性差的不足,本发明提供一种时间/事件混合触发的操作系统架构及任务调度方法。本发明根据管理和调度任务的不同,时间/事件混合触发的操作系统架构将系统内核任务模型分为时间触发任务模块和事件触发任务模块,并采用混合任务调度方法,其中时间触发模块占主体地位,主要保证系统的可靠性和确定性。事件触发模块在时间触发模块的空闲时间内处理,提高了系统的灵活性。真正紧要的突发任务则可以使用时间触发模块的中断来实现,保证了系统的实时性,从整体上提高了系统的灵活性、可靠性和实时性性能。

本发明解决其技术问题所采用的技术方案是:一种时间/事件混合触发的操作系统架构,其特点是:包括硬件相关层、操作系统服务层和应用层。所述硬件相关层包括CPU、时钟和设备驱动。所述操作系统服务层包括时间触发任务管理与调度模块和事件触发任务管理与调度模块。所述的时间触发任务管理与调度模块包括同步与通信模块、中断管理模块和错误处理子模块;所述的事件触发任务管理与调度模块包括任务同步与通信模块、资源管理模块、内存管理模块、中断管理模块和报警模块。应用层位于整个系统架构的最上层,包括操作系统配置模块,系统服务API和用户应用程序。所述的时间触发任务管理与调度模块和事件触发任务管理与调度模块之间通过同步与通信机制进行数据的交互,保证两者之间的数据同步。两模块通过硬件访问机制与硬件模块进行数据的交互,保证数据读取和存取的准确进行。

一种基于上述时间/事件混合触发的操作系统架构的任务调度方法,其特点是包括以下步骤:

步骤一、初始化系统中时间触发任务和事件触发任务调度队列,并建立不同运行模式下的静态时间触发任务调度表;

步骤二、启动系统任务调度,检查系统是否启动事件触发任务管理与调度模块,如没有启动,则直接根据静态调度表进行时间触发任务的调度,否则执行步骤三;

步骤三、判断当前时间点是否存在需要激活的时间触发任务,如存在,则进行时间触发任务调度,否则执行步骤四;

步骤四、判断当前任务是否执行完毕,如没有,则不进行任务切换,继续执行;否则检查在恢复链表中是否存在需要恢复执行的时间触发任务,如若存在,则进行时间触发任务的恢复执行;否则执行系统空闲任务,并在空闲任务中判断事件触发任务队列是否为空,如若不为空,则进行事件触发任务调度,否则继续运行空闲任务。

本发明的有益效果是:根据管理和调度任务的不同,时间/事件混合触发的操作系统架构将系统内核任务模型分为时间触发任务模块和事件触发任务模块,并采用混合任务调度方法,其中时间触发模块占主体地位,主要保证系统的可靠性和确定性。事件触发模块在时间触发模块的空闲时间内处理,提高了系统的灵活性。真正紧要的突发任务则可以使用时间触发模块的中断来实现,保证了系统的实时性,从整体上提高了系统的灵活性、可靠性和实时性性能。

本方法采用了时间触发与事件触发分模块管理的方法进行系统架构,解决了单一触发方式不能保证系统可靠性与灵活性的问题,提高了系统的可靠性、灵活性。并在系统内核中采用了新的混合任务调度算法,解决了传统基于时钟中断任务切换方式导致的实时性和系统资源利用率低的问题,提高了系统的资源利用率和实时性。

本方法能够进一步规范基于事件/时间混合触发的实时操作系统内核设计方法和任务调度理论,促进嵌入式实时操作系统软件的设计技术进步,能够更好地完善操作系统理论。

目前基于时间/事件混合触发机制的实时操作系统已经被应用于欧美的航天控制系统中,而国内在这方面的研究尚有不足,因此本发明方法将一定程度上提升我国航空航天等国防关键领域的实力,提升我国在操作系统方面的国际竞争力,打破国外对于我国的技术封锁。

本方法简单易于实现,可以实现快速的技术转换并应用于多种控制领域,具有较好的经济效应。

以下结合附图和实施例详细说明本发明。

附图说明

图1是本发明时间/事件混合触发的操作系统架构框图。

图2是本发明基于时间/事件混合触发的操作系统架构的任务调度方法中时间触发任务调度表;用于任务执行过程中确定任务的调度次序。

图3是本发明基于时间/事件混合触发的操作系统架构的任务调度方法的中断级任务调度流程;用于说明中断级任务调度的具体流程。

图4是本发明基于时间/事件混合触发的操作系统架构的任务调度方法中的任务级任务调度流程;用于说明任务级任务调度的具体流程。

具体实施方式

以下实施例参照图1-4。

本发明时间/事件混合触发的操作系统架构包括三个层次。

应用层。应用层位于整个系统架构的最上层,包括操作系统配置模块,系统服务API和由用户编写的各种实时应用程序。在系统配置模块中,用户可以对混合操作系统所支持的任务的最大数量,任务类型等进行静态配置,使系统能够根据实时系统应用需求的不同,灵活配置系统资源。在系统启动之后,系统内核读取配置模块的配置文件进行系统的配置和参数初始化,保证系统行为符合要求;操作系统API是用户应用程序获取操作系统服务的接口;用户应用程序是由用户编写的用于实现不同功能的程序,可以使用操作系统提供的服务进行任务的处理。

操作系统服务层。操作系统服务层是整个操作系统的核心部分。根据管理任务的类型,可分为相对独立的两大部分:一是时间触发任务管理与调度发模块;二是事件触发任务调度与管理模块。两大模块相对独立,同时又具有紧密的联系。

时间触发任务管理与调度模块主要包括:中断管理模块,错误处理模块和同步与通信模块。时间触发任务管理与调度模块用于实现时间触发任务的创建与初始化,进行任务调度等;中断管理实现系统的开/关中断功能,管理由外围设备产生的各类中断,并进行中断处理;错误处理模块用于完成系统执行过程中产生的各种类型错误的检测和处理,包括超时错误,操作系统内部错误,参数错误等;同步与通信模块用于支持操作系统的分布式应用。

事件触发任务管理与调度模块主要包括:任务间同步与通信模块,资源管理,内存管理,警报等模块。事件触发任务管理与调度模块主要提供事件触发任务的创建,初始化等服务,并根据事件触发任务的优先级和任务状态进行任务的调度与切换。此外,还能与时间触发任务管理模块进行交互;任务同步与通信模块支持事件机制与消息机制,用于事件触发任务,包括信号量,互斥信号量等;在系统创建时,可根据任务类型选择是否支持事件机制;资源管理模块用于协调多个不同优先级任务对于共享资源的互斥性访问,且避免产生优先级反转问题;内存管理模块也是可配置的,可以满足事件触发任务对于内存的动态申请;警报机制用于满足操作系统处理与时间有关的重复事件的需要,在内核中以定时器的方式实现。

硬件相关层。主要包括Xilinx ML507硬件平台的设备驱动,处理器与时钟等设备。系统的应用程序层、操作系统服务层可以与硬件进行信息的交互,包括读取硬件中的信息和通过硬件设备进行必要的信息处理。

为了保证系统内核中任务调度的实时性和灵活性,整个内核的任务管理和调度方法的原则为:

[1]时间触发任务比事件触发任务具有更高的优先级;

[2]时间触发任务在预先确定的时间点开始执行,任务由调度表激活并采用本地时钟作为基准时间;

[3]时间触发任务可以被其他新激活的时间触发任务所抢占;

[4]时间触发任务处于空闲时,事件触发任务开始执行,事件触发任务采用基于优先级的调度策略。

本发明在内核中采用一种新的调度方法进行任务管理,流程如下:

[1]参考图2。确立时间任务调度表和事件任务调度队列。调度表是用于时间触发任务调度的数据结构,不同应用模式对应不同的调度表,每个调度表中包含具有相同周期且触发时间各不相同的一系列时间触发任务。时间触发任务创建时,系统根据任务所属的应用模式将任务关联到不同的调度表中,同一调度表中的时间触发任务按照触发时间从小到大链接为一个单向链表。

[2]根据系统所属的应用模式进行时间触发任务的调度,在没有时间触发任务的时候按照优先级进行事件触发任务的调度。

[3]参考图3。时间触发在运行过程中会在每一次时钟中断中进行任务调度。其具体过程如下所述:

(a)判断时钟节拍是否到达调度窗口的最大值,如果是则开始新的一轮调度,且时钟节拍重置为0,并根据调度表重新进行任务的调度;如若没有达到最大值,则转至b继续运行。

(b)如若还没到下一个时间触发任务的触发时间,当前的时间触发任务还未执行完且执行时间未达到当前级别下的最坏执行时间时,则当前任务继续执行,不进行任务切换;

(c)当前的时间触发任务是高级别安全关键任务,执行时间已达到当前级别下的最坏执行时间而还未执行完时,则系统发生状态切换,提高系统所处关键级别和调度表,根据调度表将下一个执行的任务指针指向高级调度表中下一任务,当前任务继续执行,不进行任务切换;

(d)如果下一个时间触发任务触发,则抢占当前的时间触发任务并进行任务切换;

(e)如果当前时间触发任务已执行完且下一个任务还未到达,则对时间触发模块来说,当前处于空闲时间,将系统切换到事件触发模块,进行事件触发任务的调度和切换。

[4]参考图4。在时间触发任务运行完成而时钟中断没有到来的情况下,调度方法会提前进行任务级的任务切换,而不必等时钟中断到来。其具体执行过程如下所述:

(a)如果恢复链表为空,说明当前所有时间触发任务均已执行完毕,则将系统切换到事件触发模块,进行事件触发任务的调度和切换。

(b)若恢复链表不为空,当前结束任务为恢复链表中最后一个任务,则将当前任务从恢复链表中删除,启动事件触发任务调度和切换。

(c)若恢复链表不为空,当前结束任务不是恢复链表中最后一个任务,将当前任务从恢复链表中删除,然后恢复链表中下一个时间触发任务的执行,进行时间触发任务的任务切换。

(d)若恢复链表不为空,且当前任务不在恢复链表中,则将恢复链表中的第一个任务恢复运行,进行时间触发任务切换。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1