[发明专利]一种空间确定的任务调度方法在审
申请号: | 201310689411.1 | 申请日: | 2013-12-14 |
公开(公告)号: | CN104714834A | 公开(公告)日: | 2015-06-17 |
发明(设计)人: | 邱征;牛文生;田莉蓉;黄韬;王红春;陈长胜;牟明;于峰 | 申请(专利权)人: | 中国航空工业集团公司第六三一研究所 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/445;G06F11/07 |
代理公司: | 西安智邦专利商标代理有限公司 61211 | 代理人: | 姚敏杰 |
地址: | 710119 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 空间 确定 任务 调度 方法 | ||
技术领域
本发明属于计算机操作系统平台软件领域,涉及一种空间确定的任务调度方法,尤其涉及一种任务调度器元素(任务、信号量等)的个数固定、句柄空间固定、代码空间已经数据空间确定等空间确定和错误检查的恢复方法。
背景技术
嵌入式领域常用的操作系统有linux、ucOS、vxWorks等,这些操作系统提供了多任务、信号量等操作系统元素和API,但这些元素基本都可动态创建和维护,其个数不停的变化、句柄离散分布于内存中,造成对这些操作系统元素的引用如果出现异常,难以检查;尤其是其数据结构区域一旦产生破坏,错误往往在应用中蔓延到一定程度才被发现。除此之外,大部分操作系统对代码和数据区的保护范围都比较大,这当然是因为代码可动态加载和内存可动态分配造成的,但实际上大部分情况下应用程序足够确定,可以进一步确定代码空间和数据空间,以便提高更精确的保护。
发明内容
为了解决背景技术中存在的上述技术问题,本发明提供了一种可加强对非法指针的防范、及早发现和定位任务调度器核心数据的崩溃情况以及可进一步提高任务调度器平台软件的安全性的空间确定的任务调度方法。
本发明的技术解决方案是:本发明提供了一种空间确定的任务调度方法,其特殊之处在于:所述空间确定的任务调度方法包括以下步骤:
1)采用预先静态定义的方式在编译过程中确定代码区和数据区空间尺寸;
2)经过启动加载过程加载到内存后,静态确定代码区和数据区空间的起始物理地址和尺寸;
3)采用安全性保护机制对代码区和数据区进行安全性保护,避免对代码区和数据区的配置数据、映像文件以及中断矢量表进行写访问;
4)对特定代码区和数据区进行隔离,所述隔离包括以零起始的确定地址空间、任务控制块、任务堆栈空间以及信号量控制块;
5)采用中断及服务例程以接管由于访问触发的异常,避免错误蔓延。
上述步骤1)的具体实现方式是:
1.1)采用宏定义代码区和数据区的起始地址,且保证起始地址不为零;
1.2)源代码使用到的所有变量在编译链接的时候就能静态定位代码区和数据区到对应的物理位置,并计算出代码区和数据区的大小;所述源代码使用到的所有变量包括数组、结构都静态确定或在任务的固定堆栈空间内动态申请和释放的变量;
1.3)映像文件从固态存储载入内存地址,启动加载过程将代码内容加载到宏定义的代码区域,把有初始化值的数据加载到宏定义的数据区域中;
1.4)代码空间区域、中断矢量/异常向量、数据区域按照位置以及大小由MMU控制访问机制。
上述步骤1.4)中代码空间区域通过MMU机制进行控制,以最小的MMU单元整数倍进行保护,代码空间不再可写;在启动过程中,中断矢量以及异常向量加载到物理位置,完成后,中断矢量以及异常向量通过MMU机制进行控制,以最小的MMU单元整数倍进行保护,该空间不可再写;数据区域的位置和大小通过MMU机制进行控制,以最小的MMU单元整数倍进行保护,数据区可读写,但非数据区的内存其它空间不再打开任何读写窗口,以0为起始的内存空间不再允许数据读取,只能代码读取。
上述数据区域包括有初始化值的data和初始化值默认为0的bss区。
上述步骤4)的具体实现方式是:
4.1)对特定代码区和数据区进行区域保护;
4.2)对特定代码区和数据区进行任务调度器元素的组织和保护;所述任务调度器元素包括任务调度器的最大任务个数及其堆栈大小、最大信号量个数、任务控制块、任务堆栈空间以及信号量控制块。
上述步骤4.1)的具体实现方式是:
以零起始的一定大小的空间在任务调度器初始化全完成后不可数据访问,应用代码如果有缺陷,经常出现的零指针访问会立即触发MMU异常,异常例程会定位出错的代码位置和对应的任务,对异常进行记录,并调用任务注册的异常处理函数以便进行状态切换以及错误恢复。
上述步骤4.2)的具体实现方式是:
所述任务调度器的最大任务个数及其堆栈大小、最大信号量个数由宏定义静态确定;所述任务控制块、任务堆栈空间以及信号量控制块结构由静态的结构数组建立;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空工业集团公司第六三一研究所;,未经中国航空工业集团公司第六三一研究所;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310689411.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:利用用于聚结内存事务的指示的方法和系统
- 下一篇:插件更新方法及装置