[发明专利]一种多核操作系统容错管理方法有效
申请号: | 201510521047.7 | 申请日: | 2015-08-21 |
公开(公告)号: | CN105204952B | 公开(公告)日: | 2018-03-09 |
发明(设计)人: | 王婧;彭飞;龚健;吴一帆;华更新;刘鸿瑾;许娜;徐建 | 申请(专利权)人: | 北京控制工程研究所 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 中国航天科技专利中心11009 | 代理人: | 安丽 |
地址: | 100080 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多核 操作系统 容错 管理 方法 | ||
技术领域
本发明涉及嵌入式系统多核处理器的操作系统管理方法领域,特别是一种多核操作系统容错管理方法。
背景技术
在嵌入式系统中使用多核处理器是一种有效提高系统计算能力和可靠性的途径。通过将计算任务被划分为多个可并行执行的线程并将其分布在不同的处理器核上运行,可大幅提高计算速度。通过使多个处理器核同步执行相同的任务并将运算结果表决后输出,可以提高系统的可靠性。
在多核系统运行过程中,当有一个处理器核发生非瞬时故障时,系统需要能够感知到该故障,并将故障核上的线程重新调度到其他处理器核上运行。其中,如何使系统感知到该故障(即故障的检测)以及在发现故障后如何恢复是问题的核心。
目前,国内外已针对多核、众核系统中的容错机制开展了一些研究,如专利“一种众核环境下基于动态感知的系统容错机制”(专利公开号:CN102323900A)提出为每个进程分配一个心跳计数器,通过在处理器运行额外的检测进程或监控进程来感知发生异常的进程,并通过额外的管理进程重启异常进程。
总的来讲,目前已有的多核系统容错方法需要系统中额外维护一个监测进程/线程,负责系统中其他线程状态的监听及故障的检测。但是,如果该监测线程出现故障,尤其是监测线程所在的处理器核出现故障,系统将无法继续进行容错管理。
发明内容
本发明要解决的技术问题为:提供一种能够在任意一处理器核故障时快速检测出故障并恢复故障核上进程运行的多核操作系统容错管理方法。以避免现有技术中运行监测线程所在的处理器核出现故障导致系统无法进行容错管理的问题,提高系统的容错能力。
本发明的技术方案为:一种多核操作系统容错管理方法,包括,S1,构建全局任务列表和一个n×n的核间故障检测矩阵,其中n为处理器核数;S2,在系统正常运行期间,每个处理器核利用核间故障检测矩阵定期检测系统中其他处理器核是否发生故障;S3,如果某一个处理器核连续的故障计数超过预设故障计数最大值M,则判断该处理器核发生故障,此时将该发生故障的处理器核上的任务和中断转移到其他处理器核上;其中,步骤S2中的每个处理器核的故障检测包括:S21,通过定时器设置定时监测周期,保证每个处理器核在同一时刻对其他处理器核进行状态监测;S22,在每个定时监测周期起始,各个处理器核在核间故障检测矩阵中各自对应的一列k中的元素设置为TRUE;S23,在每个定时监测周期末尾,各个处理器核查看矩阵中各自对应的一行j中的元素,如果其中某一个元素ejk不为TRUE,则认为与该列对应的处理器核k发生了故障,并将其故障计数加1,最后将行j中的元素全部清零;其中,j为核间故障检测矩阵的行数,取1、2、3……n,k为核间故障检测矩阵的列数,取1、2、3……n,ejk为核间故障检测矩阵中的元素。
进一步地,包括,S12,使每个处理器核上运行一个调度器实例,每个调度器实例的功能是在发生中断或本地有任务状态发生变化时,按照任务调度算法从全局任务列表中挑选一个就绪态任务调度运行。
进一步地,调度器实例为固定优先级调度算法或动态优先级调度算法。
进一步地,包括,S10,在操作系统内核中构建一个全局任务列表,全局任务列表中包括任务ID、任务优先级、任务状态、任务堆栈地址、任务寄存器、任务所运行于的处理器核。
进一步地,包括,S41,通过全局任务列表,根据任务控制块中任务所运行于的处理器核信息,找到故障处理器核上当前正在运行的任务,将该任务恢复为就绪状态,使之能够被其他的处理器核调度运行,并利用核间中断使所有处理器核进行一次任务调度。
进一步地,通过修改中断屏蔽寄存器等方式,使运行正常的处理器核响应故障处理器核上的中断。
进一步地,根据对应功能的不同,故障处理器核的中断为所有处理器核均响应的中断或单个处理器核负责响应的中断;只需转移仅故障处理器核负责响应的中断。
本发明与现有技术相比的优点在于:
1.系统故障检测能力不依赖于某一个处理器核,每个处理器核均具备对处理器中其他核进行故障检测的能力,大大提高了系统容错能力。
2.每个核仅对矩阵中自身核所对应的行进行查询和清零操作,避免了多个核同时操作同一地址所引起的数据访问冲突问题,因此也不需要使用多核操作系统中常用的信号量、自旋锁等进行资源互斥,减少了算法开销,提高了系统效率。
3.基于共享内存实现多核系统容错管理,不依赖于多核处理器的核间中断的能力,具备良好的通用性,并且避免了中断带来的异步事件的不确定性和数据访问冲突的可能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京控制工程研究所,未经北京控制工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510521047.7/2.html,转载请声明来源钻瓜专利网。