一种多优先级任务间数据一致性传递方法技术

技术编号:12350438 阅读:88 留言:0更新日期:2015-11-19 01:30
本发明专利技术公开了一种多优先级任务间数据一致性传递方法,通过给每个任务设定一定数量的输出缓存区,保证在最极限情况下,该任务仍然可以有一个缓存区用于写入输出数据;每个输出缓存区有空闲、最新数据一致性输出、写入及读取4种状态,在每个任务的起始,寻找其它任务当前标记为最新数据一致性输出状态的缓存区并从该缓存区中读取数据;同时从该缓存区中读取数据用于当前任务写入该周期产生的输出数据;在执行过程中保持其连贯性,从而保证多优先级任务间数据一致性的传递。

【技术实现步骤摘要】

本专利技术涉及。
技术介绍
不同任务间"数据一致性"数据是指其它任务用某一任务的数据时,所用数据都是 该任务在同一个执行周期内产生的数据,这样的数据被定义为任务间具有"数据一致性"的 数据。 -个处理器内有不同优先等级的任务,任务间有数据交换,在多优先级任务运行 场合,经常会发生高优先级任务打断低优先级任务优先执行的情况,当这两个任务间有数 据传递时有可能发生以下情形: (1)假设低优先级任务向高优先级任务传递数列a,当高优先级任务打断低优 先级任务时,数据a至a已经被当前执行周期的低优先级任务更新,而因为执行被打 断,a至a的数据未被更新,也就是说它们存储的仍是上一运行周期的数据;高优先 级任务获得执行权后读取低优先级传递的数列a,这时这个数列中,前k+1个数据是当 前周期已更新的数据,后面n-k个数据是上一个运行周期更新的数据;如果数列a的数 据有关联的意义,则我们认为这时高优先级任务从低优先级任务读取的数列a不具备 数据一致性特性。 (2)同样,假设高优先级任务向低优先级任务传递数列b,在低优先级任务被 高优先级任务打断前,计算所用的数据是高优先级任务前一个周期所产生的数据;打断后 低优先级任务继续执行时,所用的数据是刚执行完成的高优先级任务所产生的数据;即在 同一个低优先级任务的执行周期内,所用的高优先级任务传递的数据并不是高优先级任务 在同一个执行周期内产生的数据,这样的数据我们认为对低优先级任务而言也不具备数据 一致性特性。 以上所述的多优先级任务间数据传递的不一致性,会给对数据有严格关联性要求 的处理带来的不可预测的问题。【专利
技术实现思路
】 本专利技术的目的是提供,保证多优先级任 务间数据传递的一致性。 为了实现以上目的,本专利技术所采用的技术方案是:一种多优先级任务间数据一致 性传递方法,每个任务设定数量为N的输出缓存区,每个输出缓存区有空闲、最新数据一致 性输出、写入及读取4种状态,每个任务执行以下每个步骤的过程均不被其他任务所中断: (1)在每个任务起始,寻找其它任务当前标记为最新数据一致性输出状态的缓存 区,置该任务的读取标记,当前任务从该缓存区中读取一致性数据; (2)当任务读取完数据,清所被读取缓存区的读取标记; (3)在每个任务起始,寻找该任务空闲状态的数据缓存区,置为写入状态,用于当 前任务写入该周期产生的数据一致性输出数据; (4)当任务完成数据一致性输出数据的写入工作后,标记最新写入的数据一致性 数据的缓存区为最新数据一致性输出缓存区,并清旧的最新数据一致性输出标记。 输出缓存区N的取值范围为:N多Tlciw pi4c]+2,其中,Tlciw 。是指运行优先级比该任 务低的有数据一致性传递需求的任务数量。 所述输出缓存区的空闲状态是指缓存区即不为最新数据一致性输出状态,也不为 写入或读取状态;最新数据一致性输出是指该缓存区存放了该任务的最新数据一致性输出 数据,可以被其它任务读取;写入状态是指该缓存区为当前任务在当前周期要写入数据的 缓存区;所述读取状态是指其它任务被该任务读取的数据缓存区。 本专利技术多优先级任务间数据一致性传递方法通过给每个任务设定一定数量的输 出缓存区,保证在最极限情况下,该任务仍然可以有一个缓存区用于写入输出数据;每个输 出缓存区有空闲、最新数据一致性输出、写入及读取4种状态,在每个任务的起始,寻找其 它任务当前标记为最新数据一致性输出状态的缓存区并从该缓存区中读取数据;同时从该 缓存区中读取数据用于当前任务写入该周期产生的输出数据;在执行过程中保持其连贯 性,从而保证多优先级任务间数据一致性的传递。【附图说明】 图1是多优先级任务间数据一致性传递控制方法实施例的示意图。【具体实施方式】 下面结合附图及具体的实施例对本专利技术进行进一步介绍。 本专利技术通过一种合理的任务间数据传递的机制实现多优先级任务间数据一致性 的传递,这里的任务间数据传递的机制,包括内存区的设置和内存区的管理两部分。内存区设置有如下特性:每个任务需要设置一定数量的输出缓存区,多缓存区的 设置用于保证在最极限情况下,该任务仍然可以有一个缓存区用于写入输出数据;每个任 务输出缓存区数量N决定于在执行的程序中有多少个比它优先级低的任务(T lciwimci)从这 个任务中读取数据。每个任务的输出缓存区数量(N)的设置原则如下: N ^ Tlow prio+2 其中,Tlciw 是指运行优先级比该任务低的有数据一致性传递需求的任务数量, 即N大于等于从该任务读取数据的且优先级比它低的任务数量再加2个缓存区; 内存区管理有如下特性:每个输出缓存区有空闲、最新数据一致性输出、写入及读 取4种状态,各种状态有以下具体解释: 本专利技术的多优先级任务间数据一致性传递方法,每个任务设定数量为N的输出缓 存区,每个输出缓存区有空闲、最新数据一致性输出、写入及读取4种状态,每个任务执行 以下每个步骤的过程均不被其他任务所中断: (1)在每个任务起始,读取其它任务的一致性输出数据前,锁定其它任务当前标记 为最新数据一致性输出状态的缓存区,标记为读取状态,当前任务从该缓存区中读取一致 性数据; (2)当任务完成对读取缓存区的数据读取后,释放读取标记; (3)在每个任务起始,产生该任务具有数据一致性的数据前,寻找该任务空闲状态 的数据缓存区,置为写入状态,用于当前任务写入该周期产生的数据一致性输出数据; (4)当任务完成数据一致性输当前第1页1 2 本文档来自技高网
...

【技术保护点】
一种多优先级任务间数据一致性传递方法,其特征在于:每个任务设定数量为N的输出缓存区,每个输出缓存区有空闲、最新数据一致性输出、写入及读取4种状态,每个任务执行以下每个步骤的过程均不被其他任务所中断:(1)在每个任务起始,寻找其它任务当前标记为最新数据一致性输出状态的缓存区,置该任务的读取标记,当前任务从该缓存区中读取一致性数据;(2)当任务读取完数据,清所被读取缓存区的读取标记;(3)在每个任务起始,寻找该任务空闲状态的数据缓存区,置为写入状态,用于当前任务写入该周期产生的数据一致性输出数据;(4)当任务完成数据一致性输出数据的写入工作后,标记最新写入的数据一致性数据的缓存区为最新数据一致性输出缓存区,并清旧的最新数据一致性输出标记。

【技术特征摘要】

【专利技术属性】
技术研发人员:曾丽丽李延龙王柏恒沈开奎张望
申请(专利权)人:许继电气股份有限公司许继集团有限公司国家电网公司
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1