[发明专利]浮点上下文切换方法在审
申请号: | 201310637429.7 | 申请日: | 2013-11-28 |
公开(公告)号: | CN104679585A | 公开(公告)日: | 2015-06-03 |
发明(设计)人: | 张东;叶宏;韩炜;时磊;李运喜;任晓瑞;陈晓磊;卫一芃;曹原;仝敏 | 申请(专利权)人: | 中国航空工业集团公司第六三一研究所 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/46 |
代理公司: | 西安智邦专利商标代理有限公司 61211 | 代理人: | 姚敏杰 |
地址: | 710119 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 浮点 上下文 切换 方法 | ||
技术领域
本发明属于计算机软件控制领域,涉及一种浮点上下文切换方法。
背景技术
在机载嵌入式实时操作系统中,用户通常需要把浮点任务和非浮点任务配合使用,但是如果操作系统对每一个任务均的浮点上下文均进行切换则会造成大量的系统开销,影响系统性能,需要提出新的浮点任务和非浮点任务切换方法,为混合任务环境下任务的高效切换提供可能。
发明内容
为了解决背景技术中存在的浮点任务和非浮点任务混和调度的问题,本发明提供了一种可提高任务切换的性能的浮点上下文切换方法。
本发明的技术解决方案是:本发明提供了一种浮点上下文切换方法,其特殊之处在于:所述浮点上下文切换方法包括以下步骤:
1)创建任务;所述任务包括前继任务以及后继任务;所述前继任务是被切换出处理器的任务;所述后继任务是切换进处理器的任务;
2)根据用户输入的参数判断步骤1)中创建的任务是否是浮点任务;若是,申请浮点上下文空间并将该空间的首地址记录在任务控制块中的成员fpContext中;若否,则设置任务控制块中的成员fpContext为NULL;
3)判断前继任务和后继任务的类型;
4)根据前继任务和后继任务的类型对浮点上下文进行切换。
上述步骤3)中前继任务和后继任务的类型包括:浮点任务切换到浮点任务、浮点任务切换到非浮点任务、非浮点任务切换到浮点任务以及非浮点任务切换到非浮点任务。
上述步骤3)中的类型是浮点任务切换到浮点任务时,所述步骤4)的具体实现方式是:对浮点任务的上下文进行保存和恢复。
上述步骤3)中的类型是浮点任务切换到非浮点任务时,所述步骤4)的具体实现方式是:暂时不进行浮点上下文的保存,将前继任务控制块中的成员fpContext传递给后继任务,仅将浮点任务的浮点上下文地址传递给了非浮点任务,将该保存工作推迟到切换浮点任务时才进行。
上述步骤4)中将前继任务控制块中的成员fpContext传递给后继任务的具体实现方式是将前继任务控制块中的成员fpContext进行标记后赋值给后继任务控制块中的成员fpContext。
上述步骤3)中的类型是非浮点任务切换到浮点任务时,所述步骤4)的具体实现方式是:
4.1)判断前继任务控制块中的成员fpContext是否为NULL;若是,则进行步骤4.2);若否,则进行步骤4.3);
4.2)在该任务运行前,没有运行过浮点任务:不需要进行浮点上下文的保存工作,仅需要恢复浮点上下文;
4.3)在该任务运行前运行过浮点任务:如果前继任务的浮点上下文与后继任务的浮点上下文不一致,则将浮点上下文保存到前继任务控制块所传递的上下文地址中,并清除前继任务控制块中的标记,恢复后继任务的浮点上下文,否则清除前继任务的浮点上下文。
上述步骤3)中的类型是非浮点任务切换到非浮点任务时,所述步骤4)的具体实现方式是:
4.1)判断前继任务控制块中的成员fpContext是否是NULL;若是,则进行步骤4.2);若否,则进行步骤4.3);
4.2)在该任务运行前,没有运行过浮点任务;既不需要进行浮点上下文保存也不需要进行浮点上下文恢复;
4.3)在该任务运行前运行过浮点任务,将前继任务的浮点上下文传递到后继任务。
上述步骤4.3)中将前继任务的浮点上下文传递到后继任务的具体实现方式是将前继任务控制块中的成员fpContext的值赋给后继任务控制块中的成员fpContext,然后清除前继任务控制块中的fpContext。
本发明的优点是:
本发明是仅在需要切换浮点上下文时进行切换,即仅在切换浮点任务时才切换浮点上下文。具体来说就是如果被切换的是非浮点任务,那么认为在该任务中不会破坏浮点上下文,即不需要保存浮点上下文,直到切换到浮点任务时才进行浮点上下文的保存和恢复工作,有效的提高了操作系统任务切换的性能。
附图说明
图1是本发明所提供方法的流程示意图。
具体实施方式
在任务创建时,判断用户输入的参数,如果是浮点任务,那么申请浮点上下文空间并将该空间的首地址记录在任务控制块中的成员fpContext中;否则设置该成员为NULL。
在任务切换时(称被切换出处理器的任务为前继任务,称切换进处理器的任务为为后继任务),可能会发生以下四种情况:
1、浮点任务切换到浮点任务:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空工业集团公司第六三一研究所;,未经中国航空工业集团公司第六三一研究所;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310637429.7/2.html,转载请声明来源钻瓜专利网。