飞机机载可信计算平台的任务调度方法与流程

文档序号:17749571发布日期:2019-05-24 20:52阅读:532来源:国知局
飞机机载可信计算平台的任务调度方法与流程

本发明属于计算机技术领域,更进一步涉及航空电子技术领域中的一种飞机机载可信平台的任务调度方法。本发明可应用在搭载有可信计算平台的飞控计算机上,对计算资源进行合理分配,使得可信软件栈中的任务能够及时得到执行。



背景技术:

对于具有高安全性要求的飞机机载计算系统,有必要向其添加一个可信平台模块TPM,以增强该系统的安全性。由于TPM硬件只能串行处理任务请求,而不能同时处理多个任务请求;且硬件平台针对不同的任务请求所需的处理时间不同。因此需要设计有效的调度算法,保证不同优先级的任务得到有效和及时的处理。现有调度方法大多根据任务优先级判定执行顺序。

惠州TCL移动通信有限公司在其申请的专利“一种任务的实时调度实现方法及系统”(专利申请号201510302282.5,公开号104915256A)中公开了一种任务的实时调度实现方法。其方法的步骤包括:1,创建新任务时,执行该任务,并判断等待调度队列中执行优先级最高的任务是否大于新任务优先级;2.当大于时,切换新任务至等待队列,并将等待调度队列中执行优先级最高的任务调入CPU运行。该方法存在的不足之处是,该方法仅针对可中断的任务,且仅通过优先级对任务进行调度,该方法实现简单,不具备调节机制,若某任务执行时间长且优先级高容易造成整个系统的瘫痪。

广州华多网络科技有限公司在其申请的专利“一种基于HIVE任务的任务调度方法”(专利申请号201410831524.5,公开号104536811A)中公开了一种基于HIVE任务的任务调度方法。该方法包括:确定需要进行调度的多个任务及各个任务之间的依赖关系;根据依赖关系确定各个任务的前置依赖任务及后置依赖任务;在所有需要进行调度的任务中选择当前需要调度的任务,得到被选任务;根据被选任务的前置依赖任务的调度结果对被选任务进行调度;按照选择被选任务的方式及调度被选任务的方式处理被选任务的后置依赖任务及所有未调度的任务,直至调度完所有需要进行调度的任务。该方法存在的不足之处是,由于该方法通过对待调度任务的前置及后置任务分析确定执行顺序,以使任务有序执行,因此需要调度系统能实时获取任务之间存在的依赖关系,且没有考虑到任务优先级,容易由于某些任务的前置、后置任务繁杂使重要任务迟迟得不到执行。

对于机载可信平台模块TPM及其可信软件栈TSS而言,存在以下问题:(1)硬件平台只能串行处理任务请求,而不能同时处理多个任务请求;(2)硬件平台针对不同的任务请求所需的处理时间不同。而同时,可能存在多个上层应用程序同时向可信平台模块TPM发送任务请求。因此需要设计有效的调度算法,保证不同优先级的任务得到有效和及时的处理。



技术实现要素:

本发明的目的是为了克服上述现有技术存在问题,提出一种为飞机机载嵌入式可信平台提供一种任务调度方法。

本发明实现的基本思路是:使用任务等待队列对可信任务请求进行排序,提供多线程同步机制以访问仅允许单线程访问的可信平台模块TPM;并根据任务错过率动态调整可信任务请求的任务优先级,合理利用可信计算模块的硬件资源,

为实现上述目的,本发明的具体步骤如下:

(1)建立相关调度线程:

(1a)设置一个任务等待队列;

(1b)初始化飞机机载可信计算平台,在机载计算机嵌入式实时操作系统中分别建立一个接收线程、一个分发线程、一个监控线程;

(2)接收用户的可信任务请求:

(2a)多个用户并行向飞机机载可信计算平台发送可信任务请求,接收线程持续性地监听可信任务请求;

(2b)对接收线程监听到的每个可信任务请求,使用任务优先级计算公式,计算每个可信任务请求的任务优先级,得到初始任务优先级;

(2c)将计算过初始任务优先级的可信任务请求加入到任务等待队列中;

(3)分发可信任务并执行:

(3a)分发线程遍历任务等待队列,取出任务等待队列中任务优先级最高的可信任务请求;

(3b)分发线程将任务优先级最高的可信任务请求分发至可信平台模块中的功能模块,执行任务优先级最高的可信任务请求,分发线程阻塞;功能模块将可信任务请求的执行结果返回给发送可信任务请求的用户后,分发线程停止阻塞;

(4)更新任务优先级:

(4a)监控线程每经过T个时间片,利用任务错过率公式,计算一次当前任务错过率,并将计算结果反馈给分发线程,其中,T表示执行一个可信任务平均所需要的时间片的个数;

(4b)分发线程遍历任务等待队列,使用任务优先级计算公式,计算每个可信任务请求的任务优先级,得到反馈任务优先级;

(5)计算预期时长:

计算可信任务请求排队时间与任务执行时间之和,得到预期时长;

(6)判断预期时长是否大于可信任务请求中所包含的超时时长:若是,则执行步骤(7),否则,执行步骤(8);

(7)删除超时的可信任务请求,向发送可信任务请求的用户返回超时;

(8)增大任务优先级:

(8a)按照下式,根据每个可信任务在任务队列中等待的时间增大每个可信任务请求的任务优先级:

其中,TPi'表示第i个可信任务请求增大后的任务优先级,TPi表示第i个可信任务请求的任务优先级,WTi表示第i个可信任务请求在任务队列中等待的时间,T表示执行一个可信任务平均所需要时间片的个数,Δt表示时间片的长度;

