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

文档序号:9349812阅读:377来源:国知局
一种多优先级任务间数据一致性传递方法
【技术领域】
[0001] 本发明涉及一种多优先级任务间数据一致性传递方法。
【背景技术】
[0002] 不同任务间"数据一致性"数据是指其它任务用某一任务的数据时,所用数据都是 该任务在同一个执行周期内产生的数据,这样的数据被定义为任务间具有"数据一致性"的 数据。
[0003] -个处理器内有不同优先等级的任务,任务间有数据交换,在多优先级任务运行 场合,经常会发生高优先级任务打断低优先级任务优先执行的情况,当这两个任务间有数 据传递时有可能发生以下情形:
[0004] (1)假设低优先级任务向高优先级任务传递数列a[n],当高优先级任务打断低优 先级任务时,数据a[0]至a[k]已经被当前执行周期的低优先级任务更新,而因为执行被打 断,a[k]至a[n]的数据未被更新,也就是说它们存储的仍是上一运行周期的数据;高优先 级任务获得执行权后读取低优先级传递的数列a[n],这时这个数列中,前k+1个数据是当 前周期已更新的数据,后面n-k个数据是上一个运行周期更新的数据;如果数列a[n]的数 据有关联的意义,则我们认为这时高优先级任务从低优先级任务读取的数列a[n]不具备 数据一致性特性。
[0005] (2)同样,假设高优先级任务向低优先级任务传递数列b[n],在低优先级任务被 高优先级任务打断前,计算所用的数据是高优先级任务前一个周期所产生的数据;打断后 低优先级任务继续执行时,所用的数据是刚执行完成的高优先级任务所产生的数据;即在 同一个低优先级任务的执行周期内,所用的高优先级任务传递的数据并不是高优先级任务 在同一个执行周期内产生的数据,这样的数据我们认为对低优先级任务而言也不具备数据 一致性特性。
[0006] 以上所述的多优先级任务间数据传递的不一致性,会给对数据有严格关联性要求 的处理带来的不可预测的问题。

【发明内容】

[0007] 本发明的目的是提供一种多优先级任务间数据一致性传递方法,保证多优先级任 务间数据传递的一致性。
[0008] 为了实现以上目的,本发明所采用的技术方案是:一种多优先级任务间数据一致 性传递方法,每个任务设定数量为N的输出缓存区,每个输出缓存区有空闲、最新数据一致 性输出、写入及读取4种状态,每个任务执行以下每个步骤的过程均不被其他任务所中断:
[0009] (1)在每个任务起始,寻找其它任务当前标记为最新数据一致性输出状态的缓存 区,置该任务的读取标记,当前任务从该缓存区中读取一致性数据;
[0010] (2)当任务读取完数据,清所被读取缓存区的读取标记;
[0011] (3)在每个任务起始,寻找该任务空闲状态的数据缓存区,置为写入状态,用于当 前任务写入该周期产生的数据一致性输出数据;
[0012] (4)当任务完成数据一致性输出数据的写入工作后,标记最新写入的数据一致性 数据的缓存区为最新数据一致性输出缓存区,并清旧的最新数据一致性输出标记。
[0013] 输出缓存区N的取值范围为:N多Tlciw pi4c]+2,其中,Tlciw 。是指运行优先级比该任 务低的有数据一致性传递需求的任务数量。
[0014] 所述输出缓存区的空闲状态是指缓存区即不为最新数据一致性输出状态,也不为 写入或读取状态;最新数据一致性输出是指该缓存区存放了该任务的最新数据一致性输出 数据,可以被其它任务读取;写入状态是指该缓存区为当前任务在当前周期要写入数据的 缓存区;所述读取状态是指其它任务被该任务读取的数据缓存区。
[0015] 本发明多优先级任务间数据一致性传递方法通过给每个任务设定一定数量的输 出缓存区,保证在最极限情况下,该任务仍然可以有一个缓存区用于写入输出数据;每个输 出缓存区有空闲、最新数据一致性输出、写入及读取4种状态,在每个任务的起始,寻找其 它任务当前标记为最新数据一致性输出状态的缓存区并从该缓存区中读取数据;同时从该 缓存区中读取数据用于当前任务写入该周期产生的输出数据;在执行过程中保持其连贯 性,从而保证多优先级任务间数据一致性的传递。
【附图说明】
[0016] 图1是多优先级任务间数据一致性传递控制方法实施例的示意图。
【具体实施方式】
[0017] 下面结合附图及具体的实施例对本发明进行进一步介绍。
[0018] 本发明通过一种合理的任务间数据传递的机制实现多优先级任务间数据一致性 的传递,这里的任务间数据传递的机制,包括内存区的设置和内存区的管理两部分。
[0019]内存区设置有如下特性:每个任务需要设置一定数量的输出缓存区,多缓存区的 设置用于保证在最极限情况下,该任务仍然可以有一个缓存区用于写入输出数据;每个任 务输出缓存区数量N决定于在执行的程序中有多少个比它优先级低的任务(T lciwimci)从这 个任务中读取数据。每个任务的输出缓存区数量(N)的设置原则如下:
[0020] N ^ Tlow prio+2
[0021] 其中,Tlciw 是指运行优先级比该任务低的有数据一致性传递需求的任务数量, 即N大于等于从该任务读取数据的且优先级比它低的任务数量再加2个缓存区;
[0022] 内存区管理有如下特性:每个输出缓存区有空闲、最新数据一致性输出、写入及读 取4种状态,各种状态有以下具体解释:
[0023]
[0025] 本发明的多优先级任务间数据一致性传递方法,每个任务设定数量为N的输出缓 存区,每个输出缓存区有空闲、最新数据一致性输出、写入及读取4种状态,每个任务执行 以下每个步骤的过程均不被其他任务所中断:
[0026] (1)在每个任务起始,读取其它任务的一致性输出数据前,锁定其它任务当前标记 为最新数据一致性输出状态的缓存区,标记为读取状态,当前任务从该缓存区中读取一致 性数据;
[0027] (2)当任务完成对读取缓存区的数据读取后,释放读取标记;
[0028] (3)在每个任务起始,产生该任务具有数据一致性的数据前,寻找该任务空闲状态 的数据缓存区,置为写入状态,用于当前任务写入该周期产生的数据一致性输出数据;
[0029] (4)当任务完成数据一致性输
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1