上下文信息管理方法及系统技术方案

技术编号:9694952 阅读:101 留言:0更新日期:2014-02-21 01:32
本发明专利技术公开了一种上下文信息管理方法及系统,不使用堆栈存储上下文信息,而是将上下文信息存储至预设大小的存储块中,且通过链表机制管理存储块,避免用户在分配任务堆栈容量时需要考虑上下文容量的问题,用户只需要按照任务在执行过程中需要保存的临时数据的大小为任务分配堆栈容量即可,使得任务堆栈容量的分配更为准确,降低了操作系统使用任务堆栈时发生堆栈溢出的风险。

【技术实现步骤摘要】
上下文信息管理方法及系统
本申请涉及嵌入式系统
,特别是涉及一种实时操作系统中的上下文信息管理方法及系统。
技术介绍
目前,嵌入式电子行业多采用嵌入式实时操作系统(以下简称操作系统)来开发和设计不同用途的嵌入式控制器。操作系统的核心功能是任务调度,即根据任务优先级管理系统中所有任务的状态转换和执行顺序。操作系统进行调度时,将这一时刻所有处于就绪状态的任务依据优先级进行仲裁,优先级最高的任务将进入到运行状态开始执行。同一时间操作系统只能有一个任务处于运行状态。操作系统在进行调度时,如果已经有任务处于运行状态,那么处于运行状态的任务也将参与任务调度。若这一时刻处于就绪状态的任务中有优先级高于当前处于运行状态的任务,当前处于运行状态的任务将被高优先级的任务抢占,返回到就绪状态中,高优先级的任务则进入到运行状态开始执行。被抢占的任务直到下一次变为系统中优先级最高的任务时,才会从就绪状态返回到运行状态,从之前被抢占的位置继续执行。在任务发生抢占的过程中,由于被抢占的任务无法继续运行,所以需要保存被抢占的任务继续运行所需要的上下文信息。任务运行过程中的临时数据和任务切换过程中的上下文信息都是保存在堆栈中,因此,需要用户在分配任务堆栈的容量时,既要了解保存任务执行过程中的临时数据需要多少堆栈空间,同时要了解保存任务的上下文信息需要多少堆栈空间。对于前者,用户在任务中添加应用程序时比较容易统计,后者由于与芯片类型和操作系统本身的软件实现强相关,用户很难对其做出正确预估,在这种情况下,用户在使用操作系统时,容易造成由于对任务堆栈的容量分配不足导致发生任务堆栈溢出。堆栈溢出是指需要在堆栈中保存的内容总量大于堆栈总的容量。当任务堆栈发生溢出时,超出堆栈总容量的上下文信息就无法正常保存和重新装载了。因此,如何降低操作系统在使用任务堆栈时发生堆栈溢出的风险成为亟待解决的问题。
技术实现思路
为解决上述技术问题,本申请实施例提供一种上下文信息管理方法及系统,以降低操作系统在使用任务堆栈时发生堆栈溢出的风险。技术方案如下:一种上下文信息管理方法,所述上下文信息的存储区域被平均划分为若干存储块,所述存储块的大小依据任务的上下文信息的数据量确定,其中,所有未被上下文信息占用的存储块构成第一链表,所有被上下文信息占用的存储块构成第二链表;所述方法包括:当需要保存上下文信息时,将所述上下文信息存储至所述第一链表表头的存储块中;将存储所述上下文信息的第一链表表头的存储块挂载至所述第二链表的表头;记录存储所述上下文信息的存储块的地址。上述方法,优选的,还包括:当需要装载上下文信息时,依据待装载上下文信息所在的存储块的地址,在所述第二链表中查找存储所述待装载上下文信息的存储块;从查找到的存储块中读取上下文信息,并将读取的上下文信息装载到操作系统中;将上下文信息被读取后的存储块挂载到所述第一链表的表头。上述方法,优选的,所述存储块被划分为若干子存储块,所述子存储块的个数大于或等于所述上下文信息的类型数;所述将上下文信息存储至所述第一链表的表头的存储块中包括:按照预设的各类上下文信息的生成位置与子存储块的对应关系,确定与所述各类上下文信息的生成位置所对应的子存储块;将所述各类上下文信息存储至所确定的相应的子存储块中。上述方法,优选的,还包括:当需要装载上下文信息时,依据待装载上下文信息的存储地址,在所述第二链表中查找存储所述待装载上下文信息的存储块;从查找到的存储块中读取各类上下文信息;按照预设的各类上下文信息的生成位置与子存储块的对应关系,将读取的各类上下文信息装载至所述各类上下文信息的生成位置;将上下文信息被读取后的存储块挂载至所述第一链表的表头。一种上下文信息管理系统,所述上下文信息的存储区域被平均划分为若干存储块,所述存储块的大小依据任务的上下文信息的数据量确定,其中,所有未被上下文信息占用的存储块构成第一链表,所有被上下文信息占用的存储块构成第二链表;所述系统包括:存储模块,用于当需要保存上下文信息时,将所述上下文信息存储至所述第一链表表头的存储块中;第一挂载模块,用于将存储所述上下文信息的第一链表表头的存储块挂载至所述第二链表的表头;上述系统,优选的,还包括:第一查找模块,用于当需要装载上下文信息时,依据待装载上下文信息所在的存储块的地址,在所述第二链表中查找存储所述待装载上下文信息的存储块;第一读取模块,用于从查找到的存储块中读取上下文信息;第一装载模块,用于将读取的上下文信息装载到操作系统中;第二挂载模块,用于将上下文信息被读取后的存储块挂载到所述第一链表的表头。上述系统,优选的,所述存储块被划分为若干子存储块,所述子存储块的个数大于或等于所述上下文信息的类型数;所述存储模块包括:确定单元,用于当需要保存上下文信息时,按照预设的各类上下文信息生成位置与子存储块的对应关系,确定与所述各类上下文信息的生成位置所对应的子存储块;存储单元,用于将所述各类上下文信息存储至所确定的相应的子存储块中。上述系统,优选的,还包括:第二查找模块,用于当需要装载上下文信息时,依据待装载上下文信息所在的存储块的地址,在所述第二链表中查找存储所述待装载上下文信息的存储块;第二读取模块,用于从查找到的存储块中读取各类上下文信息;第二装载模块,用于按照预设的各类上下文信息的生成位置与子存储块的对应关系,将读取的各类上下文信息装载至所述各类上下文信息的生成位置;第三挂载模块,用于将上下文信息被读取后的存储块挂载至所述第一链表的表头。[0041 ] 一种微处理器内核,集成有如上任意一项所述的上下文信息管理系统。由以上本申请实施例提供的技术方案可见,本申请提供的一种上下文信息管理方法及系统,预先将上下文信息的存储区域划分为若干存储块,所述存储块的大小依据任务的上下文信息的数据量确定,所述存储块用于存储上下文信息,其中,未被上下文信息占用的存储块构成第一链表,被上下文信息占用的存储块构成第二链表,在需要保存上下文信息时,将上下文信息存储至第一链表表头的存储块中,并将第一链表表头的存储块挂载至第二链表的表头,记录存储所述上下文信息的存储块的地址。由此可知,本申请实施例提供的上下文信息管理方法及系统,不使用堆栈存储上下文信息,而是将上下文信息存储至预设大小的存储块中,而所述存储块的大小是根据任务的上下文信息确定的,避免用户在分配任务堆栈容量时需要考虑上下文信息容量的问题,用户只需要按照任务在执行过程中需要保存的临时数据的大小为任务分配堆栈容量即可,使得任务堆栈容量的分配更为准确,降低了操作系统使用任务堆栈时发生堆栈溢出的风险。【附图说明】为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种上下文信息管理方法的流程图;图2为本申请实施例提供的另一种上下文信息管理方法的流程图;图3为本申请实施例提供的将上下文信息存储至第一链表的表头的存储块中的实现流程图;图4为本申请实施例提供的预先确定的各类上下文信息的生成位置与子存储块本文档来自技高网
...