(8b)用计算得到的增大的任务优先级替换原任务优先级。

本发明与现有技术相比具有以下优点:

第一,由于本发明通过更新任务优先级,实现了可信任务请求优先级的动态调整,克服了现有技术中任务的实时调度实现方法仅根据静态优先级对所有任务进行排序,不具备调节机制的缺点,解决了多个用户同时发起可信任务请求的排序问题,使得本发明任务调度更加合理,更有效的利用飞机机载计算平台。

第二,由于本发明通过判断可信任务在队列中排队时间与任务执行时间之和是否大于超时设定时长,实现了任务超时判断与增大等待时间较长的任务优先级,克服了现有技术中任务调度实现方法中由于某任务执行时间长且优先级高容易造成整个系统的瘫痪的缺点,使得本发明能够使优先级较低的任务也能在等待一段时间后得到执行。

第三,由于本发明采用任务等待队列对可信任务请求进行调度,针对可信平台模块TPM仅允许单线程访问的特点,提供了多线程同步机制,克服了现有技术中任务的调度实现方法仅支持可中断任务的缺陷,使得本发明避免了多个任务请求对硬件的同时访问而造成数据丢失问题。

附图说明

图1为本发明的流程图。

具体实施方式

参照附图1,本发明的具体步骤如下。

步骤1,建立相关调度线程。

设置一个任务等待队列。

机载可信计算平台初始化时,在机载计算机嵌入式实时操作系统中分别建立一个接收线程、一个分发线程、一个监控线程。

调度组件以服务线程的形式常驻系统,在机载可信计算平台启动时一同启动,实时维护任务等待队列。接收线程负责监听并发任务请求,分发线程负责从任务等待队列中取出优先级最高的节点送往可信平台模块执行,监控线程统计任务状态信息并反馈给分发线程,这些信息可用于动态调整任务优先级。

步骤2,接收用户的可信任务请求。

多个用户并行向机载可信计算平台发送可信任务请求,接收线程持续性监听可信任务请求。

所述的用户并行发送可信任务请求包括可信请求部分、结果返回地址、任务的关键性、超时时长、任务执行所需时间。

对接收线程监听到的每个可信任务请求,使用任务优先级计算公式,计算每个可信任务请求的任务优先级,得到初始任务优先级。

所述的任务优先级计算公式如下:

其中,TPi表示第i个可信任务请求的任务优先级,C表示可信任务请求所包含的任务的关键性,a0表示任务的关键性的系数,其取值范围为[0,1],TET表示可信任务请求中所包含的任务执行所需时间,k表示调整任务执行所需时间与任务的关键性C处于同一数量级的调控参数,a1表示任务执行时间的系数,其取值范围为[0,1]。经过调控,当一个任务越关键,执行任务用时越短,则任务优先级越高。

将计算过任务初始任务优先级的可信任务请求加入到任务等待队列中。

步骤3,分发可信任务并执行。

分发线程遍历任务等待队列,取出任务等待队列中任务优先级最高的可信任务请求。

分发线程在取出任务等待队列中节点后进行审计分析,若为合法请求,则依据可信请求码为请求分发至相应可信平台模块的相应功能模块,执行任务优先级最高的可信任务请求,分发线程阻塞;功能模块将可信任务请求的执行结果返回给发送可信任务请求的用户后,分发线程停止阻塞。

步骤4,更新任务优先级。

监控线程每经过T个时间片,利用任务错过率公式,计算一次当前任务错过率,并将计算结果反馈给分发线程,其中,T表示执行一个可信任务平均所需要的时间片个数。

所述的任务错过率TMR的计算公式如下:

其中,TMR表示任务错过率,m表示由监控线程在可信任务超时时记录的错过时限的可信任务总数,f表示由监控线程在可信任务正常执行返回结果时记录在时限内完成的可信任务总数。

易知,TMR的值域为[0,1],当其为0时表示所有任务都能够按时得到服务,从而只需根据任务的关键性对可信请求进行调度即可;而当TMR增大时,加强对任务执行时间的重视程度,即增加a1,以此实现在系统繁忙时能够调度优先执行时间相对较短的任务使大部分任务能够按时得到执行;

分发线程在遍历任务等待队列时,根据任务错过率调整任务的关键性的系数a0与任务执行时间的系数a1,令a0=1-TMR,a1=TMR,使用任务优先级计算公式,计算每个任务的反馈任务优先级。

所述的任务优先级计算公式如下:

其中,TPi表示第i个可信任务请求的任务优先级,C表示可信任务请求所包含的任务的关键性,a0表示任务的关键性的系数,其取值范围为[0,1],TET表示可信任务请求中所包含的任务执行所需时间,k表示调整任务执行所需时间与任务的关键性C处于同一数量级的调控参数,a1表示任务执行时间的系数,其取值范围为[0,1]。

用计算得到的反馈任务优先级替换初始任务优先级。

步骤5,分发线程计算可信任务在队列中排队时间与任务执行时间之和,得到预期时长。

步骤6,判断预期时长是否大于可信任务请求中所包含的超时设定时长:若是,则执行步骤(7),否则,执行步骤(8)。

步骤7,删除超时节点,向发送可信任务请求的用户返回超时。

步骤8,增大任务优先级。

按照下式,根据可信任务在任务队列中等待的时间增大每个任务的优先级:

其中,TPi'表示第i个可信任务请求增大后的任务优先级,TPi表示第i个可信任务请求的任务优先级,WTi表示第i个可信任务请求在任务队列中等待的时间,T表示执行一个可信任务平均所需要时间片的个数,Δt表示时间片的长度。

用计算得到的增大的任务优先级替换任务优先级。

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