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

文档序号:9349812阅读:来源:国知局
出数据的写入工作后,清写入标记,标记最新写入 的数据一致性数据的缓存区为最新数据一致性输出缓存区,清旧的最新数据一致性输出标 记。
[0030] 以上每一步骤的执行,需要有完整的连贯性,执行过程不被其它任务打断。
[0031] 以如图1所示的传递过程为例进行说明:假设在程序中有3个不同优先级的任 务Tl,T2, T3(优先级从高到低),这3个任务两两任务间均有需要数据一致性特性的数据 传递,按任务开辟的输出缓存区数量设置原则,Tl,T2, T3任务输出的缓存区数量可分别为 (按最少数量设计):
[0032] T1:N =2+2 = 4 ;T2:N = 1+2 = 3 ;T3:N = 0+2 = 2;
[0033] 若Tl,T2, T3的运行关系如图1所示,Tl任务周期为TO, T3在第1个TO启动,T2 在第2个TO启动,T3在运行过程中被T1,T2中断。假设任务在起始时开始读写数据,任务 结束时完成数据读写,那么数据一致性传递过程按如下步骤执行:
[0034] 礙点,Tl任务开始执行:
[0035] Tl锁定其它任务,即T2, T3任务的最新数据一致性输出缓存区,标记为读取状态; Tl寻找空闲缓存区,标记为写入状态,用于该运行周期的数据写入。
[0036] 赵点,Tl任务执行完成,T3任务开始执行:
[0037] Tl任务释放对T2, T3任务的读取标记;Tl任务标记缓存区2为最新数据一致性输 出缓存区,清缓存区1的最新数据一致性输出缓存区标记;
[0038] T3任务锁定Tl, T2任务的最新数据一致性输出缓存区,标记读取状态;T3任务寻 找空闲缓存区,标记为写入状态,用于T3任务的数据写入。
[0039] ?点,Tl任务打断T3任务优先执行,T3任务被挂起:
[0040] 与@点类似,Tl锁定T2, T3任务当前最新数据一致性输出缓存区,标记为读取状 态;同时寻找本任务的空闲缓存区,标记为写入状态;这时,T2任务的最新数据一致性输出 缓存区同时被Tl,T3任务锁定;T3任务被挂起,保持#点状态。
[0041] 感点,Tl任务执行完成,T2任务开始执行,T3任务依然被挂起:
[0042] Tl任务释放对T2, T3任务的读取标记;Tl任务标记缓存区1为最新数据一致性输 出缓存区,清旧数据一致性缓存区标记;
[0043] T2任务锁定Tl,T3任务的最新数据一致性输出缓存区,标记读取状态;T2任务寻 找空闲缓存区,标记为写入状态;
[0044] T3任务被挂起,保持#点状态。
[0045] 缝点,T2任务执行完成,T3任务继续执行:
[0046] T2任务释放对Tl,T3任务的读取标记;T2任务标记缓存区2为最新数据一致性输 出缓存区,清旧数据一致性缓存区标记;
[0047] T3任务保持(6)点状态。
[0048] 悉点,T3任务执行完成:
[0049] T3任务释放对Tl,T2任务的读取标记;T3任务标记缓存区2为最新数据一致性输 出缓存区,清旧数据一致性缓存区标记。
[0050] 勝点,Tl任务开始执行:
[0051]与?点类似,Tl锁定T2,T3任务当前最新数据一致性输出缓存区,标记为读取状 态;同时寻找本任务的空闲缓存区,标记为写入状态。
[0052] 至此即完成了多优先级任务间数据一致性的传递过程。
[0053] 以上实施例仅用于帮助理解本发明的核心思想,不能以此限制本发明,对于本领 域的技术人员,凡是依据本发明的思想,对本发明进行修改或者等同替换,在【具体实施方式】 及应用范围上所做的任何改动,均应包含在本发明的保护范围之内。
【主权项】
1. 一种多优先级任务间数据一致性传递方法,其特征在于:每个任务设定数量为N的 输出缓存区,每个输出缓存区有空闲、最新数据一致性输出、写入及读取4种状态,每个任 务执行以下每个步骤的过程均不被其他任务所中断: (1) 在每个任务起始,寻找其它任务当前标记为最新数据一致性输出状态的缓存区,置 该任务的读取标记,当前任务从该缓存区中读取一致性数据; (2) 当任务读取完数据,清所被读取缓存区的读取标记; (3) 在每个任务起始,寻找该任务空闲状态的数据缓存区,置为写入状态,用于当前任 务写入该周期产生的数据一致性输出数据; (4) 当任务完成数据一致性输出数据的写入工作后,标记最新写入的数据一致性数据 的缓存区为最新数据一致性输出缓存区,并清旧的最新数据一致性输出标记。2. 根据权利要求1所述的多优先级任务间数据一致性传递方法,其特征在于:输出缓 存区N的取值范围为:N彡Tlciw _。+2,其中,Tlciw _。是指运行优先级比该任务低的有数据一 致性传递需求的任务数量。3. 根据权利要求1或2所述的多优先级任务间数据一致性传递方法,其特征在于:所 述输出缓存区的空闲状态是指缓存区即不为最新数据一致性输出状态,也不为写入或读取 状态;最新数据一致性输出是指该缓存区存放了该任务的最新数据一致性输出数据,可以 被其它任务读取;写入状态是指该缓存区为当前任务在当前周期要写入数据的缓存区;所 述读取状态是指其它任务被该任务读取的数据缓存区。
【专利摘要】本发明公开了一种多优先级任务间数据一致性传递方法,通过给每个任务设定一定数量的输出缓存区,保证在最极限情况下,该任务仍然可以有一个缓存区用于写入输出数据;每个输出缓存区有空闲、最新数据一致性输出、写入及读取4种状态,在每个任务的起始,寻找其它任务当前标记为最新数据一致性输出状态的缓存区并从该缓存区中读取数据;同时从该缓存区中读取数据用于当前任务写入该周期产生的输出数据;在执行过程中保持其连贯性,从而保证多优先级任务间数据一致性的传递。
【IPC分类】G06F9/48, G06F9/54
【公开号】CN105068877
【申请号】CN201510411269
【发明人】曾丽丽, 李延龙, 王柏恒, 沈开奎, 张望
【申请人】许继电气股份有限公司, 许继集团有限公司, 国家电网公司
【公开日】2015年11月18日
【申请日】2015年7月14日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1