【技术保护点】
一种上下文信息管理方法,其特征在于,所述上下文信息的存储区域被平均划分为若干存储块,所述存储块的大小依据任务的上下文信息的数据量确定,其中,所有未被上下文信息占用的存储块构成第一链表,所有被上下文信息占用的存储块构成第二链表;所述方法包括:当需要保存上下文信息时,将所述上下文信息存储至所述第一链表表头的存储块中;将存储所述上下文信息的第一链表表头的存储块挂载至所述第二链表的表头;记录存储所述上下文信息的存储块的地址。

【技术特征摘要】
1.一种上下文信息管理方法,其特征在于,所述上下文信息的存储区域被平均划分为若干存储块,所述存储块的大小依据任务的上下文信息的数据量确定,其中,所有未被上下文信息占用的存储块构成第一链表,所有被上下文信息占用的存储块构成第二链表;所述方法包括: 当需要保存上下文信息时,将所述上下文信息存储至所述第一链表表头的存储块中; 将存储所述上下文信息的第一链表表头的存储块挂载至所述第二链表的表头; 记录存储所述上下文信息的存储块的地址。2.根据权利要求1所述的方法,其特征在于,还包括: 当需要装载上下文信息时,依据待装载上下文信息所在的存储块的地址,在所述第二链表中查找存储所述待装载上下文信息的存储块; 从查找到的存储块中读取上下文信息,并将读取的上下文信息装载到操作系统中; 将上下文信息被读取后的存储块挂载到所述第一链表的表头。3.根据权利要求1所述的方法,其特征在于,所述存储块被划分为若干子存储块,所述子存储块的个数大于或等于所述上下文信息的类型数; 所述将上下文信息存储至所述第一链表的表头的存储块中包括: 按照预设的各类上下文信息的生成位置与子存储块的对应关系,确定与所述各类上下文信息的生成位置所对应的子存储块; 将所述各类上下文信息存储至所确定的相应的子存储块中。4.根据权利要求3所述的方法,其特征在于,还包括: 当需要装载上下文信息时,依据待装载上下文信息的存储地址,在所述第二链表中查找存储所述待装载上下文信息的存储块; 从查找到的存储块中读取各类上下文信息; 按照预设的各类上下文信息的生成位置与子存储块的对应关系,将读取的各类上下文信息装载至所述各类上下文信息的生成位置; 将上下文信息被读取后的存储块挂载至所述第一链表的表头。5.一种上下文信息管理系统,其特征在于,所述上下文信息的存储区域被平均划分为若干存储块,所述存储块的大小依据任务的上下文信息的数据量确定,其中,所有...

【专利技术属性】
技术研发人员:张阳刘博王载琼
申请(专利权)人:北京经纬恒润科技有限公司
类型:发明
国别省市:

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

1