[发明专利]一种获得传统操作系统动态更新时间点的方法有效
申请号: | 201110030741.0 | 申请日: | 2011-01-28 |
公开(公告)号: | CN102073528A | 公开(公告)日: | 2011-05-25 |
发明(设计)人: | 刘晓建;廖湘科;戴华东;吴庆波;任怡 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 湖南省国防科学技术工业办公室专利中心 43102 | 代理人: | 冯青 |
地址: | 410073 *** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 获得 传统 操作系统 动态 更新 时间 方法 | ||
1.一种获得传统操作系统动态更新时间点的方法,该方法要求外部环境必须支持以下能力:1)操作系统实时维护当前系统中存在的用户态任务总数和内核态任务总数;2)操作系统应对外暴露某用户态任务是否会因内核设计原因在未来解除操作系统对另外某些用户态任务的阻塞,其特征在于在决定进行动态更新后,该方法开始工作,其过程如下:
1)设定当前要进行动态更新;
2)向所有用户任务注入用于防止其在内核中无限期睡眠的异步事件;
3)当发现用户任务task请求系统服务时,若内核未被设计为task未来一定会解除内核对其它某任务的阻塞,则在为其服务前将其阻塞,且该阻塞方法不可被异步事件唤醒;
4)杀死所有(本发明自身所需的任务除外)当前未处于安全更新点、支持中间状态恢复的内核任务;
5)当运行优先权最低的任务发现所有的用户任务(本发明自身所需任务除外)都因步骤3)规定的动作所阻塞、且所有的内核任务(本发明自身所需任务除外)都处于安全更新点时,实施动态更新;
6)动态更新完成后,设定当前不处于动态更新状态;
7)重启被杀死的内核任务,唤醒因步骤3)被阻塞的所有任务。
2.根据权利要求1所述的一种获得传统操作系统动态更新时间点的方法,其特征在于安全点监测模块M10内部包括初始化子模块M100、事件注入子模块M101、安全点生成子模块M102、系统服务接口子模块M103、安全点创建子模块M104。
3.根据权利要求1所述的一种获得传统操作系统动态更新时间点的方法,其特征在于当用户通过动态更新的工具M40发出动态更新请求时,初始化子模块M100开始执行,其流程为:
步骤1:将当前系统降级为单处理器核心系统;
步骤2:标记系统当前处于STATE状态;
步骤3:令所有的CPU都运行事件注入子模块M101;
步骤4:安装安全点创建模块M104。
4.根据权利要求1所述的一种获得传统操作系统动态更新时间点的方法,其特征在于事件注入子模块M101实现为系统内具有最高运行优先权的先进先出型实时任务,其主体执行流程如下:
步骤1:忙等待所有CPU都执行到步骤1;
步骤2:屏蔽外部中断;
步骤3:针对本CPU负责检查的每个用户任务,注入异步事件Signal。
步骤4:忙等待,直到所有的CPU都执行到此处;
步骤5:开放外部中断。
5.根据权利要求1所述的一种获得传统操作系统动态更新时间点的方法,其特征在于系统服务接口子模块M103用来实现上述对于用户任务的系统调用和异常处理的选择性阻塞,流程如下:
步骤1:保存现场,切换到内核代码执行环境;
步骤2:若当前不处于STATE状态,则转到步骤7,否则继续执行;
步骤3:若操作系统内核M30期望当前任务TS在未来解除“内核对另外某任务T的阻塞”,则继续执行,否则转到步骤6;
步骤4:若传统动态更新机制模块M20无法将任务T的执行现场转换为动态更新实施后的新状态,则转到步骤7,否则继续执行;
步骤5:不影响动态更新安全性的用户任务数加1,将任务T添加到待转换执行现场的任务列表;
步骤6:不影响动态更新安全性的用户任务数加1,睡眠等待系统不处于STATE状态;
步骤7:执行相应的系统调用服务处理函数;
步骤8:恢复现场,返回到用户态代码执行环境。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110030741.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:防断电的损耗平衡存储方法
- 下一篇:一种输入法词库的升级方法和装置