CN105204952A - 一种多核操作系统容错管理方法 - Google Patents
一种多核操作系统容错管理方法 Download PDFInfo
- Publication number
- CN105204952A CN105204952A CN201510521047.7A CN201510521047A CN105204952A CN 105204952 A CN105204952 A CN 105204952A CN 201510521047 A CN201510521047 A CN 201510521047A CN 105204952 A CN105204952 A CN 105204952A
- Authority
- CN
- China
- Prior art keywords
- processor core
- task
- processor
- core
- interruption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明提供一种多核操作系统容错管理方法,主要包括,构建n×n的核间故障检测矩阵,每个处理器核利用核间故障检测矩阵定期检测系统中其他处理器核是否发生故障;其中,每个处理器核的故障检测包括:在每个定时监测周期起始,各个处理器核在核间故障检测矩阵中各自对应的一列k中的元素设置为TRUE;在每个定时监测周期末尾,各个处理器核查看矩阵中各自对应的一行j中的元素,如果其中某一个元素ejk不为TRUE,则认为与该列对应的处理器核k可能发生了故障,最后将行j中的元素全部清零。本发明的系统每个处理器核均具备对处理器中其他核进行故障检测的能力,大大提高了系统容错能力。
Description
技术领域
本发明涉及嵌入式系统多核处理器的操作系统管理方法领域,特别是一种多核操作系统容错管理方法。
背景技术
在嵌入式系统中使用多核处理器是一种有效提高系统计算能力和可靠性的途径。通过将计算任务被划分为多个可并行执行的线程并将其分布在不同的处理器核上运行,可大幅提高计算速度。通过使多个处理器核同步执行相同的任务并将运算结果表决后输出,可以提高系统的可靠性。
在多核系统运行过程中,当有一个处理器核发生非瞬时故障时,系统需要能够感知到该故障,并将故障核上的线程重新调度到其他处理器核上运行。其中,如何使系统感知到该故障(即故障的检测)以及在发现故障后如何恢复是问题的核心。
目前,国内外已针对多核、众核系统中的容错机制开展了一些研究,如专利“一种众核环境下基于动态感知的系统容错机制”(专利公开号: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.基于共享内存实现多核系统容错管理,不依赖于多核处理器的核间中断的能力,具备良好的通用性,并且避免了中断带来的异步事件的不确定性和数据访问冲突的可能。
附图说明
图1示出了本发明的多核操作系统容错管理方法中的核间故障检测矩阵示意图。
具体实施方式
本发明提供一种基于共享内存的多核操作系统容错管理方法,该方法通过核间故障检测矩阵,使处理器核间互相监视各自的状态,在发现故障后自主将运行在故障处理器核上的工作(包括任务和中断)迁移到工作正常的处理器核上并继续运行。该方法能够快速检测到发生故障的处理器核,在只有一个核能够正常工作的极端情况下,也可保证系统正常运行。其步骤如下:
(1)在系统中构建一个全局任务列表和一个n×n的核间故障检测矩阵(n为处理器核数)。
(2)使每个处理器核上运行一个调度器实例,每个调度器实例的基本功能是在发生中断或本地(本处理器核)有任务状态发生变化时,按照任务调度算法从全局任务列表中挑选一个就绪态任务调度运行。
(3)在系统正常运行期间,每个处理核利用n×n的核间故障检测矩阵定期检测系统中其他核是否发生故障,故障检测算法如下。
a)通过定时器设置定时监测周期,保证每个核在同一时刻对其他n-1个核进行状态监测。
b)在每个定时监测周期起始,各个处理器核将向量表中各自对应的列i中的元素设置为TRUE。
c)在每个定时监测周期末尾,各个处理器核查看矩阵中各自对应的行j中的元素,如果其中某一个元素ejk不为TRUE,则认为处理器核k发生了故障,并将其故障计数加1,最后将行j中的元素全部清零。
(4)如果某一个处理器核连续的故障计数超过预设故障计数最大值M,则认为该处理器核发生故障,此时将该故障处理器核上的任务和中断转移到其他处理器核上:
a)将故障处理器核上当前正在运行的任务恢复为就绪状态,并使所有处理器核进行一次任务调度;
b)通过修改中断屏蔽寄存器等方式,使运行正常的处理器核响应故障处理器核上的中断。
参见图1所示,本发明一个实施例的多核操作系统容错管理方法,其具体步骤如下:
(1)在操作系统内核中构建一个全局任务列表和一个n×n的核间故障检测矩阵(n为处理器核数),在本实施例中假定n为4;全局任务列表中包含系统中的全部任务的基本信息,主要包括任务ID、任务优先级、任务状态、任务堆栈地址、任务寄存器、任务所运行于的处理器核等。
(2)使每个处理器核上运行一个调度器实例,每个调度器实例的基本功能是在发生中断或本地(本处理器核)有任务状态发生变化时,按照任务调度算法从全局任务列表中挑选一个就绪态任务调度运行;可根据系统应用的需要选择适合的调度器及调度算法,既可选择固定优先级调度算法(例如RM算法和DM算法),也可选择动态优先级调度算法(例如ELF算法和EDF算法)。
(3)如图1所示,在系统正常运行期间,每个处理核利用n×n(本实施例中为4×4)的核间故障检测矩阵定期检测系统中其他核是否发生故障:
a)通过定时器设置定时监测周期,保证每个核在同一时刻对其他n-1个(本实施例中为3个)核进行状态监测;定时器应为各处理器核共享,使各处理器核的定时监测周期保持同步;定时监测周期的大小应根据系统所期望的故障检测实时性进行设定。
b)在每个定时监测周期起始,各个处理器核将向量表中各自对应列i中的元素(e0i,e1i,…,eni)(本实施例中核0将e00,e10,e20,e30,核1将e01,e11,e21,e31、核2、核3以此类推)设置为TRUE。
c)在每个定时监测周期末尾,各个处理器核查看矩阵中各自对应行j中的元素(ej0,ej1,…,ejn)(本实施例中为核0核查e00,e01,e02,e03,核1核查e10,e11,e12,e13,核2、核3以此类推),如果其中某一个元素ejk不为TRUE,则认为处理器核k发生了故障,并将其故障计数加1(例如核0检查出e01不为TRUE,则认为核1可能发生了故障),最后将行j中的元素(ej0,ej1,…,ejn)全部清零。
需要注意的是,应通过时序保证对矩阵元素的全部读写操作不发生冲突,即将矩阵元素设置为TRUE的时机与读取矩阵元素的时机之间应保证足够的间隔,将矩阵元素清零的时机与将矩阵元素设置为TRUE的时机之间应保证足够的间隔;其中,足够间隔是指远大于处理器核之间的同步偏差的时间间隔。
(4)如果某一个处理器核的连续故障计数超过预设故障计数最大值M,则认为该处理器核发生故障,此时将该故障处理器核上的任务和中断转移到其他处理器核上:
a)通过全局任务列表,根据任务控制块中任务所运行于的处理器核信息,找到故障处理器核上当前正在运行的任务,将该任务恢复为就绪状态,使之能够被其他的处理器核调度运行,并利用核间中断使所有处理器核进行一次任务调度;
b)通过修改中断屏蔽寄存器等方式,使运行正常的处理器核响应故障处理器核上的中断。根据中断对应功能的不同,系统中有些中断为所有处理器核均响应的中断,有些中断为单个处理器核负责响应的中断;只需转移仅故障处理器核负责响应的中断。
发明未详细说明部分属本领域技术人员公知常识。
Claims (7)
1.一种多核操作系统容错管理方法,其特征在于,包括,
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为核间故障检测矩阵中的元素。
2.根据权利要求1所述的多核操作系统容错管理方法,其特征在于,包括,
S12,使每个处理器核上运行一个调度器实例,每个调度器实例的功能是在发生中断或本地有任务状态发生变化时,按照任务调度算法从全局任务列表中挑选一个就绪态任务调度运行。
3.根据权利要求2所述的多核操作系统容错管理方法,其特征在于,调度器实例为固定优先级调度算法或动态优先级调度算法。
4.根据权利要求1所述的多核操作系统容错管理方法,其特征在于,包括,
S10,在操作系统内核中构建一个全局任务列表,所述全局任务列表中包括任务ID、任务优先级、任务状态、任务堆栈地址、任务寄存器、任务所运行于的处理器核。
5.根据权利要求4所述的多核操作系统容错管理方法,其特征在于,包括,S41,通过所述全局任务列表,根据任务控制块中任务所运行于的处理器核信息,找到故障处理器核上当前正在运行的任务,将所述任务恢复为就绪状态,使之能够被其他的处理器核调度运行,并利用核间中断使所有处理器核进行一次任务调度。
6.根据权利要求5所述的多核操作系统容错管理方法,其特征在于,通过修改中断屏蔽寄存器等方式,使运行正常的处理器核响应故障处理器核上的中断。
7.根据权利要求5所述的多核操作系统容错管理方法,其特征在于,根据对应功能的不同,所述故障处理器核的中断为所有处理器核均响应的中断或单个处理器核负责响应的中断;只需转移仅故障处理器核负责响应的中断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510521047.7A CN105204952B (zh) | 2015-08-21 | 2015-08-21 | 一种多核操作系统容错管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510521047.7A CN105204952B (zh) | 2015-08-21 | 2015-08-21 | 一种多核操作系统容错管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105204952A true CN105204952A (zh) | 2015-12-30 |
CN105204952B CN105204952B (zh) | 2018-03-09 |
Family
ID=54952647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510521047.7A Active CN105204952B (zh) | 2015-08-21 | 2015-08-21 | 一种多核操作系统容错管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105204952B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391430A (zh) * | 2016-05-17 | 2017-11-24 | 通用汽车环球科技运作有限责任公司 | 多核处理单元 |
CN107463442A (zh) * | 2017-07-12 | 2017-12-12 | 北京控制工程研究所 | 一种星载多核SoC任务级负载均衡并行调度方法 |
CN107480038A (zh) * | 2017-08-28 | 2017-12-15 | 北京翼辉信息技术有限公司 | 实时操作系统的性能分析方法 |
CN108009015A (zh) * | 2018-01-10 | 2018-05-08 | 烟台大学文经学院 | 实时嵌入式操作系统的事件处理方法 |
CN109815839A (zh) * | 2018-12-29 | 2019-05-28 | 深圳云天励飞技术有限公司 | 微服务架构下的徘徊人员识别方法及相关产品 |
CN110069377A (zh) * | 2018-01-22 | 2019-07-30 | 中兴通讯股份有限公司 | 一种多核处理器的监测方法、终端及计算机存储介质 |
CN110806938A (zh) * | 2019-10-21 | 2020-02-18 | 中国人民解放军国防科技大学 | 面向多核处理器的自适应容错数据并行计算实现方法 |
CN113220541A (zh) * | 2021-06-10 | 2021-08-06 | 北京全路通信信号研究设计院集团有限公司 | 一种多核处理器的内存巡检方法及系统 |
WO2023236992A1 (zh) * | 2022-06-07 | 2023-12-14 | 华为技术有限公司 | 处理器核故障处理方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0669584A2 (en) * | 1994-02-24 | 1995-08-30 | Tandem Computers Incorporated | Massively parallel multiprocessor system with fault-tolerant interprocessor network |
CN101158920A (zh) * | 2007-11-22 | 2008-04-09 | 杭州华三通信技术有限公司 | 一种检测操作系统故障的方法和装置 |
-
2015
- 2015-08-21 CN CN201510521047.7A patent/CN105204952B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0669584A2 (en) * | 1994-02-24 | 1995-08-30 | Tandem Computers Incorporated | Massively parallel multiprocessor system with fault-tolerant interprocessor network |
CN101158920A (zh) * | 2007-11-22 | 2008-04-09 | 杭州华三通信技术有限公司 | 一种检测操作系统故障的方法和装置 |
Non-Patent Citations (1)
Title |
---|
张少林等: "一种面向多核的可重构容错方法", 《第十五届全国容错计算学术会议》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391430A (zh) * | 2016-05-17 | 2017-11-24 | 通用汽车环球科技运作有限责任公司 | 多核处理单元 |
CN107463442A (zh) * | 2017-07-12 | 2017-12-12 | 北京控制工程研究所 | 一种星载多核SoC任务级负载均衡并行调度方法 |
CN107480038A (zh) * | 2017-08-28 | 2017-12-15 | 北京翼辉信息技术有限公司 | 实时操作系统的性能分析方法 |
CN107480038B (zh) * | 2017-08-28 | 2020-07-28 | 北京翼辉信息技术有限公司 | 实时操作系统的性能分析方法 |
CN108009015A (zh) * | 2018-01-10 | 2018-05-08 | 烟台大学文经学院 | 实时嵌入式操作系统的事件处理方法 |
CN110069377A (zh) * | 2018-01-22 | 2019-07-30 | 中兴通讯股份有限公司 | 一种多核处理器的监测方法、终端及计算机存储介质 |
CN109815839A (zh) * | 2018-12-29 | 2019-05-28 | 深圳云天励飞技术有限公司 | 微服务架构下的徘徊人员识别方法及相关产品 |
CN110806938A (zh) * | 2019-10-21 | 2020-02-18 | 中国人民解放军国防科技大学 | 面向多核处理器的自适应容错数据并行计算实现方法 |
CN110806938B (zh) * | 2019-10-21 | 2022-06-07 | 中国人民解放军国防科技大学 | 面向多核处理器的自适应容错数据并行计算实现方法 |
CN113220541A (zh) * | 2021-06-10 | 2021-08-06 | 北京全路通信信号研究设计院集团有限公司 | 一种多核处理器的内存巡检方法及系统 |
CN113220541B (zh) * | 2021-06-10 | 2021-09-07 | 北京全路通信信号研究设计院集团有限公司 | 一种多核处理器的内存巡检方法及系统 |
WO2023236992A1 (zh) * | 2022-06-07 | 2023-12-14 | 华为技术有限公司 | 处理器核故障处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105204952B (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105204952A (zh) | 一种多核操作系统容错管理方法 | |
CN107187465B (zh) | 一种单元级热备冗余的ato系统架构 | |
CN105095001B (zh) | 分布式环境下虚拟机异常恢复方法 | |
CN103955188A (zh) | 支持冗余切换功能的控制系统及方法 | |
CN101788817B (zh) | 一种基于星载总线的故障识别与处理方法 | |
US9261868B2 (en) | Process control system | |
KR20190079809A (ko) | 결함 주입 테스트 장치 및 그 방법 | |
CN103354503A (zh) | 一种可自动检测及替换故障节点的云存储系统及其方法 | |
US9459949B2 (en) | Methods and apparatus to provide failure detection | |
CN111352338A (zh) | 一种双余度飞控计算机及余度管理方法 | |
RU2455681C1 (ru) | Отказоустойчивая вычислительная система с аппаратно-программной реализацией функций отказоустойчивости и динамической реконфигурации | |
CN110445638A (zh) | 一种交换机系统故障保护方法及装置 | |
CN107025152A (zh) | 基于任务级的双冗余热备份设备的数据同步方法 | |
CN102387210B (zh) | 一种基于快速同步网络的分布式文件系统监控方法 | |
CN104407958A (zh) | 一种高可靠性的系统监测方法和系统 | |
CN104079454A (zh) | 一种设备异常检测方法和设备 | |
US20150025700A1 (en) | Apparatus and method remotely monitoring building state | |
CN103246585A (zh) | 一种存储控制器故障检测方法 | |
CN107506261A (zh) | 适应cpu、gpu异构集群的级联容错处理方法 | |
CN105487945A (zh) | 一种非相似双余度四机自监控容错控制方法 | |
US9910754B2 (en) | Duplexed control system and control method thereof | |
RU2439674C1 (ru) | Способ формирования отказоустойчивой вычислительной системы и отказоустойчивая вычислительная система | |
KR101448013B1 (ko) | 항공기용 다중 컴퓨터의 고장 허용 장치 및 방법 | |
CN203289491U (zh) | 一种故障节点可自动修复的集群存储系统 | |
CN106445852B (zh) | 一种基于自监控架构的任务间通讯装置与方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |