[发明专利]上下文信息管理方法及系统有效
申请号: | 201310589625.1 | 申请日: | 2013-11-20 |
公开(公告)号: | CN103593606A | 公开(公告)日: | 2014-02-19 |
发明(设计)人: | 张阳;刘博;王载琼 | 申请(专利权)人: | 北京经纬恒润科技有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F12/02 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 魏晓波 |
地址: | 100101 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 上下文 信息管理 方法 系统 | ||
技术领域
本申请涉及嵌入式系统技术领域,特别是涉及一种实时操作系统中的上下文信息管理方法及系统。
背景技术
目前,嵌入式电子行业多采用嵌入式实时操作系统(以下简称操作系统)来开发和设计不同用途的嵌入式控制器。操作系统的核心功能是任务调度,即根据任务优先级管理系统中所有任务的状态转换和执行顺序。操作系统进行调度时,将这一时刻所有处于就绪状态的任务依据优先级进行仲裁,优先级最高的任务将进入到运行状态开始执行。同一时间操作系统只能有一个任务处于运行状态。操作系统在进行调度时,如果已经有任务处于运行状态,那么处于运行状态的任务也将参与任务调度。若这一时刻处于就绪状态的任务中有优先级高于当前处于运行状态的任务,当前处于运行状态的任务将被高优先级的任务抢占,返回到就绪状态中,高优先级的任务则进入到运行状态开始执行。被抢占的任务直到下一次变为系统中优先级最高的任务时,才会从就绪状态返回到运行状态,从之前被抢占的位置继续执行。在任务发生抢占的过程中,由于被抢占的任务无法继续运行,所以需要保存被抢占的任务继续运行所需要的上下文信息。
任务运行过程中的临时数据和任务切换过程中的上下文信息都是保存在堆栈中,因此,需要用户在分配任务堆栈的容量时,既要了解保存任务执行过程中的临时数据需要多少堆栈空间,同时要了解保存任务的上下文信息需要多少堆栈空间。对于前者,用户在任务中添加应用程序时比较容易统计,后者由于与芯片类型和操作系统本身的软件实现强相关,用户很难对其做出正确预估,在这种情况下,用户在使用操作系统时,容易造成由于对任务堆栈的容量分配不足导致发生任务堆栈溢出。堆栈溢出是指需要在堆栈中保存的内容总量大于堆栈总的容量。当任务堆栈发生溢出时,超出堆栈总容量的上下文信息就无法正常保存和重新装载了。
因此,如何降低操作系统在使用任务堆栈时发生堆栈溢出的风险成为亟待解决的问题。
发明内容
为解决上述技术问题,本申请实施例提供一种上下文信息管理方法及系统,以降低操作系统在使用任务堆栈时发生堆栈溢出的风险。
技术方案如下:
一种上下文信息管理方法,所述上下文信息的存储区域被平均划分为若干存储块,所述存储块的大小依据任务的上下文信息的数据量确定,其中,所有未被上下文信息占用的存储块构成第一链表,所有被上下文信息占用的存储块构成第二链表;所述方法包括:
当需要保存上下文信息时,将所述上下文信息存储至所述第一链表表头的存储块中;
将存储所述上下文信息的第一链表表头的存储块挂载至所述第二链表的表头;
记录存储所述上下文信息的存储块的地址。
上述方法,优选的,还包括:
当需要装载上下文信息时,依据待装载上下文信息所在的存储块的地址,在所述第二链表中查找存储所述待装载上下文信息的存储块;
从查找到的存储块中读取上下文信息,并将读取的上下文信息装载到操作系统中;
将上下文信息被读取后的存储块挂载到所述第一链表的表头。
上述方法,优选的,所述存储块被划分为若干子存储块,所述子存储块的个数大于或等于所述上下文信息的类型数;
所述将上下文信息存储至所述第一链表的表头的存储块中包括:
按照预设的各类上下文信息的生成位置与子存储块的对应关系,确定与所述各类上下文信息的生成位置所对应的子存储块;
将所述各类上下文信息存储至所确定的相应的子存储块中。
上述方法,优选的,还包括:
当需要装载上下文信息时,依据待装载上下文信息的存储地址,在所述第二链表中查找存储所述待装载上下文信息的存储块;
从查找到的存储块中读取各类上下文信息;
按照预设的各类上下文信息的生成位置与子存储块的对应关系,将读取的各类上下文信息装载至所述各类上下文信息的生成位置;
将上下文信息被读取后的存储块挂载至所述第一链表的表头。
一种上下文信息管理系统,所述上下文信息的存储区域被平均划分为若干存储块,所述存储块的大小依据任务的上下文信息的数据量确定,其中,所有未被上下文信息占用的存储块构成第一链表,所有被上下文信息占用的存储块构成第二链表;所述系统包括:
存储模块,用于当需要保存上下文信息时,将所述上下文信息存储至所述第一链表表头的存储块中;
第一挂载模块,用于将存储所述上下文信息的第一链表表头的存储块挂载至所述第二链表的表头;
上述系统,优选的,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京经纬恒润科技有限公司,未经北京经纬恒润科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310589625.1/2.html,转载请声明来源钻瓜专利网。