CN105247491B - 计算机系统和控制方法 - Google Patents

计算机系统和控制方法 Download PDF

Info

Publication number
CN105247491B
CN105247491B CN201380076847.1A CN201380076847A CN105247491B CN 105247491 B CN105247491 B CN 105247491B CN 201380076847 A CN201380076847 A CN 201380076847A CN 105247491 B CN105247491 B CN 105247491B
Authority
CN
China
Prior art keywords
cpu
substitution
cpu core
program
computer system
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.)
Active
Application number
CN201380076847.1A
Other languages
English (en)
Other versions
CN105247491A (zh
Inventor
平田明
虻川雅浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN105247491A publication Critical patent/CN105247491A/zh
Application granted granted Critical
Publication of CN105247491B publication Critical patent/CN105247491B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

当CPU核(1)101和CPU核(2)102分担OS(1)201、程序(A)204和程序(B)205的执行时,CPU核(2)102停止OS(1)201、程序(A)204和程序(B)205的执行分担,起动替代OS(1)201的替代OS,将程序(A)204所运行在的OS从OS(1)201切换到替代OS。并且,CPU核(1)101在程序(A)204所运行在的OS切换到替代OS后,结束OS(1)201的执行。

Description

计算机系统和控制方法
技术领域
本发明涉及使用多个CPU(Central Processing Unit,中央处理单元)执行OS(Operating System,操作系统)的技术。
背景技术
例如,在专利文献1中,为了计算机系统的稳定运行,使用多核处理器来使多个OS(域)运行。
并且,在专利文献1中,在1个域发生异常的情况下,使用另一个域接管发生异常的域的处理,重新起动发生异常的域,恢复重新起动的域的处理。
并且,在专利文献2中示出了如下这样的方法:通过使用共享存储器而能够使开销较少地在域间迅速接管处理。
在先技术文献
专利文献
专利文献1:日本特开2010-020621号公报
专利文献2:日本特开2012-099000号公报
发明内容
发明要解决的课题
为了使计算机系统稳定运行,可以如上述的专利文献1和专利文献2那样,使用非对称型多处理器(AMP:Asymmetric Multiprocessor),使多个OS在多核上稳定运行。
然而,存在的课题是:当通过AMP使多个OS在多核上稳定地并行运行时,各OS分别消耗内存,效率不佳,处理量下降。
另一方面,在使处理分散到多个CPU核的对称型多处理器(SMP:SymmetricMultiprocessor)中,可使用的CPU核数越多,就越提高处理量。
本发明是鉴于上述情况而提出的,本发明的主要目的在于,通过SMP实现处理量提高的同时,使计算机系统稳定工作。
用于解决课题的手段
本发明的计算机系统,其具有多个CPU(Central Processing Unit,中央处理单元),其特征在于,当所述多个CPU分担OS(Operating System,操作系统)和在所述OS上运行的程序的执行时,所述多个CPU中的特定CPU停止分担所述OS和所述程序的执行,起动替代所述OS的替代OS,将所述程序所运行在的OS从所述OS切换为所述替代OS,所述特定CPU以外的CPU即其它CPU在所述程序所运行在的OS切换为所述替代OS后,结束所述OS的执行。
发明效果
根据本发明,通过SMP多个CPU分担OS和在所述OS上运行的程序的执行,实现处理量的提高。
并且,在例如发生与OS相关的故障的情况下,特定CPU停止OS以及程序的分担,而起动替代OS,将程序所运行的OS切换为替代OS。
因此,即使在发生与OS相关的故障的情况下,也可以使用替代OS继续执行程序。
附图说明
图1是示出实施方式1的计算机系统的结构例的图。
图2是示出实施方式1的ROM内保存的数据的例子的图。
图3是示出实施方式1的RAM内保存的数据的例子的图。
图4是说明实施方式1的计算机系统的工作示例的图。
图5是说明实施方式1的计算机系统的工作示例的图。
图6是说明实施方式1的计算机系统的工作示例的图。
图7是说明实施方式1的计算机系统的工作示例的图。
图8是示出实施方式1的CPU核(1)的工作示例的流程图。
图9是示出实施方式1的CPU核(1)的工作示例的流程图。
图10是示出实施方式1的CPU核(2)的工作示例的流程图。
图11是示出实施方式1的CPU核(2)的工作示例的流程图。
具体实施方式
实施方式1.
在本实施方式中,说明如下这样的计算机系统:平时使用对称型多处理器(SMP)进行工作,在发生故障时,暂时使用非对称型多处理器(AMP)进行工作来进行OS的切换,在OS的切换后恢复到SMP。
图1示出本实施方式的计算机系统10的结构例。
作为硬件,计算机系统10具有多核处理器100、总线110、RAM 111、ROM 112和IO装置113。
多核处理器100具有CPU核(1)101和CPU核(2)102。
总线110将多核处理器100、RAM 111、ROM 112及IO装置113连接。
RAM 111是与总线110连接的易失性存储器。
ROM 112是与总线110连接的非易失性存储器。
IO装置113与总线110连接,被后述的OS(1)201和OS(2)211访问。
并且,作为软件,计算机系统10具有引导加载程序200、OS(1)201、程序(A)204和程序(B)205。
并且,OS(1)201具有调度程序202和不稳定检测部203。
引导加载程序200在多核处理器100的起动时,由CPU核(1)101或CPU核(2)102从ROM 112读出,进行硬件的初始化处理,将ROM 112内的后述的OS执行映像(executionimage)302经由总线110展开到RAM 111来执行。
OS(1)201是在多核处理器100中运行的操作系统。
程序(A)204和程序(B)205是在OS(1)201上运行的应用程序。
调度程序202具有将在OS(1)201中运行的程序分配给CPU核(1)101或CPU核(2)102来执行的功能。
不稳定检测部203具有如下这样的功能:当在OS(1)201运行的程序进行了内存泄漏、对指定范围外的地址的访问时,向OS(1)201通知异常。
另外,在图1中,仅图示出OS(1)201,然而如图6所示,计算机系统10内还包含有OS(2)211。
OS(2)211在多核处理器100中与OS(1)201独立运行。
OS(2)211的内部结构也与OS(1)201相同,包含有调度程序212和不稳定检测部213。
调度程序212与调度程序202相同,不稳定检测部213与不稳定检测部203相同。
多核处理器100构成使用CPU核(1)101和CPU核(2)102运行的SMP。
CPU核(1)101和CPU核(2)102具有相互产生中断信号的CPU间中断功能。
OS(1)201和OS(2)211在多核处理器100中作为适用于SMP的OS运行。
并且,不仅SMP,还存在CPU核(1)101单独执行OS(1)201的情况,并且,还存在CPU核(2)102单独执行OS(1)201的情况。
同样,还存在CPU核(1)101单独执行OS(2)211的情况,并且,还存在CPU核(2)102单独执行OS(2)211的情况。
在本实施方式中,在CPU核(1)101和CPU核(2)102由SMP执行OS(1)201时发生了与OS(1)201相关联的故障的情况下,CPU核(2)102被分离。
也就是说,CPU核(2)102停止OS(1)201的执行分担,CPU核(2)102重新工作,重新工作后的CPU核(2)102起动OS(2)211。
在本实施方式中,OS(2)211是替代OS(1)201的OS,相当于替代OS的例子。
然后,在CPU核(2)102起动了OS(2)211之后,CPU核(1)101结束OS(1)201的执行,CPU核(1)101重新工作。
在CPU核(1)101重新工作之后,CPU核(1)101和CPU核(2)102通过SMP执行OS(2)211。
另外,CPU核(2)102的重新工作是指,起动引导加载程序200,使为了CPU核(2)102用而确保的RAM 111内的区域的数据初始化,使CPU核(2)102内的寄存器的数据初始化。
同样,CPU核(1)101的重新工作是指,起动引导加载程序200,使为了CPU核(1)101用而确保的RAM 111内的区域的数据初始化,使CPU核(1)101内的寄存器的数据初始化。
图2示出ROM 112内保存的数据的例子。
在图2中,引导加载程序执行映像301是引导加载程序200的执行映像。
OS执行映像302是OS的执行映像。
在图1和图6中,OS执行映像302由多核处理器100执行的状态被表现为OS(1)201或OS(2)211。
应用映像303表示应用程序的执行映像。
在图1和图6中,应用映像303由多核处理器100执行的状态被表现为程序(A)204和程序(B)205。
快照映像(snapshot image)(1)304是在OS(1)201中将OS(1)201和设备驱动器的初始化完成时的工作存储器的内容作为数据来保存的快照映像。
快照映像(2)305是在OS(2)211中将OS(2)211和设备驱动器的初始化完成时的工作存储器的内容作为数据来保存的快照映像。
图3示出RAM 111内保存的数据。
OS(1)执行区域311是在OS(1)201由多核处理器100执行时加载OS执行映像302的物理存储区域。
OS(2)执行区域312是在OS(2)211由多核处理器100执行时加载OS执行映像302的物理存储区域。
共享存储区域313是在OS(1)201和OS(2)211同时运行时由CPU核(1)101和CPU核(2)102访问的物理存储区域。
OS(1)专用区域321是仅OS(1)201可写入(也就是说,仅执行OS(1)201的CPU核)的物理存储区域。
OS(2)专用区域322是仅OS(2)211可写入(也就是说,仅执行OS(2)211的CPU核)的物理存储区域。
起动标志331是用于通知OS(2)211的起动模式的标志。
起动标志331示出用于通过SMP执行OS(2)211的起动模式(稳定起动模式)、或者仅使用CPU核(2)102执行OS(2)211的起动模式(分离OS起动模式)。
OS起动许可标志333是用于通知是否允许由OS(2)211对IO装置113进行访问(以下,将对IO装置113的访问也称为IO访问)的标志。
过程转移标志334是用于通知由OS(1)201处理的过程的上下文信息的保存已完成的标志。
CPU待机标志335是用于通知通过CPU核(1)101的重新工作而使CPU核(1)101的初始化完成、CPU核(1)101处于处理等待状态(空闲)的标志。
重新工作动作标志336是向CPU核(1)101指示是在重新工作时起动OS、还是在处理等待状态(空闲)待机的标志。
准备完成标志332是通知CPU核(2)102完成了不伴有IO访问的OS(2)211的起动的标志。
另外,CPU核间的通知借助共享存储区域313进行。
并且,从OS(1)201向OS(2)211的通知以及从CPU核(1)101向CPU核(2)102的通知使用OS(1)专用区域321,从OS(2)211向OS(1)201的通知以及从CPU核(2)102向CPU核(1)101的通知使用OS(2)专用区域322。
下面,使用图4~图7说明本实施方式的计算机系统10的工作示例。
在图4中示出如下这样的状态:CPU核(1)101和CPU核(2)102通过SMP分担执行OS(1)201,程序(A)204和程序(B)205在OS(1)201上运行。
此时,程序(B)205的运行变得不稳定,当不稳定检测部203检测出程序(B)205的不稳定运行对系统整体产生影响时,CPU核(1)101执行调度程序202,为了使CPU核(2)102与OS(1)201分离,停止对CPU核(2)102的处理分配。
当不再发生处理分配的CPU核(2)102结束了已分配的处理时,处于处理等待的空闲状态。
也就是说,CPU核(2)102停止OS(1)201和程序(A)204的执行分担。
由此,仅CPU核(1)101执行OS(1)201,在OS(1)201上运行的程序(A)204和程序(B)205也必然仅由CPU核(1)101执行(图5)。
接着,CPU核(1)101向CPU核(2)通知起动OS(2)211。
该通知是通过由CPU核(1)101对起动标志331(图3)设定表示“分离OS起动模式”的值来进行。
并且,CPU核(1)101请求CPU核(2)102的重新工作。
该请求是通过从CPU核(1)101向CPU核(2)102的CPU间中断或者通过CPU核(1)101的寄存器操作而进行的CPU核(2)102的复位来进行的。
被从CPU核(1)101请求了重新工作的CPU核(2)102进行重新工作。
CPU核(2)102起动引导加载程序200,进行初始化处理,从ROM 112读出OS执行映像302(图2),起动OS(2)211(图6)。
另外,此时,CPU核(2)102以CPU核(1)101不妨碍执行中的OS(1)201的运行的方式,进行不伴有对IO装置113的访问的OS初始化处理(相当于第1初始化处理)。
该OS初始化处理也可以使用如下这样的起动方法:将预先保存在ROM 112内的快照映像(2)305展开到RAM 111而缩短OS和设备驱动器的初始化。
当针对OS(2)211完成了不伴有对IO装置113的访问的OS初始化处理时,CPU核(2)102读取起动标志331的值,检测出该标志被设定了表示“分离OS起动模式”的值。
然后,CPU核(2)102向CPU核(1)101通知OS(2)211能够运行。
该通知是通过对准备完成标志332设定规定的值来进行的。
接着,CPU核(1)101进行变为运行不稳定的程序(B)205的结束处理。
并且,CPU核(1)101为了将程序(A)204的执行主体切换到OS(2)211,将程序(A)204的上下文信息存储在OS(1)专用区域321内。
并且,CPU核(1)101对过程转移标志334设定表示上下文信息的存储已完成的值。
并且,CPU核(1)101将能够从OS(2)211对IO装置113进行访问的情况通知给CPU核(2)102。
该通知是通过对OS起动许可标志333设定规定的值来进行的。
CPU核(2)102读取OS起动许可标志333的值,检测出允许由OS(2)211对IO装置113进行访问,进行伴有IO装置113的访问的OS初始化处理(相当于第2初始化处理)。
并且,CPU核(2)102根据过程转移标志334的值,读出程序(A)204的上下文信息,进行程序(A)204在OS(2)211上的运行的重新开始。
并且,CPU核(2)102重新在OS(2)211上执行程序(B)205。
然后,CPU核(1)101结束OS(1)201的执行,进行重新工作。
CPU核(1)101执行引导加载程序200,在CPU核(1)101的初始化处理完成后,对CPU待机标志335设定表示CPU核(1)101是空闲状态的值。
并且,CPU核(1)101利用CPU间中断向CPU核(2)102通知对CPU待机标志335设定了值的情况,CPU核(1)101在空闲状态下待机。
在程序(A)204的运行重新开始后,CPU核(2)102读取CPU待机标志335,当检测出CPU核(1)101是空闲状态时,OS(2)211的调度程序212开始对CPU核(1)101的处理分配。
其结果,OS(2)211作为SMP适用OS由CPU核(1)101和CPU核(2)102执行(图7)。
下面,使用图8和图9说明CPU核(1)101的工作示例。
在图4的状态中,CPU核(1)101执行不稳定检测部203,监视在OS(1)201上运行的程序的运行(S401)。
当判断出例如程序(B)205的运行不稳定时(S402,是),CPU核(1)101执行调度程序202,通过将运行不稳定的程序(B)205从调度程序202的等待队列中排除等的处理来停止不稳定运行的程序(B)205的执行(S403)。
之后,CPU核(1)101通过调度程序202的执行,针对CPU核(2)102中止程序的分配(S404)。
并且,CPU核(1)101通过调度程序202的执行,确认出已分配给CPU核(2)102的处理结束(S405),确认出CPU核(2)102处于空闲状态(S406)。
当CPU核(2)102处于空闲状态之后,CPU核(1)101通过调度程序202的执行,将CPU核(2)102从处理分配对象中排除(S407)。
然后,CPU核(1)101操作MMU(Memory Management Unit,存储器管理单元)等,将OS(1)201管理的RAM 111的区域释放以用于OS(2)211(S408)。
然后,CPU核(1)101对起动标志331(图3)设定表示“分离OS起动模式”的值(S409)。
然后,CPU核(1)101通过CPU间中断或重置向CPU核(2)102请求CPU核(2)102的重新工作(S410)。
CPU核(1)101监视准备完成标志332(图3)而等待在CPU核(2)102中OS(2)211的起动准备完成(第1初始化处理完成)(S411)。
然后,在检测出OS(2)211的起动准备已完成的情况下(S411,是),CPU核(1)101执行调度程序202,停止正常运行的程序(A)204的运行(S412)。
并且,CPU核(1)101控制成不发生从OS(1)201向IO装置113的IO访问,对OS起动许可标志333(图3)设定通知允许由OS(2)211进行的IO访问的值(S413)。
由此,CPU核(2)102可以执行伴有IO访问的OS(2)211的OS初始化处理。
并且,CPU核(1)101将已在OS(1)201运行的正常的程序(A)204的上下文信息写出到OS(1)专用区域321(S414)。
并且,CPU核(1)101对过程转移标志334设定通知允许利用在S414中写出的上下文信息的值(S415)。
然后,CPU核(1)101为了在重新工作后在空闲状态下待机,对重新工作动作标志336(图3)设定表示“空闲待机模式”的值(S416)。
然后,CPU核(1)101结束OS(1)201的执行,进行重新工作(S417)。
在重新工作后,CPU核(1)101读取重新工作动作标志336的值(S418),由于重新工作动作标志336的值是“空闲待机模式”,因而对CPU待机标志335(图3)设定通知CPU核(1)101处于处理等待状态(空闲)的值(S419)。
然后,CPU核(1)101处于空闲状态的无限等待(S420)。
另一方面,在S418中,若重新工作动作标志336的值是“稳定起动模式”,则作为SMP用OS,如通常那样起动OS(1)201(S421)。
然后,使用图10和图11说明CPU核(2)102的工作示例。
根据在图8的S410进行的重新工作请求,CPU核(2)102起动引导加载程序200(S501)。
并且,CPU核(2)102还进行预定的初始化处理。
然后,CPU核(2)102将ROM 112内的OS执行映像302加载到RAM 111的OS(2)执行区域312内(S502)。
然后,CPU核(2)102开始OS(2)211的初始化处理(S503)。
在S503中,CPU核(2)102仅进行不伴有IO访问的初始化。
然后,CPU核(2)102使用ROM 112内的快照映像(2)305,恢复系统的初始化状态(S504)。
然后,CPU核(2)102确认起动标志331的值(S505),若起动标志331的值是表示“稳定起动模式”的值,则作为SMP用OS,如通常那样起动OS(2)211(S506)。
另一方面,若起动标志331的值是表示“分离OS起动模式”的值,则CPU核(2)102对准备完成标志332设定通知完成不伴有IO访问的OS(2)211的起动的值(S507)。
并且,CPU核(2)102等待由CPU核(1)101设定OS起动许可标志333(图3)(S508)。
当OS起动许可标志333的值为通知允许IO访问的值时(S508,“有起动指示”),CPU核(2)102进行伴有IO访问的OS(2)211的初始化处理(S509)。
并且,CPU核(2)102起动OS(2)211的调度程序212(S510),开始OS(2)211的稳定运行。
并且,CPU核(2)102监视过程转移标志334(图3)(S511),当过程转移标志334的值有效时,从OS(1)专用区域321读出在OS(1)201已正常运行的程序(A)204的上下文信息,使程序(A)204的运行在OS(2)211重新开始(S512)。
然后,CPU核(2)102参照CPU待机标志335,确认CPU核(1)101是否是空闲状态(S513)。
在CPU核(1)101是空闲状态的情况下(S513,是),CPU核(2)102在调度程序212的管理下组入CPU核(1)101(S514),使OS(2)211作为SMP用OS运行。
并且,CPU核(2)102重新确保OS(1)201曾使用的OS(1)执行区域311供OS(2)211用,并将其加在OS(2)211的管理之下(S515)。
这样,在本实施方式的计算机系统中,可以在使用多核处理器继续处理的同时,确保系统的稳定性。
在以上的说明中,示出了在OS(1)201上的程序中发生不稳定运行时使用OS(2)211恢复到稳定状态的顺序。
在OS(2)211上的程序中发生了不稳定运行的情况下也一样,可以使用OS(1)201恢复到稳定状态。
并且,以上说明了构成多核处理器100的CPU核是2个的例子。
另外,即使在CPU核是3个以上的核的情况下,也一样能够分离一部分CPU核,恢复到稳定状态。
并且,以上说明了包含有多个CPU核的多核处理器100的计算机系统,然而也可以将本实施方式应用于由多个处理器(CPU)构成的计算机系统。
并且,可以利用本实施方式所示的顺序实现本发明的控制方法。
以上,在本实施方式中,说明了如下这样的高可用性计算机方式:在多核处理器中中途分离工作中的CPU核,使用分离的CPU核重新使OS运行,利用重新运行的OS接管已运行的OS中的处理,由此进行系统的稳定化。
并且,在本实施方式中,说明了如下这样的高可用性计算机方式:重新运行的OS整合在已运行的OS中使用的CPU核来继续处理。
并且,在本实施方式中,说明了动态变更OS使用的内存的高可用性计算机方式。
标号说明
10:计算机系统;100:多核处理器;101:CPU核(1);102:CPU核(2);110:总线;111:RAM;112:ROM;113:IO装置;200:引导加载程序;201:OS(1);202:调度程序;203:不稳定检测部;204:程序(A);205:程序(B);211:OS(2);212:调度程序;213:不稳定检测部;301:引导加载程序执行映像;302:OS执行映像;303:应用映像;304:快照映像(1);305:快照映像(2);311:OS(1)执行区域;312:OS(2)执行区域;313:共享存储区域;321:OS(1)专用区域;322:OS(2)专用区域;331:起动标志;332:准备完成标志;333:OS起动许可标志;334:过程转移标志;335:CPU待机标志;336:重新工作动作标志。

Claims (6)

1.一种计算机系统,其具有多个CPU,其特征在于,
所述计算机系统内包含有OS和替代OS,
当所述多个CPU分担所述OS和在所述OS上运行的程序的执行时,
所述多个CPU中的特定CPU停止分担所述OS和所述程序的执行,起动替代所述OS的所述替代OS,将所述程序所运行在的OS从所述OS切换为所述替代OS,
所述特定CPU以外的CPU即其它CPU在所述程序所运行在的OS切换为所述替代OS后,结束所述OS的执行。
2.根据权利要求1所述的计算机系统,其特征在于,所述其它CPU在结束了所述OS的执行后,与所述特定CPU分担所述替代OS和在所述替代OS上运行的程序的执行。
3.根据权利要求1所述的计算机系统,其特征在于,当在所述多个CPU分担所述OS和在所述OS上运行的程序的执行时检测出与所述OS相关的故障的情况下,
所述特定CPU停止分担所述OS和所述程序的执行,重新使所述特定CPU工作,起动所述替代OS,将所述程序所运行在的OS从所述OS切换为所述替代OS,
所述其它CPU在所述程序所运行在的OS切换为所述替代OS后,结束所述OS的执行,重新使所述其它CPU工作。
4.根据权利要求1所述的计算机系统,其特征在于,所述计算机系统与所述OS和所述替代OS所访问的设备连接,
所述特定CPU进行不发生所述替代OS对所述设备的访问的所述替代OS的第1初始化处理,将进行了所述第1初始化处理的情况通知给所述其它CPU,在从所述其它CPU通知了允许所述替代OS对所述设备进行访问的情况下,进行发生所述替代OS对所述设备的访问的所述替代OS的第2初始化处理,起动所述替代OS,
所述其它CPU在从所述特定CPU通知了已进行所述第1初始化处理的情况下,禁止所述OS对所述设备的访问,并将允许所述替代OS对所述设备进行访问的情况通知给所述特定CPU。
5.根据权利要求4所述的计算机系统,其特征在于,所述计算机系统还具有由所述多个CPU共享的共享存储器,
所述特定CPU在进行了所述第2初始化处理的情况下,将进行了所述第2初始化处理的情况通知给所述其它CPU,在从所述其它CPU通知了在所述共享存储器内存储有所述程序的上下文信息的情况下,将所述程序所运行在的OS从所述OS切换为所述替代OS,使用存储在所述共享存储器内的所述上下文信息在所述替代OS上执行所述程序,
所述其它CPU在从所述特定CPU通知了已进行所述第2初始化处理的情况下,将所述程序的上下文信息存储在所述共享存储器内,将在所述共享存储器内存储了所述上下文信息的情况通知给所述特定CPU。
6.一种计算机系统的控制方法,其在具有多个CPU的计算机系统中执行,其特征在于,
所述计算机系统内包含有OS和替代OS,
当所述多个CPU分担所述OS和在所述OS上运行的程序的执行时,
所述多个CPU中的特定CPU停止分担所述OS和所述程序的执行,起动替代所述OS的所述替代OS,将所述程序所运行在的OS从所述OS切换为所述替代OS,
所述特定CPU以外的CPU即其它CPU在所述程序所运行在的OS切换为所述替代OS后,结束所述OS的执行。
CN201380076847.1A 2013-06-07 2013-06-07 计算机系统和控制方法 Active CN105247491B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/065884 WO2014196083A1 (ja) 2013-06-07 2013-06-07 計算機システム及び制御方法

Publications (2)

Publication Number Publication Date
CN105247491A CN105247491A (zh) 2016-01-13
CN105247491B true CN105247491B (zh) 2019-03-12

Family

ID=52007754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380076847.1A Active CN105247491B (zh) 2013-06-07 2013-06-07 计算机系统和控制方法

Country Status (5)

Country Link
US (1) US9880888B2 (zh)
JP (1) JP5996110B2 (zh)
CN (1) CN105247491B (zh)
DE (1) DE112013007143T5 (zh)
WO (1) WO2014196083A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103608792B (zh) * 2013-05-28 2016-03-09 华为技术有限公司 支持多核架构下资源隔离的方法及系统
US9678903B1 (en) * 2014-10-15 2017-06-13 Intel Corporation Systems and methods for managing inter-CPU interrupts between multiple CPUs
US11531607B2 (en) * 2019-12-10 2022-12-20 Cisco Technology, Inc. Fault isolation and recovery of CPU cores for failed secondary asymmetric multiprocessing instance

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008044423A1 (fr) * 2006-10-13 2008-04-17 Nec Corporation Processeur d'informations et procédé de couverture de panne
JP2010020621A (ja) * 2008-07-11 2010-01-28 Toyota Infotechnology Center Co Ltd プログラム修復システムおよび方法
CN101782861A (zh) * 2009-12-24 2010-07-21 华为终端有限公司 在嵌入式系统中操作系统的管理方法及装置
CN102473128A (zh) * 2009-08-19 2012-05-23 日本电气株式会社 多核系统、多核系统的控制方法以及多处理器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272755A (ja) * 1995-03-29 1996-10-18 Fujitsu Ltd プロセッサ切替え装置
EP1467282B1 (en) * 2003-04-09 2008-10-01 Jaluna SA Operating systems
US7251746B2 (en) * 2004-01-21 2007-07-31 International Business Machines Corporation Autonomous fail-over to hot-spare processor using SMI
WO2006018307A2 (en) * 2004-08-18 2006-02-23 Jaluna Sa Operating systems
JP2006172100A (ja) * 2004-12-15 2006-06-29 Hitachi Ltd オペレーティングシステムの高速切替え方式及びその方法
JP2008077388A (ja) * 2006-09-21 2008-04-03 Nec Corp マルチプロセッサ制御システム、方法、およびプログラム
JP2008123439A (ja) * 2006-11-15 2008-05-29 Denso Corp オペレーティング・システム、プログラム及び移動体操縦支援装置
US20080091974A1 (en) 2006-10-11 2008-04-17 Denso Corporation Device for controlling a multi-core CPU for mobile body, and operating system for the same
JP2008123357A (ja) 2006-11-14 2008-05-29 Honda Motor Co Ltd 並列計算機システム、並列計算方法および並列計算機用プログラム
WO2008114415A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited マルチプロセッシングシステム
US20130007729A1 (en) * 2008-07-14 2013-01-03 Alexander Sirotkin Method and System for virtualization assisted remote access system designed For e-Support
JP5035299B2 (ja) 2009-06-15 2012-09-26 株式会社日立製作所 マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム
JP5644380B2 (ja) 2010-11-04 2014-12-24 トヨタ自動車株式会社 情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008044423A1 (fr) * 2006-10-13 2008-04-17 Nec Corporation Processeur d'informations et procédé de couverture de panne
JP2010020621A (ja) * 2008-07-11 2010-01-28 Toyota Infotechnology Center Co Ltd プログラム修復システムおよび方法
CN102473128A (zh) * 2009-08-19 2012-05-23 日本电气株式会社 多核系统、多核系统的控制方法以及多处理器
CN101782861A (zh) * 2009-12-24 2010-07-21 华为终端有限公司 在嵌入式系统中操作系统的管理方法及装置

Also Published As

Publication number Publication date
CN105247491A (zh) 2016-01-13
US9880888B2 (en) 2018-01-30
JP5996110B2 (ja) 2016-09-21
JPWO2014196083A1 (ja) 2017-02-23
WO2014196083A1 (ja) 2014-12-11
US20160041850A1 (en) 2016-02-11
DE112013007143T5 (de) 2016-02-18

Similar Documents

Publication Publication Date Title
JP5225515B2 (ja) プロセッサ装置及びプログラム
CN108121630B (zh) 电子装置、重新启动方法及记录媒介
EP3540599B1 (en) Virtual machine live migration method and corresponding system
US9329911B2 (en) Driver initialization for a process in user mode
ES2687609T3 (es) Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo
US9632842B2 (en) Exclusive access control method prohibiting attempt to access a shared resource based on average number of attempts and predetermined threshold
US9229820B2 (en) Information processing device with memory dump function, memory dump method, and recording medium
US20150006978A1 (en) Processor system
CN105247491B (zh) 计算机系统和控制方法
CN102754080B (zh) 多核处理器系统、中断程序、以及中断方法
JP2007334403A (ja) 計算機システム障害対応方式及び計算機システム障害対応方法
JP2009129101A (ja) 情報処理装置の障害処理システム
EP1191439A1 (en) Computer system and computer-readable record medium
CN115576734A (zh) 一种多核异构日志存储方法和系统
JP5557612B2 (ja) 計算機及び転送プログラム
US20180068501A1 (en) Multiprocessor system and vehicle control system
US20210373975A1 (en) Workgroup synchronization and processing
JP5676664B2 (ja) リソース管理装置、リソースの管理方法、及びプログラム
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
US20130239113A1 (en) Information processing apparatus, computer product, and information processing method
JP5867630B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP2015014962A (ja) 演算装置、演算方法、及びプログラム
US10528391B1 (en) Execution manager for binary objects operating across private address spaces
JP4937200B2 (ja) イメージ検査装置、os装置及びイメージ検査方法
CN110069287B (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